# 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`](https://docs.rs/domain/latest/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)](https://www.rfc-editor.org/rfc/rfc2181), all octets are allowed; but conforming to [RFC 1123](https://www.rfc-editor.org/rfc/rfc1123) or [RFC 5891](https://datatracker.ietf.org/doc/html/rfc5891) requires stricter formats and a reduced character set. ## License Licensed under either of * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0). * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT). 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.