Expand description
§faucet-cli
A config-driven runner for faucet-stream
pipelines. Define a source, optional transforms, a sink, and (optionally)
a state store in a YAML or JSON file, then run it with the faucet binary —
no Rust code required.
The library half of this crate exposes the same building blocks the binary uses (config parsing, env interpolation, the connector registry) so that integrations and tests can reuse them.
Re-exports§
Modules§
- auth_
catalog - The top-level
auth:provider catalog. - cli
- Argument parser shared by
main.rsand the integration tests. - commands
- Subcommand implementations. Each module owns its
run(...)entry point and stays free of clap so the integration tests can drive it directly. - config
- Parsed
pipeline.yaml/pipeline.jsonschema (matrix-aware). - env_
config - Build a
PipelineConfigfrom a snapshot ofFAUCET_*environment variables. - env_
loader - Resolve a
.envfile path and auto-discover a pipeline config file. - error
- CLI-level error type. Wraps every failure mode the binary surfaces so
main()can render a single, user-readable line per failure. - executor
- Run a list of
ExpandedNodes under a bounded-concurrency executor. - expand
- Expand a parsed
PipelineConfiginto a flat list ofExpandedNodes ready for the executor to run. - init_
template - Schema-driven YAML template emitter for
faucet init. - interpolate
- Two-stage interpolation for pipeline configs.
- merge
- Deep-merge of
serde_json::Valuefor matrix-row overrides. - obs
- Shared observability setup (Prometheus + tracing) used by
runandschedule.install_observabilityis idempotent, so calling this once per process is safe even thoughmain.rsalready installed a basic subscriber. - registry
- Feature-gated dispatch from a string
typeto a concrete connector. - schedule
schedule faucet schedule— built-in cron scheduler.- secrets
- Secrets-manager interpolation for the config layer (#125).
- serve
serve faucet serve— HTTP control plane (#127). Runs pipeline configs submitted over HTTP, reusingexecutor::run_expanded. Feature-gated onserve; structured likecli/src/schedule/. Seedocs/superpowers/specs/2026-05-30-faucet-serve-design.md.- state
- Build a
StateStorefrom a(kind, config)pair, with feature-gated backends for Redis and PostgreSQL. - transforms
- Compile YAML/JSON transform declarations into
TransformStagevalues.
Functions§
- run_
from_ yaml_ str - Convenience entry point for integration tests and custom hosts: parse a YAML config string, expand the matrix, and run all rows.