← Back to context

Comment by tormeh

16 hours ago

Seems like a good time to recommend Apache Datafusion. It's designed to be a library, but works pretty well standalone as well. There's a CLI version, but also Python and Java bindings, as well as a Rust library, of course.

From my own experience I can say it integrates far better into your Rust app than DuckDB does.

Well over 100 monthly contributors, too.

Datafusion has all of the individual pieces, especially if you just want to data analysis, but is far from an embedded database.

Indexes, transactions, a first-class storage format are all things that come included with DuckDB, that you won't have with Datafusion.

Is Datafusion related to Polars at all? I ask because you mentioned Rust integration.

  • No, it's a competing ecosystem, even though both are built on Apache Arrow, and their dataframe APIs might look similar on the surface.

    DataFusion is being used as a building block for a growing number of databases and data processing engines in Rust, as it offers the necessary primitives.