Crates.io | delta-sharing |
lib.rs | delta-sharing |
version | 0.2.0 |
source | src |
created_at | 2023-01-14 13:16:53.972165 |
updated_at | 2024-09-13 17:23:50.094795 |
description | Delta Sharing client library |
homepage | |
repository | https://github.com/r3stl355/delta-sharing-rust-client |
max_upload_size | |
id | 758852 |
size | 354,913 |
Please note that this project is currently experimental.
This is a simple library for Rust to access data published via Delta Sharing. Under the hood, it uses HTTP APIs exposed by Delta Sharing.
Delta Sharing is an open protocol for secure data sharing, making it simple to share data with other organizations regardless of which computing platforms they use.
get_dataframe
downloads the table's parquet files (and caches then locally for subsequent queries) and returns a lazy abstraction (logical plan) over an eager DataFrame. This lazy abstraction provides methods for incrementally modifying that logical plan until output is requested (via collect
).delta_sharing::Client
) and a blocking one (delta_sharing::blocking::Client
).Rust is installed, e.g. as described here
Delta Sharing is set up with at least one shared table
This library uses profile files, which are JSON files containing a user's credentials to access a Delta Sharing Server. There are several ways to get started:
Download the profile file to access an open, example Delta Sharing Server that we're hosting here. You can try the connectors with this sample data.
Start your own Delta Sharing Server and create your own profile file following profile file format to connect to this server.
Download a profile file from your data provider.
bearerToken
and endpoint
values in the config.json
to match your Delta Sharing information.cargo run --example async
. When executed, it will get and display all the data from the first Data Sharing table it finds.cargo run --example blocking --features blocking
.Add delta-sharing
to your Cargo.toml
cargo test --features blocking
(or RUST_LOG=debug cargo test --features blocking
for extra troubleshooting)cargo test
cargo fmt -- --check