4 releases (breaking)
Uses new Rust 2024
| 0.4.0 | May 27, 2025 |
|---|---|
| 0.3.0 | May 25, 2025 |
| 0.2.0 | May 5, 2025 |
| 0.1.0 | Apr 27, 2025 |
#106 in #port
233 downloads per month
17KB
272 lines
hostport

A Rust crate for parsing, validating, and working with
host:portcombinations.
- host: Domain, network alias, or IP address
- port: Integer in the range
0–65535
Features
- Parse from strings
- Compare with strings
- Host validation
Installation
cargo add hostport
Usage
use hostport::HostPort;
let hostport = HostPort::new("localhost", 8080).unwrap();
assert_eq!(hostport.host(), "localhost");
assert_eq!(hostport.port(), 8080);
assert_eq!(hostport.to_string(), "localhost:8080");
assert_eq!(hostport, "localhost:8080");
assert_eq!(hostport, "localhost:8080".parse::<HostPort>().unwrap());
use hostport::is_valid_host;
assert!(is_valid_host("quake.se"));
assert!(is_valid_host("quake-world.se"));
assert!(is_valid_host("localhost"));
assert!(is_valid_host("10.10.10.10"));
Optional Features
serde– Enables serialization and deserialization support viaserde.
cargo add hostport --features serde
or in Cargo.toml:
[dependencies]
hostport = { version = "x.y.z", features = ["serde"] }
Dependencies
~175–670KB
~15K SLoC