hostport 0.3.0

Parse and validate host:port combinations.
Documentation

hostport Test codecov crates.io docs.rs

A Rust crate for parsing, validating, and working with host:port combinations.

  • 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 via serde.
cargo add hostport --features serde

or in Cargo.toml:

[dependencies]
hostport = { version = "x.y.z", features = ["serde"] }