Install
cargo install faucet-cli --features sink-stdout faucet init --sink stdout
# Cargo.toml — use it as a library cargo add faucet-sink-stdout
Starter config
sink:
type: stdout
config:
# destination: null # Which standard stream to write records to.
# format: null # How each record should be serialized before writing.
# flush_per_record: false # Flush the underlying writer after every record instead of at batch boundaries.
# max_records: null # Stop writing after this many records have been emitted.
# batch_size: 1000 # Records per upstream `StreamPage`.
Capabilities
| Delivery | At-least-once |
|---|---|
| Write modes | append |
| Exactly-once writes | No |
| Schema evolution | No |
| Scoped cleanup | No |
| Staged bulk load | No |
| Run rollback | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
destination | object | stdout | Which standard stream to write to. |
format | object | json_lines | Output format. |
flush_per_record | boolean | false | Flush the underlying writer after every record instead of at batch boundaries. Tradeoff: lower latency for live preview, slightly lower throughput. |
max_records | integer | — | Stop writing after this many records have been emitted. Subsequent write_batch calls become no-ops. None means unlimited. |
batch_size | integer | 1000 | Records per upstream StreamPage. The stdout sink writes records to the chosen standard stream one at a time through a buffered writer, so this field has **no behavioural impact** at the sink — it is exposed purely for config parity across every sink in the workspace. Defaults to DEFAULT_BATCH_SIZE. |
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