datum-mq 0.10.5

Kafka sources and sinks for Datum streams, with native and rdkafka backends
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, SASL PLAIN/SCRAM, and
//! record-batch v2 LZ4/Zstd. 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(all(test, feature = "rdkafka"))]
pub(crate) use client::NativeKafkaConsumer;
#[cfg(test)]
pub(crate) use model::TopicPartition;
#[cfg(all(test, feature = "rdkafka"))]
mod tests;