A library for interacting with the Domain Name System. The crate contains an ever-growing set of building blocks for including DNS functionality in applications.
Currently, these blocks include:
- basic data structures and functionality for creating and parsing DNS data and messages,
- experimental support for DNS client and server transports,
- support for signing and verifying messages using the TSIG mechanism,
- experimental support for reading data from DNS zone files,
- experimental and as yet incomplete support for DNSSEC signing and validation,
- a simple Tokio-based stub resolver.
If you have ideas, requests, or proposals for future features, please don’t hesitate to open Github issues.
We are trying to maintain a decent balance between being able to use older compiler versions and using new features that improve safety and usability of the crate.
The rust-version
given in Cargo.toml
is the oldest version that can
be used to compile the crate with the minimal versions of all dependencies
selected.
You can run cargo +nightly update -Z minimal-versions
to ask Cargo to
select these minimal versions for all dependencies.
This is the minimum Rust version required to build with latest version of
all dependencies at time of release. Cargo.lock
contains these versions
for reference.
The domain crate is distributed under the terms of the BSD-3-clause license. See the LICENSE file for details.