datum-mq 0.10.4

Kafka sources and sinks for Datum streams, backed by rdkafka
Documentation
#![allow(dead_code)]

//! Datum-native Kafka consumer and experimental producer engine.
//!
//! This module is private to `datum-mq`; users select it through
//! `KafkaConsumerSettings::with_consumer_backend(KafkaConsumerBackend::Native)`.
//! The native producer is selected separately through `KafkaProducerBackend`.
//! Both native paths support plaintext, rustls TLS, and SASL PLAIN/SCRAM, but
//! remain compression-free. Native produce
//! provides bounded-retry at-least-once delivery, not idempotence or EOS.
//! Produce requests are bounded per broker connection and never overlap for
//! the same topic-partition; failures halt and settle the issued pipeline before
//! retrying in original order.

mod client;
mod connection;
mod error;
mod model;
mod producer;
pub(crate) mod profile;
pub(crate) mod protocol;
mod security;
mod source;

pub(crate) use client::{
    AutoOffsetReset, FetchTuning, GroupAssignor, NativeCommitPolicy, NativeKafkaConsumerConfig,
};
pub(crate) use error::{KafkaClientError, KafkaClientResult};
pub(crate) use model::{KafkaPayloadBatch, KafkaTimestamp, StartOffset, TopicPartitionAssignment};
pub(crate) use producer::{NativeKafkaProducerControl, NativeKafkaProducerHandle};
pub(crate) use security::{NativeSecurityConfig, native_security_config};
pub(crate) use source::{NativeKafkaControl, NativeKafkaSource};

pub(crate) const VERSION: &str = env!("CARGO_PKG_VERSION");

#[cfg(test)]
pub(crate) use client::NativeKafkaConsumer;
#[cfg(test)]
pub(crate) use model::TopicPartition;
#[cfg(test)]
mod tests;