2 releases
0.1.3 | Jun 29, 2020 |
---|---|
0.1.0 | Jun 22, 2020 |
#61 in #packets
32 downloads per month
Used in bmp-client
30KB
554 lines
bmp-protocol
This crate implements a simple BMP packet decoder. It can decode BMP v3 packets and will use bgp-rs
to decode any BGP messages contained within the BMP data.
We provide a Decoder
ready to be used with a tokio_util::codec::FramedRead
instance to provide decoded BMP messages to a consumer. See bmp-client
for a working example of this.
Usage
# Cargo.toml
bmp-protocol = { git = "https://github.com/ccakes/bmp-protocol-rs" }
use bmp_protocol::BmpDecoder;
use tokio::fs::File;
use tokio_util::codec::FramedRead;
// Read a file created using bmp_play (https://github.com/paololucente/bmp_play)
// A more likely real-world use case would be reading from a TcpStream
#[tokio::main]
async fn main() -> std::io::Result<()> {
let fh = File::open(&entry.path()).await?;
let mut reader = FramedRead::new(fh, BmpDecoder::new());
while let Some(message) = reader.next().await {
assert!(message.is_ok());
}
}
Contributing
Contributions are welcome, the library is currently incomplete and there are still BMP message types to implement.
Dependencies
~6.5MB
~105K SLoC