#bird #bgp #protocols #talk #instrumentation #server #purpose

birdc

用于与BIRD BGP服务器进行管理和监控的库

3个版本 (重大更新)

0.3.0 2023年6月12日
0.2.0 2022年5月2日
0.1.0 2022年4月30日

#979 in 网络编程

MIT/Apache

105KB
2K SLoC

birdc

Current Crates.io Version Build License

Rust库,用于与Bird BGP服务器进行管理和监控。

文档

示例

use birdc::*;

// create the client
let client = Client::for_unix_socket("/run/bird/bird.ctl");

// we can either use raw protocol
async fn show_interfaces_raw(client: &Client) -> Result<()> {
    let mut connection = client.connect().await?;

    // we can either use raw protocol
    let messages = connection.send_request("show interfaces").await?;
    for message in &messages {
        println!("received message: {:?}", message);
    }
    Ok(())
}

// or we can use structured exchange
async fn show_interfaces(client: &Client) -> Result<()> {
    let mut connection = client.connect().await?;

    // let's make a semantic call now
    match connection.show_interfaces().await {
        Ok(entries) => {
            for e in &entries {
                println!("received entry: {:?}", e);
            }
        }
        Err(Error::ParseError(messages)) => {
            // we can still go through the raw response
            // even though semantic parsing failed
            for msg in &messages {
                println!("raw message: {:?}", msg);
            }
        }
        Err(e) => {
            return Err(e);
        }
    }
    Ok(())
}

许可协议

根据您选择的许可协议使用

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可协议定义的,您有意提交以包含在作品中的任何贡献,都将按照上述方式双许可,没有任何额外的条款或条件。

依赖项

~3–15MB
~129K SLoC