finds.dev← search

// the find

delta-io/delta-rs

★ 3,237 · Rust · Apache-2.0 · updated Jun 2026

A native Rust library for Delta Lake, with bindings into Python

delta-rs is a Rust-native implementation of the Delta Lake open table format, with Python bindings via PyO3. It lets you read and write Delta tables without a JVM or Spark cluster — useful for lightweight ETL pipelines, data apps, or embedding Delta support into non-JVM tooling.

No JVM dependency: you get ACID Delta tables in pure Rust, which means it works in places Spark-based Delta simply can't fit. The operations matrix is solid — merge, Z-order optimize, vacuum, restore, and CDC are all implemented in both Rust and Python. Integration breadth is real: DuckDB, Polars, DataFusion, Dask, and Ray all use it, which means it's been stress-tested by actual workloads beyond the authors' own use cases. The workspace layout separates cloud backends (aws, azure) as optional crates, so you don't drag in AWS SDK dependencies for a local-only use case.

Column Mapping (writer v5/reader v2) is still missing — this is the feature that lets you rename or drop columns without rewriting all the data, and its absence is a real gap if you're treating Delta as a long-lived schema-evolving store. The Rust API surface is less stable than the Python one and the docs.rs coverage has gaps; building a non-trivial Rust integration means reading source code. Concurrent writes to object storage rely on the underlying store's atomicity guarantees, and S3 conditional-write support (needed for true optimistic concurrency without DynamoDB) has been a long-standing rough edge. The Python bindings have historically lagged behind Arrow/pandas version bumps, which bites you when you're already pinned to a newer PyArrow in your project.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →