2 releases

0.1.1 Jun 29, 2020
0.1.0 Jun 22, 2020

#20 in #bmp

MIT and GPL-3.0 licenses

8KB
77 lines

bmp-client

This is a simple BMP (BGP Monitoring Protocol) client for Rust. The heavy lifting is done within the bmp-protocol crate, this just provides a simple wrapper with some convenience functions.

Usage

# Cargo.toml

[dependencies]
bmp-client = "^0.1"
#[tokio::main]
async fn main() {
    let mut tcp = TcpListener::bind("0.0.0.0:1790").await.unwrap();

    loop {
        let (stream, peer) = tcp.accept().await.unwrap();
        println!("Client {} connected", peer);

        tokio::spawn(async move {
            let mut client = BmpClient::new(stream);

            while let Some(message) = client.recv().await {
                match message {
                    Ok(message) => println!("Received a {} message", message.kind),
                    Err(error) => {
                        eprintln!("{}", error);
                        std::process::exit(1);
                    }
                };
            }
        });
    }
}

Contributing

Contributions are welcome, the library is still very barebones.

Dependencies

~6.5MB
~104K SLoC