| Crates.io | ip_network |
| lib.rs | ip_network |
| version | 0.4.1 |
| created_at | 2017-09-26 18:54:59.725813+00 |
| updated_at | 2021-11-12 15:04:00.836628+00 |
| description | IPv4 and IPv6 network structs. |
| homepage | https://github.com/JakubOnderka/ip_network |
| repository | https://github.com/JakubOnderka/ip_network |
| max_upload_size | |
| id | 33242 |
| size | 150,448 |
IPv4 and IPv6 network structs.
Add this to your Cargo.toml:
[dependencies]
ip_network = "0.4"
this to your crate root (not necessary when your project is Rust 2018 edition):
extern crate ip_network;
and then you can use it like this:
use std::net::Ipv4Addr;
use ip_network::Ipv4Network;
let ip_network = Ipv4Network::new(Ipv4Addr::new(192, 168, 1, 0), 24)?;
assert_eq!(Ipv4Addr::new(192, 168, 1, 0), ip_network.network_address());
assert_eq!(24, ip_network.netmask());
assert_eq!(254, ip_network.hosts().len());
assert_eq!("192.168.1.0/24", ip_network.to_string());
Minimal required version of Rust compiler is:
When using this crate, you can choose to compile with these features:
To enable serialization and deserialization by Serde framework,
just add serde feature to package in your Cargo.toml:
[dependencies]
ip_network = { version = "0.4", features = ["serde"] }
To enable support for diesel CIDR type for PostgreSQL,
just add diesel feature to package in your Cargo.toml:
[dependencies]
ip_network = { version = "0.4", features = ["diesel"] }
You can then use ip_network::diesel_support::PqCidrExtensionMethods trait for CIDR operators support.
To enable support for postgres crate CIDR type,
just add postgres feature to package in your Cargo.toml:
[dependencies]
ip_network = { version = "0.4", features = ["postgres"] }
ipnetwork crateSimilar functionality also provides ipnetwork crate. This table shows the differences between these two crates:
| Feature | ip_network | ipnetwork |
|---|---|---|
| IPv4 | ✓ | ✓ |
| IPv6 | ✓ | ✓ |
| IPv4 and IPv6 enum | ✓ | ✓ |
| IPv4 network types | ✓ | |
| IPv6 network types | ✓ | |
| Hosts iterator | ✓ | ✓ |
| Subnetworks iterator | ✓ | |
| Check host bits set | ✓ | |
| Serde | ✓ | ✓ |
| Serde binary | ✓ | |
| Diesel CIDR | ✓ | ✓ |
| Diesel operators | ✓ | |
| Postgres CIDR | ✓ | |
| IPv4 string parsing | 65 ns | 379 ns |
| IPv6 string parsing | 126 ns | 434 ns |
| IPv4 contains method | 7 ns | 15 ns |
| IPv6 contains method | 28 ns | 49 ns |