rust-rdkafka
Kafka client library for Rust based on librdkafka.
The library
This library aims to provide a safe interface to librdkafka. It currently exports some of the funcionalities provided by the producer and consumer of librdkafka 0.9.2.
Producers and consumers can be accessed and polled directly, or alternatively a futures-based interface can be used:
- A consumer will return a
streamof messages, as they are received from Kafka. - A producer will return a
futurethat will eventually contain the delivery status of the message.
Warning: this library is still at an early development stage, the API is very likely to change and it shouldn't be considered production ready.
Installation
Add this to your Cargo.toml:
[]
= "^0.1.0"
This crate will compile librdkafka from sources and link it statically in your executable. To compile librdkafka you'll need:
- the GNU toolchain
- GNU
make pthreadszlib: optional, included by default (feature:zlib).libssl-dev: optional, not included by default (feature:ssl).libsasl2-dev: optional, not included by default (feature:sasl).
To enable ssl and sasl, use the features field in Cargo.toml. Example:
[]
= "0.1.0"
= ["ssl", "sasl"]
Compiling from sources
To compile from sources, you'll have to update the submodule containing librdkafka:
and then compile using cargo, selecting the features that you want. Example:
Examples
You can find examples in the examples folder. To run them:
Documentation
Documentation is available on docs.rs.
Alternatives
- kafka-rust: a pure Rust implementation of the Kafka client.