Install
cargo install faucet-cli --features source-sqlite faucet init --source sqlite
# Cargo.toml — use it as a library cargo add faucet-source-sqlite
Starter config
source:
type: sqlite
config:
database_url: "" # REQUIRED — SQLite database URL (file path or `sqlite::memory:`).
query: "" # REQUIRED — SQL query to execute.
# max_connections: 10 # Maximum number of connections in the pool.
# batch_size: 1000 # Records per emitted `StreamPage`.
# shard: null # Optional primary-key range sharding for clustered (Mode B) execution.
# sandbox: false # Confine the query to the opened database: every connection refuses `ATTACH` (and `VACUUM INTO`, which attaches its target).
Capabilities
| Replay | Non-deterministic replay |
|---|---|
| Exactly-once replay | No |
| Incremental | No |
| Dataset discovery | Yes |
| Reports lag | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
database_urlrequired | string | — | SQLite database URL (file path or sqlite::memory:). |
queryrequired | string | — | SQL query to execute. |
max_connections | integer | 10 | Maximum number of connections in the pool. Defaults to 10. |
batch_size | integer | 1000 | Records per emitted StreamPage. Rows are drained from the sqlx cursor and yielded whenever the buffer reaches this size. Defaults to DEFAULT_BATCH_SIZE. |
shard | object | — | Optional primary-key range sharding for clustered (Mode B) execution. |
sandbox | boolean | — | Confine the query to the opened database: every connection refuses ATTACH (and VACUUM INTO, which attaches its target). Extension loading is always off. Defaults to false. faucet serve forces it on for every config it did not load from its own triggers file. |
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