38 releases
new 0.4.6 | Nov 5, 2024 |
---|---|
0.4.4 | Aug 2, 2024 |
0.4.3 | Jun 4, 2024 |
0.4.1 | Dec 15, 2023 |
0.3.3 | Jul 22, 2023 |
#1358 in Network programming
273 downloads per month
Used in pistol
32KB
725 lines
subnetwork
Returns an iterator that iterates over all subnet IPs.
Example 1
use std::net::Ipv4Addr;
use subnetwork::Ipv4Pool;
fn main() {
let ipv4_pool = Ipv4Pool::from("192.168.1.0/24").unwrap();
for i in ipv4_pool {
println!("{:?}", i);
}
let ipv4 = Ipv4Addr::new(192, 168, 1, 1);
let ret = ipv4_pool.contain(ipv4);
assert_eq!(ret, true);
}
Example 2
use std::net::Ipv4Addr;
use subnetwork::CrossIpv4Pool;
fn main() {
let start = Ipv4Addr::new(192, 168, 1, 1);
let end = Ipv4Addr::new(192, 168, 3, 254);
let ips = CrossIpv4Pool::new(start, end).unwrap();
for i in ips {
println!("{:?}", i);
}
}
Benchmark
You can see how our performance compares to other similar libraries here.
lib.rs
:
The subnetwork
crate provides a set of APIs to work with IP CIDRs in Rust.
Dependencies
~250–710KB
~17K SLoC