Skip to main content

faucet_source_delta/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-source-delta
4//!
5//! Apache Delta Lake source for the [`faucet-stream`](https://crates.io/crates/faucet-stream)
6//! ecosystem. Streams the rows of a Delta table on the local filesystem or
7//! cloud object storage (S3 / Azure / GCS) via the Rust
8//! [`deltalake`](https://crates.io/crates/deltalake) crate — reading the same
9//! open table format Databricks (and Spark, Trino, DuckDB, Microsoft Fabric)
10//! write.
11//!
12//! - Native bounded [`stream_pages`](faucet_core::Source::stream_pages): the
13//!   active file set is read from the Delta log and each parquet data file is
14//!   streamed through the async Arrow reader (no whole-table buffering, no
15//!   datafusion).
16//! - Time travel via `version` or `timestamp`.
17//! - Projection pushdown via `columns`; partition-column values are
18//!   reconstructed from the Hive-style path and merged into every row.
19//!
20//! Cloud backends are opt-in cargo features: `s3`, `azure`, `gcs`.
21
22mod config;
23mod stream;
24
25pub use config::DeltaSourceConfig;
26pub use stream::DeltaSource;
27
28// Re-export the shared connection/credentials types so downstream users need
29// only depend on this crate.
30pub use faucet_common_delta::{DeltaConnection, DeltaCredentials};