faucet-common-pubsub
Shared Google Cloud Pub/Sub configuration for the
faucet-stream Pub/Sub
connectors — faucet-source-pubsub and faucet-sink-pubsub. Both connector
crates depend on this crate and re-export its types, so end-user imports do not
change.
Contents
PubsubCredentials— the auth enum, serialized as the project-wide{ type, config }shape:{ type: application_default }— Application Default Credentials.{ type: service_account_json_file, config: { path } }— key file on disk.{ type: service_account_json_inline, config: { json } }— inline key (pair with${secret:…}/${env:…}interpolation).{ type: anonymous }— no credentials (for the emulator).
PubsubConnection— flattened connection block:project_id,endpoint,emulator_host,credentials.build_client— assembles agcloud_pubsub::client::Client, honouringemulator_host/PUBSUB_EMULATOR_HOST(auth skipped) or resolving credentials for real Pub/Sub.PubsubMessage— re-exported fromgcloud-googleapisso connector code round-trips messages without adding that crate directly.
Delivery semantics
Pub/Sub is at-least-once. Neither connector advertises exactly-once
delivery — pair the source with an upsert sink keyed on message_id when
replays must converge.
License: MIT OR Apache-2.0.