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.
indexes are very weak in duckdb, need to fit memory.
This fall, DuckDB will support larger than memory indexes! I'm really excited about it. https://duckdb.org/2026/08/17/duckdb-20-highlights#7-storage...
1 reply →
You can even use DuckLake with Datafusion: https://github.com/tobilg/datafusion-ducklake-provider
https://github.com/datafusion-contrib/datafusion-ducklake is more established, and linked to directly from the ducklake docs
It's juts not as user friendly as DuckDB.
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.
Awesome, thank you for the detail.
Came here to post the same thing. DataFusion is fantastic.