#domain-name #character-set #domain #ascii #dns #validation

no-std ascii_domain

Parser for DNS names based on a provided ASCII character set

9 releases (5 breaking)

0.6.2 Sep 7, 2024
0.6.1 Mar 27, 2024
0.6.0 Feb 14, 2024
0.5.0 Feb 11, 2024
0.1.0 Feb 4, 2024

#777 in Parser implementations


Used in rpz

MIT/Apache

115KB
2K SLoC

ascii_domain

ascii_domain is a library for efficiently parsing domains based on a supplied ASCII character set one wants to enforce each Label to conform to. The primary type in the library is Domain which can be thought of as a domain in representation format. Technically since any ASCII u8 except b'.' is allowed in a Label, it is more general than an actual representation format that doesn't include some form of escape characters. For a full-fledged DNS library look elsewhere (e.g., domain).

The purpose of this library is to allow efficient customization of domain name parsing while still retaining the hierarchical structure of a domain. Depending on one’s use case, allowed formats and characters can differ. If one wants to conform to the Domain Name System (DNS), all octets are allowed; but conforming to RFC 1123 or RFC 5891 requires stricter formats and a reduced character set.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Status

The crate is only tested on the x86_64-unknown-linux-gnu and x86_64-unknown-openbsd targets, but it should work on any platform.

Dependencies

~160KB