A fully asynchronous, futures-based Apache Kafka client library for Rust built on librdkafka.
rust-rdkafka is a Rust client library for Apache Kafka that provides a safe, high-performance interface to the librdkafka C library. It enables asynchronous message production and consumption with support for modern Kafka features like exactly-once semantics and transactions. The library solves the need for a reliable, fast Kafka client in the Rust ecosystem that balances idiomatic Rust APIs with the proven performance of librdkafka.
Rust developers building data streaming applications, real-time data pipelines, or event-driven microservices that require interaction with Apache Kafka clusters. It's particularly suited for teams needing high-throughput message processing with strong delivery guarantees.
Developers choose rust-rdkafka because it combines the safety and expressiveness of Rust with the industry-standard performance of librdkafka. It offers comprehensive Kafka feature support, multiple abstraction levels (from low-level to futures-based APIs), and seamless integration with async runtimes like Tokio, making it the most mature and production-ready Kafka client for Rust.
A fully asynchronous, futures-based Kafka client library for Rust based on librdkafka
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Demonstrates over one million messages per second in benchmarks, leveraging librdkafka's optimized C core for maximum throughput as shown in the README.
Supports all Kafka versions from 0.8.x, including modern features like exactly-once semantics and transactional producers, detailed in the feature list.
Provides StreamConsumer and FutureProducer for seamless integration with Tokio and other async runtimes, with examples for asynchronous processing.
Requires multiple system dependencies like GNU toolchain, libcurl-dev, and cmake, which can complicate setup in constrained environments, as noted in the installation section.
The README explicitly warns that the library is under active development and APIs are likely to change, posing a risk for production code stability.
Default features include Tokio integration, adding unnecessary overhead for users who only need low-level clients, requiring manual configuration to disable.