Connector marketplace
faucet-stream is a connector marketplace: alongside the built-in connectors,
anyone can publish a faucet-source-* / faucet-sink-* crate and have it
discovered and consumed by others. Three commands power this:
| Command | Purpose |
|---|---|
faucet search <term> | Find connectors in the registry index by name / description / keyword / crate. |
faucet list --available | List the whole registry, marking which connectors are compiled into your binary. |
faucet install <name> | Print exactly how to enable/obtain a connector (never executes). |
The registry index
The index is a committed JSON file,
cli/connectors/registry.json,
embedded into the binary so search / install work offline and independently
of which connectors you compiled in. Each entry:
{
"name": "kafka",
"kind": "source",
"verified": true,
"description": "Apache Kafka consumer with idle/max-messages termination"
}
cratedefaults tofaucet-<kind>-<name>;featuredefaults to<kind>-<name>.verified: truemarks a first-party built-in; community connectors setfalseand give an explicitcrate.- Point at a custom or mirror index with
--index <path>on any of the three commands.
Installing a connector
faucet install inspects the entry and your binary and prints the right recipe:
- Built-in, already compiled in → use it directly (
type: <name>). - Built-in, not compiled in →
cargo install faucet-cli --features <kind>-<name>. - Community → a custom-binary snippet that
cargo adds the crate and registers it viaPluginRegistry(see Custom binaries with third-party connectors).
Trust is explicit: community connectors are marked, and install only ever
prints instructions — it never downloads or runs code.
Publishing your connector
- Scaffold it:
faucet new connector <name> --kind source|sink(see Authoring a connector). - Publish to crates.io with system-name-first keywords.
- Open a PR adding an entry to
cli/connectors/registry.jsonwithverified: falsesofaucet searchsurfaces it.