README.md (1734B)
1 # ascii_domain 2 3 `ascii_domain` is a library for efficiently parsing domains based on a supplied ASCII character set one wants to 4 enforce each `Label` to conform to. The primary type in the library is `Domain` which can be thought of as a domain 5 in _representation_ format. Technically since any ASCII `u8` except `b'.'` is allowed in a `Label`, it is more 6 general than an actual representation format that doesn't include some form of escape characters. For a 7 full-fledged DNS library look elsewhere (e.g., [`domain`](https://docs.rs/domain/latest/domain/)). 8 9 The purpose of this library is to allow efficient customization of domain name parsing while still retaining 10 the hierarchical structure of a domain. Depending on one’s use case, allowed formats and characters can 11 differ. If one wants to conform to the [Domain Name System (DNS)](https://www.rfc-editor.org/rfc/rfc2181), 12 all octets are allowed; but conforming to [RFC 1123](https://www.rfc-editor.org/rfc/rfc1123) or 13 [RFC 5891](https://datatracker.ietf.org/doc/html/rfc5891) requires stricter formats and a reduced character 14 set. 15 16 ## License 17 18 Licensed under either of 19 20 * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0). 21 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT). 22 23 at your option. 24 25 ## Contribution 26 27 Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, 28 as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. 29 30 ### Status 31 32 The crate is only tested on the `x86_64-unknown-linux-gnu` and `x86_64-unknown-openbsd` targets, but 33 it should work on any platform.