Skip to main content

faucet_source_mssql/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-source-mssql
4//!
5//! Microsoft SQL Server query source for the
6//! [`faucet-stream`](https://crates.io/crates/faucet-stream) ecosystem, built on
7//! [`tiberius`](https://crates.io/crates/tiberius) +
8//! [`bb8-tiberius`](https://crates.io/crates/bb8-tiberius).
9//!
10//! Runs parameterized SQL, streams rows as JSON [`StreamPage`](faucet_core::StreamPage)s
11//! through a connection pool, and supports incremental replication via a tracking
12//! column (see [`MssqlReplication`]). Mirrors the `faucet-source-postgres` /
13//! `mysql` / `sqlite` query sources.
14//!
15//! ```no_run
16//! # use faucet_source_mssql::{MssqlSource, MssqlSourceConfig};
17//! # async fn run() -> Result<(), faucet_core::FaucetError> {
18//! let cfg = MssqlSourceConfig::new(
19//!     "mssql://sa:Str0ng%40Pass@localhost:1433/sales",
20//!     "SELECT id, email, updated_at FROM dbo.users",
21//! );
22//! let source = MssqlSource::new(cfg).await?;
23//! # let _ = source;
24//! # Ok(())
25//! # }
26//! ```
27
28mod config;
29mod convert;
30mod stream;
31
32pub use config::{MssqlReplication, MssqlSourceConfig};
33pub use stream::MssqlSource;
34
35// Re-export the shared connection/TLS types so users configure the source
36// without depending on `faucet-common-mssql` directly.
37pub use faucet_common_mssql::{MssqlConnectionConfig, MssqlTls, MssqlTlsMode};