NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2998 most downloaded on crates.io
A DNS library for Rust.
Last release 12 days ago
25 Sep 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 26 of 33 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
33 releases · first in 2016
Updated the constants for the IANA registries. ( #699 , #716 by @SebastiaanYN )
New
Bug fixes
Message::canonical_name to 20. This also fixed an integer overflow in this method when ANCOUNT wasu16::MAX. (#752)QuestionSection::answer to skip over all remaining questions without parsing the QNAMEs to avoid being slowed down by malicious names. (#753)todo! macro in the Hash impl for IpseckeyGateway. (#706 by @SebastiaanYN)Caa, Ipseckey, Nsec3Salt, Openpgpkey, Sshfp, Tlsa Txt Zonemd. (#726)FoundHosts::qname and FoundHosts::canonical_name. (#727)Scan impl for unsigned integers. (#725)Unstable features
unstable-client-transport:
unstable-server-transport:
QnameRouter if a request that doesn’t have at least one valid name is dispatched to it. (#734)unreachable! in the XFR server middleware. (#739)unstable-sign:
unstable-validator:
unstable-xfr:
unstable-zonetree:
zonetree::Answer::to_message when the request does not have exactly one question. (#731)parsed::Zonefile. This change removes the Default impl, which means an origin and class must be given when creating a value. (#732)Acknowledgements
One column per quarter.
Implemented to_mnemonic_str for Rcode and OptCode ( #668 and #648 by @rossmacarthur )
New
to_mnemonic_str for Rcode and OptCode (#668 and #648 by @rossmacarthur)Improvements
core and alloc to improve no_std support. (#671)Unstable features:
unstable-new:
Serial::new and Serial::get. (#676)Name. (#678)Display for RType and RClass. (#678)TypeBitmap. (#681)Released 2026-07-16.
New
to_mnemonic_str for Rcode and OptCode (#668 and #648
by @rossmacarthur)Improvements
core and alloc to improve no_std support.
(#671)Unstable features:
unstable-new:
Serial::new and Serial::get. (#676)Name. (#678)Display for RType and RClass. (#678)TypeBitmap. (#681)Implemented core::Error instead of std::Error for error types, reducing the need for the std feature flag. ( #641 by @soywod )
Improvements
core::error::Error instead of std::error::Error for error types, reducing the need for the std feature flag. (#641 by @soywod)impl core::Error for ParseError. (#650 by @soywod)Bug fixes
Dnskey<_> which are supposed to never be too large. (#664)dnssec::sign::records::Rrset with records that have different TTLs. Unfortuantely error handling is poor so the code currently panics. At least this prevents bad signatures but the error handling needs to be fixed later. (#660)Unstable features
unstable-crypto:
Added new LimitExceeded variant to MessageBuilder 's PushError .
Breaking changes
LimitExceeded variant to MessageBuilder's PushError. (#349)Resolver and SearchNames traits of the stub resolver to use lifetimes for associated types. This makes it easier to keep the stub resolver behind an arc or other smart pointer. (#596)New
rdata::dnssec::Timestamp::to_system_time to help sorting timestamps. (#548)TLSA, OPENPGPKEY, SSHFP, and IPSECKEY record types and added presentation format support for the SVCB/HTTPS record types. (#569)CAA record type. (#434 by @weilence)FreezeBuilder to the message compressors. (#601 by @rossmacarthur)RP record type. (#620)Zonefile::current_offset. (#642)Improvements
moka dependency from the resolv feature, reducing the number of dependencies and compile time significantly. (#575 by @WhyNotHugo)RelativeName into const fns. (#576 by @WhyNotHugo)Bug fixes
XfrMiddlewareService should always support at least one concurrent XFR. (#599)Unstable features
unstable-crypto-sign
unstable-server-transport
Service returns a ServiceError. (#390)std::error::Error for ServiceError. (#570 by @rossmacarthur)Service trait rather than leaving them to the impl. (#484)?Sized bound on impl Service for U where U: Deref. (#484)unstable-sign
RecordsIter::new has been replaced with RecordsIter::new_from_owned. There is a new RecordsIter::new_from_refs that takes a &[&Record]]. This breaks existing uses of `RecordsIter? and related types. (#614)unstable-xfr
Other changes
Fix handling of tabs when formatting RDATA using DisplayKind::Tabbed .
Bug fixes
DisplayKind::Tabbed. (#516)ZoneUpdater to support any Record type, not just ParsedRecord. (#535)Unstable features
unstable-server-transport:
Notifiable trait will need to update their code as this change adds an argument to Notifiable::notify_zone_changed(). #562)unstable-client-transport:
Other changes
XfrResponseInterpreter. (#510)FIX: Use base 16 per RFC 4034 for the DS digest, not base 64.
Breaking changes
Zonefile parser. ([#477])New
HashCompressor, an unlimited name compressor that uses a hash map rather than a tree. (#396)fmt::Display for HINFO records to a show a quoted string. (#421)NAPTR record type. (#427 by @weilence)arbitrary feature (not enabled by default). (#441)StubResolver::add_connection() to allow adding a connection to the running resolver. In combination with ResolvConf::new() this can also be used to control the connections made when testing code that uses the stub resolver. (#440)ZonefileFmt trait for printing records as zonefiles. (#379, #446, #463)Bug fixes
Unstable features
New unstable feature unstable-crypto that enable cryptography support for features that do not rely on secret keys. This feature needs either or both of the features ring and openssl (#416)
New unstable feature unstable-crypto-sign that enable cryptography support including features that rely on secret keys. This feature needs either or both of the features ring and openssl (#416)
New unstable feature unstable-client-cache that enable the client transport cache. The reason is that the client cache uses the moka crate.
New unstable feature unstable-new that introduces a new API for all of domain (currently only with base, rdata, and edns modules). Also see the associated blog post.
unstable-server-transport
SingleService which is a simplified service trait for requests that should generate a single response (#353).ComposeReply and an implementation of the trait (ReplyMessage) to assist in capturing EDNS(0) options that should be included in a response message (#353).Service for SingleService and to implement SingleService for SendRequest (#353).Request to a RequestMessage (#353).QnameRouter, that routes requests based on the QNAME field in the request (#353).unstable-client-transport
unstable-client-cache.unstable-sign
unstable-validator
validate crate is moved to dnssec::validator::base.validator crate is moved to dnssec::validator.Other changes
Fix a build issue with time 0.3.41. ( #505 , backported from #503 by @PSeitz )
Added Deserialize impl for the base::nostd::Ipv6Addr and fixed the impl for Ipv4Addr .
New
Deserialize impl for the base::net::nostd::Ipv6Addr and fixed the impl for Ipv4Addr. (#413)Bug fixes
Breaking changes to the Service and middleware traits.
New
MessageBuilder. (#348)FromStr impls for Rcode and OptRcode. (#357)OptRcode::is_ext to check if the code is an extended code. (#358)Rtype::is_glue to check if the Rtype may be used as glue. (#363)MessageBuilder::start_error, like start_answer but infallible. (#369)AnswerBuilder::push_ref, like push but takes the record by reference. (#383)Rtype::NXNAME and ExtendedErrorCode::INVALID_QUERY_TYPE. (#392)Serialize impl to AllRecordData and as a consequence to the OPT record and all OPT options, as well as ParsedName. (#343)Display impl to tsig::Key. (#397)Bug fixes
NOTAUTH rcode – it was NOAUTH. (#360)Txt<_> record data implements comparison-related traits. They now directly compare the underlying octets, i.e., the wire format bytes. (#374 by @dklbreitling)tsig module to reject messages with multiple TSIG records. (#334)Unstable features
unstable-validator that adds a DNSSEC validator. (#328)unstable-xfr that adds XfrResponseInterpreter for iterating over XFR responses as a sequence of high level ZoneUpdates, and XfrMiddlewareSvc and XfrDataProvider for responding to received XFR requests. (#375, #384)unstable-client-transport:
multi_stream transport by not waiting in the first iteration if an underlying stream reports its connection being closed. (#338)idle_timeout to stream that allows a TCP or TLS connection to stay open even if no TcpKeepalive option is received from the server. (#341)ComposeRequestMulti and other *Multi types. The main change is to the stream transport, which is the only transport that implements SendRequestMulti. (#377)net::client:tsig. (#373)unstable-server-transport
Service and middleware traits. (#369)TsigMiddlewareSvc request validating and response signing middleware in net::server::middleware::tsig. (#380)NotifyMiddlewareSvc in net::server::middleware::notify to parse and acknowledge SOA NOTIFY requests, for use by secondary nameservers to detect outdated zones compared to the primary. (#382)CookiesMiddlewareSvc now allows requests with invalid cookies to proceed if they are authenticated or not required to authenticate. (#336)enabled flag to CookiesMiddlewareSvc. (#369)ResourceRecordBatcher and impl CallbackBatcher in net::server::batcher for pushing as many records into a response as will fit according to defined limits. (#383)SendRequest and SendRequestMulti impls for boxes. (#397)EdnsMiddlewareSvc fixes: (#355)
EdnsMiddlewareSvc. (#403)unstable-zonetree:
ZoneUpdate. (#375)ZoneUpdater, ZoneDiff, InMemoryZoneDiffBuilder, InMemoryZoneDiff and improved ZoneUpdate. (#376, #384)TryFrom<inplace::Zonefile> for Zonefile now returns the set of errors instead of logging and ignoring them. (#362)Versioned::remove_all() (formerly Versioned::clean()) as it made destructive changes to the zone that would have impacted readers of the current zone version while the new zone version was being created. (#376)clean in zonetree::in_memory to remove. (#376)as_any method and Clone and Debug impls to various zonetree types. (#397)AsRef<dyn ZoneStore> to Zone. (#397)at_zone_cut was added to the callback interface. (#401)Allow AllRecordData’s parsing impls to accept an unsized [u8] as the source octets. ( #310 by @xofyarg )
New
sign::records::FamilyName public. (#312 by @achow101)FromStr for Question. (#317)Bug fixes
?Sized bounds to Message::is_answer and ParsedRecord::to_record. (#318 by @xofyarg, #325 by @hunts)MessageBuilder::as_target. (#318 by @xofyarg)impl FreezeBuilder for StaticCompressor. (#318 by @xofyarg)sign::records::RecordsIter::skip_before now stops at the first name in zone even if the apex itself doesn’t appear. (#314 by @achow101)SliceLabelsIter::next that broke compression via StaticCompressor. (#321 by @hunts)Unstable features
unstable-stelline for the Stelline testing framework as a “normal” module of domain. (#315)zonetree from Dname to Name. (#308)Other changes
Release 2024-06-03.
New
sign::records::FamilyName public. (#312 by @achow101)FromStr for Question. (#317)Bug fixes
?Sized bounds to Message::is_answer and ParsedRecord::to_record.
(#318 by @xofyarg, #325 by @hunts)MessageBuilder::as_target. (#318 by @xofyarg)impl FreezeBuilder for StaticCompressor. (#318 by @xofyarg)sign::records::RecordsIter::skip_before now stops at the first name in
zone even if the apex itself doesn’t appear. (#314 by @achow101)SliceLabelsIter::next that broke compression
via StaticCompressor. (#321 by @hunts)Unstable features
unstable-stelline for the Stelline testing
framework as a “normal” module of domain. (#315)unstable-server-transport:
unstable-zonetree:
zonetree from Dname to Name.
(#308)Other changes
All types and functions referring to domain names have been changed from using the term “dname” to just “name.” For instance, Dname has become Name ,
Breaking changes
Dname has become Name, ToDname has become ToName, and ToDname::to_dname has become ToName::to_name. (#290)ToName and ToRelativeName traits have been changed to have a pair of methods a la try_to_name and to_name for octets builders with limited and unlimited buffers, reflecting the pattern used elsewhere. (#285)base::iana have been changed from enums to a newtypes around their underlying integer type and associated constants for the registered values. (This was really always the better way to structure this.) (#276, #298)Txt record data type now rejects empty record data as invalid. As a consequence TxtBuilder converts an empty builder into TXT record data consisting of one empty character string which requires TxtBuilder::finish to be able to return an error. (#267)Txt record data serialization has been redesigned. It now serialized as a sequence of character strings. It also deserializes from such a sequence. If supported by the format, it alternatively deserializes from a string that is broken up into 255 octet chunks if necessary. (#268)CharStr has been redesigned. The Display impl now uses a modified version of the representation format that doesn’t escape white space but also doesn’t enclose the string in quotes. Methods for explicitly formatting in quoted and unquoted presentation format are provided. (#270)validate::RrsigExt trait now accepts anything that impls AsRef<Record<..>> to allow the use of smart pointers. (#288 by @hunts)Transport type has been changed to be either Transport::UdpTcp for trying UDP and if that leads to a truncated answer try TCP and Transport::Tcp for only trying TCP. The stub resolver uses these accordingly now (#296)Dnskey::is_zsk to is_zone_key. (#292)Serial into a new type rdata::dnssec::Timestamp. ([#294])octseq to 0.5. (#257)New
AsRef<RelativeDname<[u8]>> and Borrow<RelativeDname<[u8]>> to RelativeDname<_>. (#251 by @torin-carey)name::Chain::fmt_with_dots to format an absolute chained name with a final dot. (#253)ParseAnyRecordData trait for record data types that can parse any type of record data. (#256)OctetsFrom and Debug to AllOptData and the specific options types that didn’t have them yet. (#257)ZoneRecordData, AllRecordData, Opt, and SvcbRdata. (#293)Name::reverse_from_addr that creates a domain name for the reverse lookup of an IP address. (#289)OptBuilder::clone_from to replace the OPT record with the content of another OPT record. (#299)Message::for_slice_ref that returns a Message<&[u8]>. (#300)Bug fixes
name::Chain<_, _>. (#253)rdata::Txt<..>. It now displays each embedded character string separately in quoted form. (#259)OptRcode::to_parts (it was shifted by 4 bits too many) and return all 12 bits for the Int variant in OptRcode::to_int. (#258)inplace zonefile parser that made it reject character string of length 255. (#284)Unstable features
net::client with experimental support for client message transport, i.e., sending of requests and receiving responses as well as caching of responses.unstable-client-transport feature. (#215,#275)net::server with experimental support for server transports, processing requests through a middleware chain and a service trait.unstable-server-transport feature. (#274)zonetree providing basic traits representing a collection of zones and their data. The zonetree::in_memory module provides an in-memory implementation. The zonetree::parsed module provides a way to classify RRsets before inserting them into a tree.unstable-zonetree feature. (#286)Fixed various issues preventing building in a no-std environment. ([#247] by [@dzamlo], [#248] by [@reitermarkus])
Released 2023-12-29.
Bug fixes
Other changes
resolv feature now depends on futures_util instead of futures,
trimming unused dependencies from the dependency tree. (#246 by
@WhyNotHugo)Removed the Sized bound for octets types used by the tsig module. ([#241] by [@torin-carey])
Released 2023-11-16.
New
Sized bound for octets types used by the tsig module.
(#241 by @torin-carey)AsRef<Message<[u8]>> for any message. (#242 by
@torin-carey)Bug fixes
Added missing ?Sized bounds to the octets type for parsing ZoneRecordData and UnknownRecordData. ([#237] by [@hunts])
Move the flatten_into method for converting domain names into a straight, flat form into a new FlattenInto trait. This trait is only implemented for t
Released 2023-09-18.
Breaking changes
flatten_into method for converting domain names into a
straight, flat form into a new FlattenInto trait. This trait is only
implemented for types that actually are or contain domain names. (#216)#[must_use]. ([#228] by @WhyNotHugo)FoundSrvs::merge to use a non-mut other.
(#232)New
Added a new method FoundSrvs::into_srvs that converts the value into an iterator over the found SRV records without resolving them further. ([#174], [
Released 2023-09-18
New
FoundSrvs::into_srvs that converts the value into an
iterator over the found SRV records without resolving them further.
(#174, #214 by @WhyNotHugo); this was added in 0.7.2 but missing
in 0.8.0)Borrow<Dname<[u8]>> and AsRef<Dname<[u8]>> for
Dname<_>. (#219 by [@iximeow}], #225)Dname::fmt_with_dot that can be used when wanting to display a
domain name with a dot at the end. (#210)Bug Fixes
FoundSrvs::into_stream to make it usable again.
(#174, [#214 by @WhyNotHugo]; this was fixed in 0.7.2 but missing in
0.8.0)util::base64::SymbolConverter to also include the final group in
the output if there is padding. (#212)The minimal required Rust version is now 1.65. ([#160])
Released 2023-05-12
Breaking Changes
random feature has been dropped in favour of using rand.
(#204)Dname that require type changes. The split methods now take references
and don’t change self anymore. (#160)Parse, Compose, and Scan traits have been demoted to mere
extension traits for foreign types (primarily the built-in integers, so that
you can do things like u16::parse). All other types now simply have
methods matching the patterns. Where generics are necessary, dedicated
traits have been added. E.g., there now are ParseRecordData and
ComposeRecordData traits that are implemented by all record data types.
(#160)Deref and DerefMut impls have been removed for most types that
had them to follow guidance that they are exclusively for use by pointer
types – which none of them are. len and is_empty methods have been
added where appropriate, additional methods may be added. (#205)tsig module now expect the
current time as an argument to allow use of the module in a no-std
environment. (#152)from_slice to
create a reference to a value wrapping an (unsized) octets slice and
method for_slice that converts a &self into such a reference. Where
the latter already existed but returned a value wrapping a &[u8] (e.g.,
Dname<_> and Message<_>, the return type has changed accordingly.
(#168)CharStr::from_bytes. Use CharStr::from_octets instead. (#168)Message::from_octets now returns a new error type ShortMessage. (#168)Deref impls for Dname<_>, RelativeDname<_>. (#168)opt::KeyTag::new to opt::KeyTag::from_octets. (#168)rdata::Txt::try_from_slice to build_from_slice. (#168)new method of the following record data types now check whether
the wire format representation of the record data is too long and thus
returns a result: Tsig<_, _>, Dnskey<_>, Rrsig<_, _>, Ds<_>,
Cdnskey<_>, Cds<_>. (#169)new function for rdata::Null<_> has been replaced with a
from_octets and from_slice pair. The Deref impl was removed. (#169)rdata::svcb module has been refactored to work in the same way as
other type-length-value constructs. The names of types, methods, and
functions have changed both to match the usual nomenclature as well as
to match the terms used in the SVCB draft. (#176)base::iana::SvcbParamKey type has been renamed to SvcParamKey
to match the terms used in the SVCB draft. (#176)TcpKeepalive option has been changed to use an Option<u16> as
its data and allow for an empty option in accordance with the RFC.
(#185)rdata that contain record data types to use a
name derived from their content rather than their RFC number – with the
exception of rdata::rfc1035. (#189)base::opt that contain option data types to
use short-hand names rather than their RFC number. (#190)base::record::Ttl that wraps the
raw u32 and improves conversions. (#202 by @CrabNejonas)UnknownOptData::from_octets to new and return a result. (#193)ExtendedError’s text to Str<Octs> and change the
return type of set_text to (). (#193)TcpKeepalive’s content to a newtype IdleTimeout to
make it easier to convert to and from durations. (#193)PaddingMode.
Instead, the methods on OptBuilder should be used to add padding. (#193)New
Display impls are now available for all EDNS0 options. (#157)FromStr implementation and related functions to
RelativeDname. (#177)Debug impl to base::message::Message so it can be unwrapped
etc. (#199)make_canonical on Dname and RelativeDname that convert
the name into its canonical, i.e., lowercase form. Similarly, new
methods ToDname::to_canonical_dname and
ToRelativeDname::to_canonical_relative_dname that produce new
canonical names. (#200)MAX_LEN constant to various types that wrap length-limited
octets sequences. (#201 by @CrabNejonas)Added a new method FoundSrvs::into_srvs that converts the value into an iterator over the found SRV records without resolving them further. ([#174])
Added a method flatten_into to record data types that converts a value with a parsed (and thus possibly compressed) domain name into a one with a norm
However, because this changes the definition of the Resolver trait, this is a breaking change, anyway. ([#125])
Released 2022-09-15.
Breaking Changes
The minimum supported Rust version is now 1.56.1. (#128)
The OctetsBuilder trait does not require AsRef<[u8]> and
AsMut<[u8]> any more. These have been added as explicit trait bounds
where needed. In return, Cow<[u8]> can now be used as an octets
builder where AsMut<[u8]> is not needed. (#130).
The Display implementation for UncertainDname now ends an absolute
name with a dot to match the behaviour of the FromStr implementation.
(#116)
The salt and hash parameters of Nsec3 and Nsec3Param have been
wrapped in newtypes. (#116)
Functions depending on the rand crate have been moved behind a new
random feature as rand is not available on all systems, even with
std support. The feature is, however, part of the default features.
In particular, this means that Header::set_random_id,
MessageBuilder::request_axfr, and opt::rfc7830::PaddingMode::Random
are only available if the feature is enabled. (#117 by @Jezza)
resolv::Resolver::Query now has to be Send. This will allow the
resolver to be used in async functions spawned onto a Tokio runtime.
The stub resolver’s query struct is already Send, so no actual changes are necessary. However, because this changes the definition of the Resolver trait, this is a breaking change, anyway. (#125)
New
base::name::OwnedLabel now implements Clone and Copy as well as
Display and Debug. (#112)base::record::Record::into_owner_and_name allows decomposing a record
into its two parts that aren’t Copy. (#114)OctetsBuilder trait is now also implemented for mutable references
of types that are octet builders and turn into themselves when frozen
(i.e., OctetsBuilder::Octets = Self). (#121)heapless::Vec<u8, N>] as an octets sequence via the new
heapless feature. (#122 by @bugadani)Eq
(#135)Bug Fixes
validate:
CLASS3 becomes
Class::Ch instead of Class::Int(3). (#127 by @vavrusa)resolv: Fixed generation of the domain name to be used for reverse
IPv6 lookups. (#131)Other Changes
doc_cfg feature flag documentation for docs.rs.
(#104 by Martin Fischer)This release is a maintenance release only in order to show the complete documentation on docs.rs.
Released 2021-03-31.
This release is a maintenance release only in order to show the complete documentation on docs.rs.
Other Changes
The crate domain-resolv has been merged into this crate as the domain::resolv crate. It requires the resolv feature to be enabled. The sync feature fr
Released 2021-03-22.
Breaking
domain-resolv has been merged into this crate as the
domain::resolv crate. It requires the resolv feature to be enabled.
The sync feature from domain-resolv has been renamed to
resolv-sync. (#74)domain::base::octets::IntoOctets has been merged into
domain::base::octets::OctetsBuilder. It’s method into_octets is now
available as freeze on OctetsBuilder. (#75)New
domain::base::octets::OctetsFrom and OctetsInto to
convert types that are generic over octets sequences between different
octets sequences. (#77)Bug Fixes
Other Changes
validate: enable 1024 bit RSASHA512 as supported algorithm. ([#67], by [@vavrusa])
Additional methods to manipulate an OPT record’s header in OptBuilder. ([#61], by [@vavrusa])
This release contains a major restructuring and refactoring of the entire library. The previous set of crates has been merged into a single crate yet
This release contains a major restructuring and refactoring of the entire library. The previous set of crates has been merged into a single crate yet again with various modules being optional and available via features.
The following notes list the changes relative to the domain-core crate.
Reorganization
domain_core::bits have been moved to domain::base.domain_core::{iana, utils} have been moved to
domain::base::{iana, utils} respectively."master" is enabled.Breaking Changes
base::octets module.rdata::rfc4035::Nsec is now generic over the type of the next name.
This is necessary because [RFC 6762] allows compression for its next name.
(#20, reported by Tom Pusateri)fmt::Display and,
if the "std" feature is enabled, std::error::Error. (#33)New
base::message::Message::opt returns a message’s OPT record if present.
(#6, thanks to Marek Vavruša!)base::name::Dname::from_bytes_unchecked in order to create
names from well-known sequences. (#31)compose::Compose::compose_canonical for composing the canonical form
for DNSSEC signing. It has a default implementation just doing compose
and has been implemented for all relevant types. [(#XX)]base::cmp::CanonicalOrd for the ordering of record data and records for
DNSSEC signing. Implemented for all relevant types. Also improved
implementations of PartialEq and PartialOrd for types generic over
domain name types to be generic over the other values domain name type.serial::Serial to be created from datetimes, provide a
constructor for now and add sub.Bug fixes
rdata::rfc4043. (#42 via #38 by @vavrusa)base::opt. (#42 via #38 by @vavrusa)Message::canonical_name. (#42 via #38 by
@vavrusa)Dependencies
std, bytes, and chrono crates are now optional and can be enabled
via features.sign module provides DNSSEC signing. It is available if the
"sign" feature is enabled.tsig module provides TSIG signing and validation. It is only
available if the "tsig" feature is enabled.validate module provides functionality necessary for DNSSEC
validation. It is only available if the "validate" feature is enabled.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →