Apache Parquet Official Native Rust Implementation
This crate contains the official Native Rust implementation of Apache Parquet, which is part of the Apache Arrow project.
See the API documentation for examples and the full API.
The API documentation for most recent, unreleased code is available here.
Rust Version Compatibility
This crate is tested with the latest stable version of Rust. We do not currently test against other, older versions of the Rust compiler.
Versioning / Releases
The parquet crate follows the SemVer standard defined by Cargo and works well
within the Rust crate ecosystem. See the repository README for more details on
the release schedule, version and deprecation policy.
Note that for historical reasons, this crate uses versions with major numbers
greater than 0.x (e.g. 19.0.0), unlike many other crates in the Rust
ecosystem which spend extended time releasing versions 0.x to signal planned
ongoing API changes. Minor arrow releases contain only compatible changes, while
major releases may contain breaking API changes.
Feature Flags
The parquet crate provides the following features which may be enabled in your Cargo.toml:
arrow(default) - support for reading / writingarrowarrays to / from Parquetasync- supportasyncAPIs for reading Parquetjson- support for reading / writingjsondata to / from Parquetbrotli(default) - support for Parquet usingbrotlicompressionflate2(default) - support for Parquet usinggzipcompressionlz4(default) - support for Parquet usinglz4compressionzstd(default) - support for Parquet usingzstdcompressionsnap(default) - support for Parquet usingsnappycompressioncli- parquet CLI toolscrc- enables functionality to automatically verify checksums of each page (if present) when decodingexperimental- Experimental APIs which may change, even between minor releasessimdutf8(default) - Use thesimdutf8crate for SIMD-accelerated UTF-8 validationencryption- support for reading / writing encrypted Parquet filesvariant_experimental- ⚠️ Experimental Parquet Variant support, which may change, even between minor releases.geospatial- ⚠️ Experimental geospatial support, which may change, even between minor releases.
Parquet Feature Status
Please see the Implementation Status Page on the [Apache Parquet] website for information on the status of this implementation.
License
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0.