pub mod app;
pub mod config;
pub mod env;
pub mod error;
pub mod types;
pub mod lsn_tracker;
pub mod client;
mod transaction_manager;
pub mod storage;
pub mod monitoring;
pub use app::{run_cdc_app, CdcApp, CdcAppConfig};
pub use client::CdcClient;
pub use config::{Config, ConfigBuilder};
pub use env::load_config_from_env;
pub use error::CdcError;
pub use lsn_tracker::{create_lsn_tracker_with_load, LsnTracker};
pub type CdcResult<T> = Result<T, CdcError>;
pub mod destinations;
pub use pg_walstream::{
format_lsn,
message_types,
parse_lsn,
postgres_timestamp_to_chrono,
system_time_to_postgres_timestamp,
BufferReader,
BufferWriter,
CancellationToken,
ColumnData,
ColumnInfo,
KeepaliveMessage,
LogicalReplicationMessage,
LogicalReplicationParser,
LogicalReplicationStream,
Lsn,
MessageType,
Oid,
RelationInfo,
ReplicaIdentity,
ReplicationState,
ReplicationStreamConfig,
StreamingReplicationMessage,
TimestampTz,
TupleData,
XLogRecPtr,
Xid,
INVALID_XLOG_REC_PTR,
PG_EPOCH_OFFSET_SECS,
};
pub use lsn_tracker::SharedLsnFeedback;
#[cfg(feature = "mysql")]
pub use crate::destinations::MySQLDestination;
#[cfg(feature = "sqlserver")]
pub use crate::destinations::SqlServerDestination;
#[cfg(feature = "sqlite")]
pub use crate::destinations::SQLiteDestination;
pub use crate::destinations::{DestinationFactory, DestinationHandler};
pub use crate::types::{DestinationType, Transaction};
#[cfg(feature = "metrics")]
pub use crate::monitoring::{
create_metrics_server, create_metrics_server_with_config, init_real_metrics, MetricsServer,
MetricsServerConfig,
};
pub use crate::monitoring::{
gather_metrics, init_metrics, MetricsCollector, MetricsCollectorTrait, ProcessingTimer,
ProcessingTimerTrait,
};