Install
cargo install faucet-cli --features sink-redis faucet init --sink redis
# Cargo.toml — use it as a library cargo add faucet-sink-redis
Starter config
sink:
type: redis
config:
url: "" # REQUIRED — Redis connection URL (e.g.
sink_type:
type: List # one of: List, Stream, KeyValue
key: "" # REQUIRED — The list key.
# --- Alternative variants — replace the block above with one of these ---
# type: Stream
# key: "" # REQUIRED
#
# type: KeyValue
# key_field: "" # REQUIRED
# tls: { ... } # Server verification and client-certificate settings for a connector that dials a TLS server itself (Redis, NATS, Elasticsearch).
# batch_size: 1000 # Maximum number of commands packed into a single Redis pipeline.
# ttl_secs: 0 # `KeyValue` only: expire every written key after this many seconds (`SET … EX`).
# stream_max_len: 0 # `Stream` only: cap the stream at about this many entries (`XADD … MAXLEN ~ n`), trimming the oldest.
Capabilities
| Delivery | Exactly-once (atomic watermark) |
|---|---|
| Write modes | append |
| Exactly-once writes | Yes |
| Schema evolution | No |
| Scoped cleanup | No |
| Staged bulk load | No |
| Run rollback | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
urlrequired | string | — | Redis connection URL (e.g. "redis://127.0.0.1:6379"). |
sink_typerequired | object | — | The type of Redis data structure to write to. |
tls | object | — | TLS settings for a rediss:// URL: a private CA, a client certificate for mutual TLS, or insecure_skip_verify. |
batch_size | integer | 1000 | Maximum number of commands packed into a single Redis pipeline. Defaults to DEFAULT_BATCH_SIZE (1000), which is a comfortable per-pipeline working set for Redis: pipelined commands are cheap, so bigger windows amortise the round-trip but very large pipelines can stall other clients sharing the server. |
ttl_secs | integer | — | KeyValue only: expire every written key after this many seconds (SET … EX). Keys never expire when unset. |
stream_max_len | integer | — | Stream only: cap the stream at about this many entries (XADD … MAXLEN ~ n), trimming the oldest. Unbounded when unset. |
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