#routes #ip #networking

net-route

此软件包提供了一种跨平台的接口,用于操作路由表

26 个版本

0.4.4 2024 年 6 月 13 日
0.4.2 2024 年 3 月 8 日
0.2.8 2023 年 11 月 4 日
0.2.5 2022 年 12 月 21 日
0.2.0 2022 年 10 月 18 日

1241网络编程

Download history 14/week @ 2024-05-03 159/week @ 2024-05-10 73/week @ 2024-05-17 28/week @ 2024-05-24 34/week @ 2024-05-31 131/week @ 2024-06-07 89/week @ 2024-06-14 114/week @ 2024-06-21 30/week @ 2024-06-28 132/week @ 2024-07-05 41/week @ 2024-07-12 14/week @ 2024-07-19 15/week @ 2024-07-26 10/week @ 2024-08-02 45/week @ 2024-08-09 119/week @ 2024-08-16

190 每月下载量
用于 4 软件包

MIT 许可证

79KB
2K SLoC

Rust 1K SLoC // 0.0% comments C 747 SLoC // 0.1% comments

Net Route

此项目旨在为各种平台上的路由表操作和观察提供高级接口。


lib.rs:

此项目旨在为各种平台上的路由表操作和观察提供高级接口。

示例

添加路由

// route traffic destined for 10.14.0.0/24 to 192.1.2.1 using interface 9
let handle = Handle::new()?;
let route = Route::new("10.14.0.0".parse().unwrap(), 24)
    .with_ifindex(9)
    .with_gateway("192.1.2.1".parse().unwrap());
handle.add(&route).await

监听路由表变化

let handle = Handle::new()?;
let stream = handle.route_listen_stream();
futures::pin_mut!(stream);
while let Some(event) = stream.next().await {
    println!("{:?}", event);
}

依赖项

~3–15MB
~179K SLoC