Kafka Rust Client
Usage:
Load topic metadata:
extern crate kafka;
use kafka::client::KafkaClient;
fn main() {
let mut client = KafkaClient::new(&vec!("localhost:9092".to_string()));
client.load_metadata(&vec!("my-topic".to_string()));
}
Fetch Offsets:
extern crate kafka;
use kafka::client::KafkaClient;
fn main() {
let mut client = KafkaClient::new(&vec!("localhost:9092".to_string()));
client.load_metadata_all();
println!("{:?}", client.fetch_topic_offset(&"my-topic".to_string()));
}
Produce:
extern crate kafka;
use kafka::client::KafkaClient;
fn main() {
let mut client = KafkaClient::new(&vec!("localhost:9092".to_string()));
client.load_metadata_all();
client.send_message(
&"my-topic".to_string(), 0, 1, 100, &"b".to_string().into_bytes() )
}
Fetch Messages:
extern crate kafka;
use kafka::client::KafkaClient;
fn main() {
let mut client = KafkaClient::new(&vec!("localhost:9092".to_string()));
client.load_metadata_all();
for om in client.fetch_messages(&"my-topic".to_string(), 0, 0) {
println!("{:?}", om);
};
}
TODO:
- Test
- Remove unnecessary imports and publics
- Tests
- Missing functions for the implemented methods (eg. Fetch Message by multiple topic/partition)
- Offset Management functions
- Documentation