| Crates.io | winroute |
| lib.rs | winroute |
| version | 0.2.2 |
| created_at | 2023-01-09 05:28:22.530649+00 |
| updated_at | 2025-06-19 05:53:56.028198+00 |
| description | This crate is a utilities of high level of interface for manipulating and observing Windows's routing table |
| homepage | https://github.com/ljkgpxs/winroute |
| repository | https://github.com/ljkgpxs/winroute |
| max_upload_size | |
| id | 754132 |
| size | 55,517 |
This crate is a utilities of high level of interface for manipulating and observing Windows's routing table
let manager = RouteManager::new()?;
let new_route = Route::new("223.6.6.6".parse().unwrap(), 32).metric(1);
// add route
if let Err(e) = manager.add_route(&new_route) {
eprintln!("{e}");
}
// delete route
if let Err(e) = manager.delete_route(&new_route) {
eprintln!("{e}");
}
let manager = RouteManager::new()?;
let recvier = manager.subscribe_route_change();
let ma = Arc::new(manager);
let mb = ma.clone();
// start a thread to driven event loop, also can use async task to run this
std::thread::spawn(move || loop {
ma.poll().unwrap();
});
// create a new route
let new_route = Route::new("223.6.6.6".parse().unwrap(), 32);
// add route to system
mb.add_route(&new_route)?;
loop {
// listeing on route change event
let event = recvier.recv().unwrap();
println!("{:?}", event);
}
serializable: This feature is enabled by default, it implemented serde's Serialize and Deserialize, this feature requires an additional dependency on serde