This crate contains the official Native Rust implementation of Apache Parquet, which is part of the Apache Arrow project.
See crate documentation for examples and the full API.
This crate is tested with the latest stable version of Rust. We do not currently test against other, older versions of the Rust compiler.
The arrow crate follows the SemVer standard defined by Cargo and works well within the Rust crate ecosystem.
However, 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.
The parquet
crate provides the following features which may be enabled in your Cargo.toml
:
arrow
(default) - support for reading / writing arrow
arrays to / from parquetasync
- support async
APIs for reading parquetjson
- support for reading / writing json
data to / from parquetbrotli
(default) - support for parquet using brotli
compressionflate2
(default) - support for parquet using gzip
compressionlz4
(default) - support for parquet using lz4
compressionzstd
(default) - support for parquet using zstd
compressionsnap
(default) - support for parquet using snappy
compressioncli
- parquet CLI toolsexperimental
- Experimental APIs which may change, even between minor releaseswasm32-unknown-unknown
targetIt's possible to build parquet
for the wasm32-unknown-unknown
target, however not all the compression features are currently unsupported due to issues with the upstream crates. In particular, the zstd
and lz4
features may have compilation issues. See issue #180.
cargo build -p parquet --target wasm32-unknown-unknown --no-default-features --features cli,snap,flate2,brotli
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0.