Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

CommandPurpose
faucet search <term>Find connectors in the registry index by name / description / keyword / crate.
faucet list --availableList 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"
}
  • crate defaults to faucet-<kind>-<name>; feature defaults to <kind>-<name>.
  • verified: true marks a first-party built-in; community connectors set false and give an explicit crate.
  • 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 incargo install faucet-cli --features <kind>-<name>.
  • Community → a custom-binary snippet that cargo adds the crate and registers it via PluginRegistry (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

  1. Scaffold it: faucet new connector <name> --kind source|sink (see Authoring a connector).
  2. Publish to crates.io with system-name-first keywords.
  3. Open a PR adding an entry to cli/connectors/registry.json with verified: false so faucet search surfaces it.