Skip to main content

faucet_source_singer/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-source-singer
4//!
5//! A bridge source that runs an external [Singer](https://www.singer.io/) tap
6//! executable and adapts its message stream into faucet records — so any of the
7//! hundreds of existing Singer taps can feed a faucet pipeline.
8//!
9//! **Tier-2 / experimental.** Using this source reintroduces a runtime
10//! dependency (usually Python) for that pipeline, throughput is Singer-class
11//! rather than faucet-class, and STATE-based resume granularity depends on the
12//! individual tap.
13//!
14//! **v0 is single-stream:** exactly the stream named by
15//! [`SingerSourceConfig::stream`] is emitted; RECORD messages for other streams
16//! are ignored.
17
18pub mod assemble;
19pub mod config;
20pub mod discover;
21pub mod message;
22pub mod process;
23pub mod stream;
24
25// Re-export core types so users don't need a separate faucet-core dependency.
26pub use faucet_core::{FaucetError, Sink, Source};
27
28pub use config::{MalformedPolicy, SingerSourceConfig};
29pub use discover::{StreamSelection, catalog_stream_ids, discover, select_streams};
30pub use message::{SingerMessage, parse_line};
31pub use stream::SingerSource;