Skip to main content

Crate camel_component_kafka

Crate camel_component_kafka 

Source
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 fields

After:

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 safe

When 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

Structs§

KafkaComponent
KafkaEndpoint