ascii_domain

Domains whose labels are only ASCII.
git clone https://git.philomathiclife.com/repos/ascii_domain
Log | Files | Refs | README

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.