delta-rs (Apache-2.0) implements Delta in Rust on Arrow 129 and DataFusion; pip 21,050 install deltalake gives the Python package (1.6.6 here; the Rust crate reached 1.0.0 on 28 September 2026). Polars 268,908 and pandas 16,086 users reach Delta through it, with no JVM. Its S3 settings live in demos/ch08/delta/rs_conf.py: MinIO 30,943 's endpoint and keys plus aws_conditional_put.
"""delta-rs: Chapter 3's orders written to MinIO as a Delta table from plain Python, no JVM."""
import time
import pyarrow.compute as pc, pyarrow.parquet as pq
from deltalake import DeltaTable, write_deltalake
from rs_conf import S3 # MinIO endpoint, keys, conditional put
URI, t0 = "s3://warehouse/delta/orders", time.perf_counter()
src = pq.read_table("/mnt/d/Books/Data Engineering/demos/ch03/out/orders.parquet")
src = src.drop_columns(["items"]).append_column("order_month",
pc.strftime(src["order_ts"], "%Y-%m"))
write_deltalake(URI, src, partition_by=["order_month"], storage_options=S3)
dt = DeltaTable(URI, storage_options=S3)
print(f"version {dt.version()}, {len(dt.file_uris())} files, {time.perf_counter() - t0:.1f} s")
march = dt.to_pyarrow_table(filters=[("order_month", "=", "2026-03")], columns=["total"])
print("March 2026:", march.num_rows, "orders,", pc.sum(march["total"]), "net")Output
version 0, 18 files, 0.8 s March 2026: 5674 orders, 197597.91 net
The read touched one partition's file. The write took under a second, while the Spark 129 job of Delta Tables with Spark needed 77 to 106 s of wall clock, most of it JVM and session start-up (a shared 4-CPU host: compare ratios). Spark earns that cost only when data outgrows one machine.