This crate provides a no_std
implementation of the DNS protocol.
In order to make it trivial for others to build implementations of the DNS protocol, this crate provides a sans-I/O implementation of the protocol. This means that it doesn't provide any I/O functionality, but instead provides a way to parse and serialize DNS messages.
In addition, this crate is not only no_std
, but also alloc
-free. This means that it can be used in environments where alloc
is not available, such as embedded systems. It also has no unsafe code.
However, there is a catch. Since this system does not allocate, the user is responsible for providing a buffer to parse DNS messages into. This means that the user must know the maximum size of a DNS message that they will be parsing. This is a reasonable assumption, since DNS messages are limited to 512 bytes in the common case.
The Minimum Supported Rust Version (MSRV) for this crate is Rust 1.63. Any change to this MSRV will be accompanied by a minor version bump.
Dual licensed under the MIT and Apache 2.0 licenses.