Expand description
Kafka component for rust-camel — Apache Camel–inspired integration with Apache Kafka.
Provides producer and consumer endpoints backed by rdkafka, with Tower-native
async pipelines, EIP patterns, and full security (SASL, SSL) support.
§Migration from v0.x (Breaking API Change)
KafkaProducer::new, KafkaConsumer::new, and apply_security_config now require
a ResolvedKafkaEndpointConfig instead of KafkaEndpointConfig. This eliminates
production panics from missing config fields by enforcing resolution at compile time.
Before:
ⓘ
let config = KafkaEndpointConfig::from_uri("kafka:topic?brokers=localhost:9092&groupId=g")?;
let producer = KafkaProducer::new(config)?; // could panic on missing fieldsAfter:
ⓘ
let config = KafkaEndpointConfig::from_uri("kafka:topic?brokers=localhost:9092&groupId=g")?;
let resolved = config.resolve()?; // applies defaults, validates, returns ResolvedKafkaEndpointConfig
let producer = KafkaProducer::new(resolved)?; // guaranteed safeWhen using the KafkaComponent trait implementation, resolution happens automatically
in create_endpoint, so no changes are needed for component-based usage.
Re-exports§
pub use broker_config::KafkaBrokerConfig;pub use bundle::KafkaBundle;pub use config::KafkaConfig;pub use config::KafkaEndpointConfig;pub use config::ResolvedKafkaEndpointConfig;pub use consumer::KafkaConsumer;pub use health::KafkaHealthCheck;pub use manual_commit::KafkaManualCommit;pub use producer::KafkaProducer;
Modules§
- broker_
config - bundle
- config
- consumer
- health
- manual_
commit - Manual Kafka offset commit API.
- producer