// the find
delta-io/delta-rs
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.