{"id":21659835,"url":"https://github.com/sunchao/parquet-rs","last_synced_at":"2025-07-17T22:33:13.905Z","repository":{"id":82057534,"uuid":"69204003","full_name":"sunchao/parquet-rs","owner":"sunchao","description":"Apache Parquet implementation in Rust","archived":true,"fork":false,"pushed_at":"2018-12-21T19:28:23.000Z","size":4655,"stargazers_count":149,"open_issues_count":30,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-25T09:45:04.835Z","etag":null,"topics":["hadoop","parquet","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunchao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-26T02:03:36.000Z","updated_at":"2024-05-06T21:32:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"1c67c68c-2c8e-4f89-aad9-ded1891ef318","html_url":"https://github.com/sunchao/parquet-rs","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sunchao/parquet-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunchao%2Fparquet-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunchao%2Fparquet-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunchao%2Fparquet-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunchao%2Fparquet-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunchao","download_url":"https://codeload.github.com/sunchao/parquet-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunchao%2Fparquet-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265672342,"owners_count":23808844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hadoop","parquet","rust"],"created_at":"2024-11-25T09:31:42.161Z","updated_at":"2025-07-17T22:33:13.900Z","avatar_url":"https://github.com/sunchao.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003c!---\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n--\u003e\n\n# parquet-rs\n\n[![Build Status](https://travis-ci.org/sunchao/parquet-rs.svg?branch=master)](https://travis-ci.org/sunchao/parquet-rs)\n[![Coverage Status](https://coveralls.io/repos/github/sunchao/parquet-rs/badge.svg?branch=master)](https://coveralls.io/github/sunchao/parquet-rs?branch=master)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![](http://meritbadge.herokuapp.com/parquet)](https://crates.io/crates/parquet)\n[![API docs](https://img.shields.io/badge/docs-0.4.1-blue.svg)](https://sunchao.github.io/parquet-rs/0.4.2/parquet/)\n[![Master API docs](https://img.shields.io/badge/docs-master-green.svg)](https://sunchao.github.io/parquet-rs/master/parquet/)\n\n\nAn [Apache Parquet](https://parquet.apache.org/) implementation in Rust.\n\n**NOTE: this project has merged into [Apache Arrow](https://arrow.apache.org/), and development will continue there.** **To file an issue or pull request, please file a [JIRA](https://issues.apache.org/jira/projects/ARROW/issues) in the Arrow project.**\n\n## Usage\nAdd this to your Cargo.toml:\n```toml\n[dependencies]\nparquet = \"0.4\"\n```\n\nand this to your crate root:\n```rust\nextern crate parquet;\n```\n\nExample usage of reading data:\n```rust\nuse std::fs::File;\nuse std::path::Path;\nuse parquet::file::reader::{FileReader, SerializedFileReader};\n\nlet file = File::open(\u0026Path::new(\"/path/to/file\")).unwrap();\nlet reader = SerializedFileReader::new(file).unwrap();\nlet mut iter = reader.get_row_iter(None).unwrap();\nwhile let Some(record) = iter.next() {\n  println!(\"{}\", record);\n}\n```\nSee [crate documentation](https://sunchao.github.io/parquet-rs/master) on available API.\n\n## Supported Parquet Version\n- Parquet-format 2.4.0\n\nTo update Parquet format to a newer version, check if [parquet-format](https://github.com/sunchao/parquet-format-rs)\nversion is available. Then simply update version of `parquet-format` crate in Cargo.toml.\n\n## Features\n- [X] All encodings supported\n- [X] All compression codecs supported\n- [X] Read support\n  - [X] Primitive column value readers\n  - [X] Row record reader\n  - [ ] Arrow record reader\n- [X] Statistics support\n- [X] Write support\n  - [X] Primitive column value writers\n  - [ ] Row record writer\n  - [ ] Arrow record writer\n- [ ] Predicate pushdown\n- [ ] Parquet format 2.5 support\n- [ ] HDFS support\n\n## Requirements\n- Rust nightly\n\nSee [Working with nightly Rust](https://github.com/rust-lang-nursery/rustup.rs/blob/master/README.md#working-with-nightly-rust)\nto install nightly toolchain and set it as default.\n\n## Build\nRun `cargo build` or `cargo build --release` to build in release mode.\nSome features take advantage of SSE4.2 instructions, which can be\nenabled by adding `RUSTFLAGS=\"-C target-feature=+sse4.2\"` before the\n`cargo build` command.\n\n## Test\nRun `cargo test` for unit tests.\n\n## Binaries\nThe following binaries are provided (use `cargo install` to install them):\n- **parquet-schema** for printing Parquet file schema and metadata.\n`Usage: parquet-schema \u003cfile-path\u003e [verbose]`, where `file-path` is the path to a Parquet file,\nand optional `verbose` is the boolean flag that allows to print full metadata or schema only\n(when not specified only schema will be printed).\n\n- **parquet-read** for reading records from a Parquet file.\n`Usage: parquet-read \u003cfile-path\u003e [num-records]`, where `file-path` is the path to a Parquet file,\nand `num-records` is the number of records to read from a file (when not specified all records will\nbe printed).\n\nIf you see `Library not loaded` error, please make sure `LD_LIBRARY_PATH` is set properly:\n```\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(rustc --print sysroot)/lib\n```\n\n## Benchmarks\nRun `cargo bench` for benchmarks.\n\n## Docs\nTo build documentation, run `cargo doc --no-deps`.\nTo compile and view in the browser, run `cargo doc --no-deps --open`.\n\n## License\nLicensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunchao%2Fparquet-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunchao%2Fparquet-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunchao%2Fparquet-rs/lists"}