Skip to main content

faucet_source_redshift/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-source-redshift
4//!
5//! Amazon Redshift query source connector for the faucet-stream ecosystem.
6//!
7//! Redshift is PostgreSQL wire-compatible, so this source connects through
8//! `sqlx`'s Postgres driver, executes a configurable SQL query, and streams the
9//! result rows as `serde_json::Value` records with `O(batch_size)` memory.
10//! It supports full and incremental (bookmark-based) replication.
11
12pub mod config;
13pub mod convert;
14pub mod stream;
15
16pub use faucet_core::{FaucetError, Source};
17
18pub use config::{BOOKMARK_TOKEN, RedshiftReplication, RedshiftSourceConfig};
19pub use faucet_common_redshift::{RedshiftConnection, RedshiftCredentials, RedshiftTlsMode};
20pub use stream::RedshiftSource;
21
22/// The connector's static descriptor (RFC 0013): its capabilities, answered from config alone.
23pub const DESCRIPTOR: faucet_core::ConnectorDescriptor =
24    faucet_core::ConnectorDescriptor::new("redshift", capabilities)
25        .with_host_identity(faucet_common_redshift::host_identity);
26
27/// The query's columns are declared from its describe (#955).
28fn capabilities(_config: &faucet_core::Value) -> faucet_core::Capabilities {
29    faucet_core::Capabilities::plain_source()
30        .to_builder()
31        .declared_columns(true)
32        .build()
33}