Connectors / Files & object stores
Delta Lake
sourceApache Delta Lake source (local FS or S3/Azure/GCS; time travel, projection)
Install
cargo install faucet-cli --features source-delta faucet init --source delta
# Cargo.toml — use it as a library cargo add faucet-source-delta
Starter config
source:
type: delta
config:
table_uri: "" # REQUIRED — Delta table location URI: `file:///abs/path`, `s3://bucket/key`, `abfss://…`, `gs://bucket/key`.
# credentials: { type: default } # one of: default, aws, azure, gcp
# --- Alternative variants — replace the block above with one of these ---
# type: aws
# config:
# access_key_id: ""
# secret_access_key: ""
# session_token: ""
# region: ""
# endpoint_url: ""
# allow_http: false
#
# type: azure
# config:
# account_name: ""
# access_key: ""
# sas_token: ""
#
# type: gcp
# config:
# service_account_path: ""
# service_account_key: ""
# storage_options: {} # Extra `storage_options` passed verbatim to delta-rs (e.g.
# version: 0 # Time travel: read the table as of this version.
# timestamp: "" # Time travel: read the table as of this RFC 3339 timestamp.
# columns: [] # Projection pushdown: only read these columns.
# batch_size: 1000 # Page size hint for `stream_pages`.
Capabilities
| Replay | Non-deterministic replay |
|---|---|
| Exactly-once replay | No |
| Incremental | No |
| Dataset discovery | No |
| Reports lag | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
table_urirequired | string | — | Delta table location URI: file:///abs/path, s3://bucket/key, abfss://…, gs://bucket/key. A bare local path is accepted and treated as file://. |
credentials | object | type: default | Object-store credentials. Defaults to the ambient provider chain. |
storage_options | object | {} | Extra storage_options passed verbatim to delta-rs (e.g. a MinIO endpoint override, or any object-store key the DeltaCredentials enum does not model). Keys set here **win** over credential-derived keys. Keys that name an endpoint (*endpoint*, *_url, *_uri, *_host, a proxy, an authority host) or a local file (*_file, *_path, a service-account or application-credentials file) are checked like the typed fields by a host that confines configs (faucet serve). |
version | integer | — | Time travel: read the table as of this version. Mutually exclusive with timestamp. |
timestamp | string | — | Time travel: read the table as of this RFC 3339 timestamp. Mutually exclusive with version. |
columns | array | [] | Projection pushdown: only read these columns. Empty = all columns. |
batch_size | integer | 1000 | Page size hint for stream_pages. Governs how many rows accumulate before a StreamPage is emitted. 0 is the "no batching" sentinel — one page per data file, however many row groups it holds. |
Get started
Your first pipeline runs in five minutes.
Install the CLI, scaffold a config, and move real data — nothing external to stand up.
curl -LsSf https://github.com/faucet-hq/faucet-stream/releases/latest/download/faucet-cli-installer.sh | sh brew install faucet-hq/faucet-stream/faucet-cli