A native Rust library for Delta Lake, with bindings to Python
Python docs
·
Rust docs
·
Report a bug
·
Request a feature
·
Roadmap
The Delta Lake project aims to unlock the power of the Deltalake for as many users and projects as possible by providing native low-level APIs aimed at developers and integrators, as well as a high-level operations API that lets you query, inspect, and operate your Delta Lake with ease.
| Source | Downloads | Installation Command | Docs |
|---|---|---|---|
| PyPi | pip install deltalake |
Docs | |
| Crates.io | cargo add deltalake |
Docs |
The deltalake library aims to adopt patterns from other libraries in data processing,
so getting started should look familiar.
from deltalake import DeltaTable, write_deltalake import pandas as pd # write some data into a delta table df = pd.DataFrame({"id": [1, 2], "value": ["foo", "boo"]}) write_deltalake("./data/delta", df) # Load data from the delta table dt = DeltaTable("./data/delta") df2 = dt.to_pandas() assert df.equals(df2)
The same table can also be loaded using the core Rust crate:
use deltalake::{open_table, DeltaTableError}; use url::Url; #[tokio::main] async fn main() -> Result<(), DeltaTableError> { // open the table written in python let delta_path = Url::from_directory_path("/abs/data/delta").unwrap(); let table = open_table(delta_path).await?; // show all active files in the table let files: Vec<_> = table.get_file_uris()?.collect(); println!("{files:?}"); Ok(()) }
You can also try Delta Lake in Docker at DockerHub | Docker Repo
The delta-rs team is committed
to providing a welcoming community.
- Join us in our Slack workspace.
- Report an issue.
- Looking to contribute?
- Read our contributing guide.
- See our good first issues.
Libraries and frameworks that interoperate with delta-rs - in alphabetical order.
View the complete feature table.