rafka-rs 0.1.0

Rafka - A high-performance distributed message broker written in Rust
Documentation
use rafka_consumer::Consumer;
use std::env;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args: Vec<String> = env::args().collect();
    let port = args.iter()
        .position(|arg| arg == "--port")
        .and_then(|i| args.get(i + 1))
        .and_then(|p| p.parse::<u16>().ok())
        .unwrap_or(50051);

    let partition_id = args.iter()
        .position(|arg| arg == "--partition")
        .and_then(|i| args.get(i + 1))
        .and_then(|p| p.parse::<u32>().ok())
        .unwrap_or(0);

    let mut consumer = Consumer::new(&format!("127.0.0.1:{}", port)).await?;
    consumer.subscribe("greetings".to_string()).await?;
    println!("Consumer ready - listening for messages on 'greetings' topic (partition {})", partition_id);
    
    let mut rx = consumer.consume("greetings".to_string()).await?;
    while let Some(message) = rx.recv().await {
        println!("Received message: {}", message);
    }
    
    Ok(())
}