Parquet in Rust in January 2024

If I want to read and write some parquet files in Rust, today, should I be looking at

  • arrow
  • arrow2
  • parquet
  • parquet2
  • something else

?

From the last time I looked into this (months ago) I recall some effort to reduce duplicated effort and/or share code between some of the aforementioned 1-2 crates, but a quick search doesn't find anything[1], so perhaps I imagined it.

I'm also a bit ... surprised ... by the following statement in the readme of the parquet2 repo:

This crate cannot be used directly to read parquet (except metadata). To read data from parquet, checkout arrow2.

TLDR: can you give a brief summary of the state of parquet IO tools in Rust, in early 2024?


  1. Edit: Discussion: relationship / unification of arrow-rs and arrow2 going forward · Issue #1176 · apache/arrow-rs · GitHub ↩︎