Skip to main content

Module registry

Module registry 

Source
Expand description

Feature-gated dispatch from a string type to a concrete connector.

Every arm in this file is guarded by the matching source-* / sink-* Cargo feature so users can build a slim binary with just the connectors they need. The string keys here are the public contract of the CLI’s type: field in YAML/JSON pipeline configs.

Structs§

PluginRegistry
A registry of connector factories keyed by their YAML type: string.

Constants§

DISCOVER_SOURCE_KINDS
Source kinds that implement live dataset discovery (Source::discover, issue #211) — mirrors the discoverable-source list in the connector docs. Single source of truth for the conformance scorecard (#330).
EXACTLY_ONCE_SOURCE_KINDS
Source connector kinds that deterministically replay (exactly-once-capable). Mirrors Source::supports_exactly_once overrides — keep in sync when a new source opts in. The single source of truth for both the boolean gate and the human-readable list shown in error messages (F44). kafka qualifies because partitions are immutable logs and every page carries a complete offsets bookmark (#291).
IDEMPOTENT_SINK_KINDS
Sink connector kinds that can durably commit a token atomically with data. Mirrors Sink::supports_idempotent_writes overrides — keep in sync when a new sink opts in. Single source of truth for the gate + the error-message list (F44).
SCHEMA_EVOLUTION_SINK_KINDS
Sink kinds that can apply additive/widening DDL via Sink::evolve_schema. Mirrors each sink’s supports_schema_evolution() override. Iceberg is additive-only (new columns) via iceberg-rust 0.10.0’s update_schema action (#255).
UPSERT_SINK_KINDS
Sink kinds that support write_mode: upsert|delete. Mirrors each sink’s Sink::supported_write_modes() override. Single source of truth for the gate

Functions§

build_sink
Build a Sink trait object from a (kind, config) pair. When the config carries auth: { ref: <name> }, the named provider is resolved from auth (the catalog) and injected into the connector.
build_source
Build a Source trait object from a (kind, config) pair. When the config carries auth: { ref: <name> }, the named provider is resolved from auth (the catalog) and injected into the connector.
sink_descriptions
One-line summary of every sink connector — the compiled-in built-ins plus any third-party connectors registered via PluginRegistry. Used by faucet list.
sink_exists
Check if a sink kind is registered (not unknown or disabled by feature gate).
sink_guarantee
The strongest delivery guarantee a sink kind can uphold (Sink::sink_guarantee, issue #292). Derived from IDEMPOTENT_SINK_KINDS / UPSERT_SINK_KINDS.
sink_kinds
Names of every compiled-in sink connector.
sink_schema
Return the JSON Schema for the named sink’s config struct.
sink_supported_write_modes
Write modes each sink kind supports. Kept in sync with each sink’s Sink::supported_write_modes() override via UPSERT_SINK_KINDS.
sink_supports_idempotent_writes
See IDEMPOTENT_SINK_KINDS.
sink_supports_schema_evolution
See SCHEMA_EVOLUTION_SINK_KINDS.
source_descriptions
One-line summary of every source connector — the compiled-in built-ins plus any third-party connectors registered via PluginRegistry. Used by faucet list.
source_exists
Check if a source kind is registered (not unknown or disabled by feature gate).
source_kinds
Names of every compiled-in source connector.
source_replay_guarantee
The typed replay capability a source kind advertises (Source::replay_guarantee, issue #292). Derived from EXACTLY_ONCE_SOURCE_KINDS — the kind table stays the single source of truth; this is the typed view the delivery-guarantee derivation consumes.
source_schema
Return the JSON Schema for the named source’s config struct.
source_supports_discover
Whether a source kind supports faucet discover (dataset introspection).
source_supports_exactly_once
See EXACTLY_ONCE_SOURCE_KINDS.

Type Aliases§

SchemaFn
A closure returning the JSON Schema for a custom connector’s config. Powers faucet schema source <name> / faucet schema sink <name> for third-party connectors without instantiating one. Typically || schema_for!(MyConfig).
SinkFactory
A factory that builds a Sink trait object from its sink.config. See SourceFactory for the contract.
SourceFactory
A factory that builds a Source trait object from its JSON/YAML config (source.config). This is the extension point third-party connectors plug into: a custom-CLI author registers one per connector type: they want their faucet binary to understand.