Files
NLnetLabs-domain/README.md
T
Martin HoffmannandGitHub c421dc89f2 Proposal for a MSRV policy. (#330)
This PR proposes a revised policy for dealing with minimum supported Rust
versions.

It suggests to keep the rust-version field in Cargo.toml at the oldest Rust
version that is able to build with minimal dependency versions and all
features enabled. In addition, the Rust version necessary to build with
latest dependencies is provided in the README and as a comment in
Cargo.toml. Both these versions are checked in the CI workflow.

The reasoning behind the proposal is that rust-version sets a hard limit on
the version, so it should be chosen as low as possible. While technically it
could be lower with a subset of the features selected, this feels like a
slippery slope and setting the version with all features selected feels like
an acceptable compromise.

Only documenting the version that is necessary to build with latest
dependencies isn’t ideal but at least provides some guidance as to what to
choose for people who go look for some.
2024-06-20 14:34:15 +02:00

1.9 KiB
Raw Blame History

domain A DNS library for Rust

Current Documentation Mastodon Follow

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 dont hesitate to open Github issues.

Minimal Supported Rust Versions

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.

Minimum version: 1.68.2

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.

Current version: 1.76.0

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.

Licensing

The domain crate is distributed under the terms of the BSD-3-clause license. See the LICENSE file for details.