#thrift #parquet

polars-parquet-format

Safe Parquet and Thrift reader and writer (sync and async)

1 unstable release

0.1.0 Oct 27, 2024

#28 in #thrift

Download history 40115/week @ 2025-10-21 44203/week @ 2025-10-28 49621/week @ 2025-11-04 45518/week @ 2025-11-11 56751/week @ 2025-11-18 45843/week @ 2025-11-25 64708/week @ 2025-12-02 61568/week @ 2025-12-09 55487/week @ 2025-12-16 34083/week @ 2025-12-23 38701/week @ 2025-12-30 67692/week @ 2026-01-06 67161/week @ 2026-01-13 70423/week @ 2026-01-20 69911/week @ 2026-01-27 81339/week @ 2026-02-03

300,269 downloads per month
Used in 363 crates (via polars-parquet)

MIT AND Apache-2.0

550KB
13K SLoC

parquet-format-safe

This crate contains an implementation of Thrift and generated Rust code associated to Parquet's thrift definition.

  • supports sync and async read API
  • supports sync and async write API
  • the write API returns the number of written bytes
  • the read API is panic free
  • the read API has a bound on the maximum number of possible bytes read, to avoid OOM.

The Rust generated code is done by a fork of thrift's compiler, available at https://github.com/coastalwhite/thrift/tree/safe.

Usage

To regenerate the thrift format implementation in Rust.

nix-shell
generate_parquet_format
mv parquet.rs src/parquet_format.rs

Dependencies

~200KB