Implementation:Fede1024 Rust rdkafka Crate Root
| Knowledge Sources | |
|---|---|
| Domains | Crate_Architecture, API_Surface, Documentation |
| Last Updated | 2026-02-07 19:00 GMT |
Overview
Crate root for the rdkafka library that declares all public modules, re-exports key types, and provides comprehensive crate-level documentation for the fully asynchronous Apache Kafka client.
Description
The rdkafka crate root (src/lib.rs) is the top-level entry point that organizes the entire public API surface. It declares 13 public modules (admin, client, config, consumer, error, groups, message, metadata, mocking, producer, statistics, topic_partition_list, util) and one private module (log). It re-exports frequently used types at the crate root: ClientContext, ClientConfig, Message, Timestamp, Statistics, Offset, TopicPartitionList, and IntoOpaque. The file enforces #![forbid(missing_docs)] and #![deny(rust_2018_idioms)]. The module documentation covers library features, supported Kafka versions, client types, async runtime integration, MSRV, and feature flags.
Usage
This is the entry point for all users of the rust-rdkafka library. Add rdkafka as a dependency in Cargo.toml and use the re-exported types and modules. Most users start with use rdkafka::ClientConfig to build a producer or consumer.
Code Reference
Source Location
- Repository: Fede1024_Rust_rdkafka
- File: src/lib.rs
- Lines: 1-297
Signature
#![forbid(missing_docs)]
#![deny(rust_2018_idioms)]
pub mod admin;
pub mod client;
pub mod config;
pub mod consumer;
pub mod error;
pub mod groups;
pub mod message;
pub mod metadata;
pub mod mocking;
pub mod producer;
pub mod statistics;
pub mod topic_partition_list;
pub mod util;
pub use crate::client::ClientContext;
pub use crate::config::ClientConfig;
pub use crate::message::{Message, Timestamp};
pub use crate::statistics::Statistics;
pub use crate::topic_partition_list::{Offset, TopicPartitionList};
pub use crate::util::IntoOpaque;
Import
// Most common imports
use rdkafka::ClientConfig;
use rdkafka::Message;
use rdkafka::consumer::{StreamConsumer, Consumer};
use rdkafka::producer::FutureProducer;
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| Cargo features | Feature flags | No | tokio (default), cmake-build, dynamic-linking, ssl, gssapi, etc. |
Outputs
| Name | Type | Description |
|---|---|---|
| Public modules | 13 modules | admin, client, config, consumer, error, groups, message, metadata, mocking, producer, statistics, topic_partition_list, util |
| Re-exports | 7 key types | ClientContext, ClientConfig, Message, Timestamp, Statistics, Offset, TopicPartitionList, IntoOpaque |
Usage Examples
Adding rdkafka as Dependency
[dependencies]
rdkafka = { version = "0.36", features = ["cmake-build"] }
Basic Import Pattern
use rdkafka::ClientConfig;
use rdkafka::consumer::{StreamConsumer, Consumer};
use rdkafka::producer::FutureProducer;
use rdkafka::Message;
// Create a consumer
let consumer: StreamConsumer = ClientConfig::new()
.set("bootstrap.servers", "localhost:9092")
.set("group.id", "my-group")
.create()
.expect("Consumer creation failed");
// Create a producer
let producer: FutureProducer = ClientConfig::new()
.set("bootstrap.servers", "localhost:9092")
.create()
.expect("Producer creation failed");