= `whos("th.at")?` - Rust whois library [source,rust] ---- let domain = whos::domain("debian.org").unwrap(); assert_eq!(domain.name, "debian.org"); assert_eq!(domain.suffix, ".org"); assert_eq!(domain.created, Some("1999-03-10T05:00:00Z")); ---- ---- $ cargo run --example domain -- debian.org domain : debian.org created: 1999-03-10T05:00:00Z expiry : 2025-03-10T05:00:00Z name servers: dns4.easydns.info nsp.dnsnode.net sec1.rcode0.net sec2.rcode0.net # basically the same $ whois debian.org | cargo run --example domain ---- Currently the parsing functionality is focused on domain names. == Versioning WHOIS server "major" changes, e.g. a suffix losing its server, are not considered breaking changes. == Testing Due to data use policies of registries, test data can not be distributed in this repository. For most suffixes, the base domains of their WHOIS servers are enough; others might need manual checks. == Maintenance Check if whois(1) has updated data (tld_serv_list & new_gtlds_list); if so, . `git submodule update --init` . `cargo run --package build-data` . Examine `git diff src/server_list.rs` == Acknowledgements WHOIS server data is from https://github.com/rfc1036/whois[whois(1)] by Marco d'Itri, licensed under GPL 2.0. Specifically, the `tld_server_list` and `new_gtlds_list` files. Domain name data parsing rules are derived from the Python https://github.com/mboot-github/WhoisDomain[WhoisDomain] library, licensed under MIT license.