hostport

Crates.iohostport
lib.rshostport
version0.4.0
created_at2025-04-27 11:03:48.085067+00
updated_at2025-05-27 13:18:07.425774+00
descriptionParse and validate host:port combinations.
homepage
repositoryhttps://github.com/vikpe/hostport
max_upload_size
id1651019
size30,284
Viktor Persson (vikpe)

documentation

README

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"] }
Commit count: 14

cargo fmt