hickory-proto
hickory-proto is a safe and secure low-level DNS library. This is the foundational DNS protocol library used by the other higher-level Hickory DNS crates.
0.26.1
72M downloads/mo
#983 most downloaded on crates.io
hickory-dns/hickory-dns
What this package is like to depend on
Last release 3 months ago
01 May 2026
Ships unpredictably
gaps range from 2 weeks to 9 months
Some releases are documented
notes for 5 of 11 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
21 releases · first in 2023
6 releases in the last 12 months
see the full history below
Release timeline
21 releases · Sep 2023 to May 2026Releases
latest 21-
0.26.101 May 2026Release notes
Open source →This point release for the 0.26 release series brings in several bug fixes, and no user-facing changes. Two security reports are addressed:
RUSTSEC-2026-0120 and RUSTSEC-2026-0119.What's Changed
- net: avoid infinite loop in NSEC3 processing by @djc in #3597
- Limit work expended on name compression (backport) by @divergentdave in #3615
Full Changelog: v0.26.0...v0.26.1
-
0.26.016 Apr 2026Release notes
Open source →13 months after the release of 0.25.0, we finally have a bigger feature release of Hickory DNS, the suite of DNS libraries and authoritative/recursive name servers written in pure Rust. A lot of work has gone into this release, so we wanted to take a moment to release this before we continue work on deploying the Hickory DNS recursive resolver at Let's Encrypt (and did you see that Hickory is being used in some of Google's Pixel devices?). Because of the ongoing work, we expect that 0.27.0 might happen quite a bit sooner than in 13 months from now.
These release notes describe a number of high-level improvements as well as API changes that are likely to break a larger fraction of our downstream users. Feedback (both on these notes and the release itself) is always welcome in our issue tracker or via our Discord server.
Most of the following notes are broken up by specific components: the server binary and our library crates. However, for this release we've made several changes to the structure of our crates itself:
- Network protocol support has moved out of the hickory-proto crate, into a new hickory-net crate (#3394); this allows the hickory-proto crate to cleanly focus on message encoding and decoding.
- The hickory-client crate has been subsumed into hickory-net, in the
clientmodule (#3366). No future releases of the hickory-client crate are expected. - The hickory-recursor crate has been merged into hickory-resolver (#3370), guarded by a
recursorfeature which must be enabled explicitly. The recursor implementation was already tightly coupled to the resolver internals, so keeping it separate didn't really make sense.
Additionally, substantial cross-crate changes have been made to improve our error handling:
- More error handling simplification
- proto: split NetError out of ProtoError
- proto: clean up ProtoError
- Be more strict about decode errors
- resolver: remove unnecessary ResolveError wrapper
- Avoid large errors
hickory-dns (the server binary)
- We've added a number of ways to optimize performance via low-level networking configuration:
- We further extended and reworked our metrics:
- Miscellaneous changes:
hickory-server (the library API)
- The
Authoritytrait was renamed toZoneHandlerand simplified to better reflect its usage: - Miscellaneous changes:
hickory-resolver
We made many improvements to improve correctness and efficiency of both the recursive resolver and the "stub" resolver. In addition, we want to highlight the following changes:
- We substantially changed the high-level resolver and configuration API:
- Refactor name server configuration
- Enable validation when trust anchors are configured
- Introduce ServerGroup type to replace NameServerGroupConfig
- Configure by name server
- Tweak high-level API
- Hide validate option if DNSSEC support is not available
- Default trust_negative_responses to true
- Use a single list of servers
- Make ResolverConfig fields public
- Simplify ConnectionProvider interface
- Abstract NS conn/conn config policy
- Make connection pool track servers
- We improved handling of the system default resolution settings:
- We improved the efficiency of the resolver internals:
- Miscellaneous changes:
hickory-net
We made substantial improvements to DNSSEC validation and our handling of potentially spoofing messages.
- Miscellaneous changes:
hickory-proto
- We have made the fields for several core types directly public:
- We now enable EDNS by default in outgoing messages, increasing the max payload length:
- We removed SIG(0) authentication in favor of the more popular TSIG alternative:
- Miscellaneous changes:
Details
For more details, review the detailed release notes for our pre-releases:
and these final PRs merged after beta 4:
- proto: reject zero-length data for non-update messages by @djc in #3577
- server: deduplicate response encoding by @djc in #3555
- Disable dig retries when testing cache behavior by @divergentdave in #3590
- Conformance: print communication errors from dig by @divergentdave in #3591
Thanks
Finally, we want to thank everyone who contributed to this release: @bryanlarsen, @billf, @hargut, @ibigbug, @xi0, @steffengy, @james7132, @Thomasdezeeuw, @Kriskras99, @mispp, @conradludgate, @nabijaczleweli, @musicinmybrain, @msrd0, @jmwample, @LAGonauta, @tisonkun, @provokateurin, @lemon-sh, @thomas-zahner, @jpds, @lpraneis, @zachsmith1, @jackboykin, @ZnqbuZ, @Jeidnx, @kn0sys, @matheus23, @benesch, @roblabla and of course our maintainers @cpu, @divergentdave, @marcus0x62 and @djc.
-
0.26.0-beta.414 Apr 2026 pre-releaseRelease notes
Open source →What's Changed
- bin: add SO_REUSEPORT support with configurable UDP socket count by @cpu in #3549
- resolver: move helper function below caller by @djc in #3564
- proto: make Record fields public by @djc in #3557
- proto: simplify text parsing by @djc in #3546
- resolver: reduce log verbosity by @djc in #3572
- Add systemd readiness+watchdog support by @jpds in #3576
- More TCP tuning options, splitting up the confusing CHANNEL_BUFFER_SIZE constant by @cpu in #3578
- prometheus: enable gzip compression on metrics endpoint by @jpds in #3579
- net: refactor in preparation for storing proofs per record set by @djc in #3574
- Upgrade rustls-platform-verifier to 0.7 by @djc in #3581
- chore: Bump verison to beta.4 and ensure pinned verison deps by @matheus23 in #3583
- bin: add support for jemalloc + profiling by @djc in #3585
-
0.26.0-beta.302 Apr 2026 pre-release -
0.26.0-beta.227 Mar 2026 pre-releaseRelease notes
Open source →What's Changed
- proto: default to enabling EDNS, increase max payload length by @djc in #3498
- add a method that returns number of entries in blocklist zonehandler by @mispp in #3497
- Fix docs.rs doc build by @roblabla in #3500
- net: stop ignoring response decoding failures for UDP requests by @djc in #3499
- bin: use SO_REUSEADDR for tcp sockets by @cpu in #3509
- Be more strict about decode errors by @djc in #3505
- Make EDNS payload length configurable by @divergentdave in #3504
- bin: allow configuring UDP socket buffer sizes by @cpu in #3507
- build(deps): bump rusqlite from 0.38.0 to 0.39.0 by @dependabot[bot] in #3513
- Improve error for recursor zones with invalid roots configuration by @cpu in #3506
- improve access control configuration by @cpu in #3508
- reject QR=0 responses as invalid by @cpu in #3510
- resolver: fix err propagation from NS hostname resolution by @cpu in #3517
- proto: fix access_control IPv6 deny-only bypass by @cpu in #3521
- Fix units of cache hit duration histogram by @divergentdave in #3523
- fix(resolver): try remaining servers on timeout and penalize failed server SRTT by @jpds in #3520
- resolver: fix sort comparator panic with QueryStatistics ordering by @jpds in #3525
- resolver: fix cascading panic when SharedLookup inner future panics by @jpds in #3524
- resolver: shuffle name server list at pool startup by @jpds in #3530
- resolver: record SRTT for servers cancelled during parallel races by @jpds in #3531
- resolver: enforce end-to-end timeout budget in NameServerPool by @jpds in #3527
- resolver: add cache metrics by @benesch in #3522
- net: don't error on UDP responses with the wrong ID by @djc in #3526
- Simplify low-level message API by @djc in #3511
- net: use async for h3 Cloudflare test by @djc in #3539
- recursor: add criterion benchmarks for cold and warm resolution by @jpds in #3512
- net/xfer: fixup DnsExchange rustdoc by @cpu in #3540
- recursor micro-optimizations by @cpu in #3541
- proto: optimize Name hashing and label comparison by @cpu in #3544
- Simplify RData API by @msrd0 in #3542
-
0.26.0-beta.112 Mar 2026 pre-releaseRelease notes
Open source →What's Changed
- Fix AdGuard IP address in test by @divergentdave in #3028
- Add to MessageResponse documentation by @divergentdave in #3031
- resolver: clean up Windows-only warnings by @djc in #3032
- resolver: use a single list of servers by @djc in #3027
- resolver: simplify ConnectionProvider interface by @djc in #3033
- support host format in blocklist store by @mispp in #3035
- Replace DnsLru with a response cache by @divergentdave in #3043
- Allow disabling H3 grease, as needed for cloudflare by @steffengy in #3040
- resolver: introduce ServerGroup type to replace NameServerGroupConfig by @djc in #3029
preserve_rdatafuzzer improvements by @divergentdave in #3047- util: fix some issues with recurse by @djc in #3046
- client: remove orphaned constants by @djc in #3050
- server: blocklist tweaks by @djc in #3044
- resolver: response cache tweaks by @djc in #3051
- resolver: configure by name server by @djc in #3052
- server: remove deprecated ZoneType enum variants by @cpu in #3061
- server/authority: simplify Catalog::update req verify by @cpu in #3062
- fix some clippy::uninlined_format_args findings by @cpu in #3063
- resolver: tweak high-level API by @djc in #3059
- ci: change log level to TRACE by @djc in #3065
- server/authority: remove LookupError::is_refused() by @cpu in #3066
- hickory-dns bin & server crate comment tidying by @cpu in #3071
- hickory-dns: implement RFC 5001 NSID for auth. server by @cpu in #3070
- MSRV related follow-ups from NSID support by @cpu in #3080
- server: untangle authorities by @djc in #3074
- server: clean up Request construction by @djc in #3073
- server: clean up InMemoryAuthority::lookup() a bit by @djc in #3078
- #3060 preparation work by @cpu in #3081
- DNSSEC validation: find zone cut with NS queries by @divergentdave in #3075
- server: extract protocol-specific code by @djc in #3079
- Authenticated AXFR policy, TSIG response signing by @cpu in #3060
- resolver: make MAX_TTL public by @Kriskras99 in #3088
- proto: do not attempt recursive DS lookup in verify_default_rrset by @marcus0x62 in #3092
- resolver: hide validate option if DNSSEC support is not available by @djc in #3091
- resolver: default trust_negative_responses to true by @djc in #3085
- server: use concrete type for authority lookups by @djc in #3086
- resolver: trust negative responses from system resolvers by default by @djc in #3095
- fuzz: ignore NotAllRecordsWritten errors by @djc in #3099
- util: accept zone only where needed by @djc in #3098
- Update socket2 to v0.6 by @Thomasdezeeuw in #3100
- Customize Duration serde format in ResolverOpts by @divergentdave in #3101
- Add metrics for zone lookups, DNS classes and record types by @hargut in #3030
- Add negative tests for NSEC validation by @divergentdave in #3103
- Use retain() instead of calling remove() in a loop by @divergentdave in #3105
- Change field and method names for Authority section of messages by @divergentdave in #3106
- Add accessor to AuthLookup by @divergentdave in #3108
- resolver: make ResolverConfig fields public by @djc in #3112
- Bump h2 dependency by @jmwample in #3115
- Fix various feature-dependent unused code warnings by @divergentdave in #3104
- Plumb recursive response message by @divergentdave in #3109
- Remove 'EDNS section' from documentation by @divergentdave in #3114
- Fix client integration tests by @divergentdave in #3118
- proto: improve DNSSEC interfaces by @djc in #3113
- Rename build info metric, revise metric descriptions by @divergentdave in #3122
- Fix documentation of DNS_TEST_SUBJECT by @divergentdave in #3124
- Recursor: add regression test for NS queries by @divergentdave in #3127
- Add test of DNSSEC validation with missing SOA RR by @divergentdave in #3129
- resolver: improve logging for name server connection failure by @djc in #3133
- Add recursor metrics by @divergentdave in #3123
- Remove deprecated API by @djc in #3132
- fix(test): use __dnssec feature in resolver test by @billf in #3126
- resolver: use cloudflare.com instead of example.com for DNSSEC test by @djc in #3138
- Log records in flaky tests by @divergentdave in #3135
- Ignore RRSIGs that claim NSEC/NSEC3 wildcards by @divergentdave in #3130
- Improve DNSSEC APIs by @djc in #3131
- FutureExt::now_or_never() -> JoinSet::try_join_next() by @cpu in #3136
- Add extended-dns-error.com tests with no DNSSEC validation by @divergentdave in #3144
- Simplify and replace future combinators by @divergentdave in #3134
- Update dependencies by @djc in #3145
- Add wildcard no data tests by @divergentdave in #3147
- ProtoErrorKind cleanup by @divergentdave in #3148
- util: tidy logging, add trace level support, fix library logging by @cpu in #3152
- Upgrade rustls-platform-verifier to 0.6 by @djc in #3150
- Move error response codes to other error variants by @divergentdave in #3149
- Fix validation of negative responses from insecure zones by @divergentdave in #3141
- Store validated responses in a separate cache by @divergentdave in #3155
- Result handling cleanup by @divergentdave in #3161
- Add recursor conformance tests with CNAMEs by @divergentdave in #3154
- server: change TsigKeyConfig::key_file type to be PathBuf by @djc in #3162
- Add cpu as a code owner by @djc in #3163
- Recursor: better handling of cached referral responses by @divergentdave in #3156
- conformance: update dns-test README for explore.rs by @cpu in #3168
- dns-test: generalize hickory dnssec feature by @cpu in #3167
- Blocklist client logging by @marcus0x62 in #3164
- Add integration tests based on RFC 4592 by @divergentdave in #3170
- Additional tests of NSEC and wildcard validation by @divergentdave in #3172
- dns-test: add support for powerdns recursor/forwarder/authoritative servers by @cpu in #3166
- Blocklist metrics by @marcus0x62 in #3176
- fix nightly unused_parens warns, tidy retry_dns_handle.rs by @cpu in #3181
- dns-test: add DoT support to authoritative DNS servers by @cpu in #3177
- Remove unused files by @divergentdave in #3183
- Fix CNAME chasing by @divergentdave in #3179
RetryDnsHandletweaks by @djc in #3185- resolver: remove needless lifetime by @kn0sys in #3186
- Add separate Authority method for AXFR by @divergentdave in #3178
- Simplify objects in build_forwarded_response() by @divergentdave in #3187
- add server SSLKEYLOGFILE support, extend dns-test TShark features by @cpu in #3184
- dns-test: use CertifiedIssuer to simplify Pki by @djc in #3197
- Send minimal responses to queries with QTYPE=ANY by @divergentdave in #3182
- Tidy up server crate SSL_KEYLOG_FILE configuration by @cpu in #3199
- dns-test: TShark tweaks by @djc in #3201
- Make DnsHandle require the std feature by @divergentdave in #3200
- Remove unnecessary #[cfg] attributes by @divergentdave in #3205
- Fix NSEC validation by @divergentdave in #3175
- NSEC verification tweaks by @djc in #3208
- udp client: compare req and res IP in canonical before rejecting the response by @ibigbug in #3207
- Add associated type to DnsHandle for runtime by @divergentdave in #3206
- Improved response filtering by @marcus0x62 in #3217
- Reduce number of workspaces by @djc in #3220
- Intermediate access to the current time via traits by @divergentdave in #3158
- Clean up conditional compilation by @divergentdave in #3224
- Strict check for SOA RR at zone apex by @divergentdave in #3223
- Pass NotAuth error through catalog by @divergentdave in #3222
- Small
ResolverOptstidying by @cpu in #3225 - Change response code for AXFR in SqliteAuthority by @divergentdave in #3235
- Fix commented-out tests by @divergentdave in #3236
- server: simplify time handling by @djc in #3234
- conformance: drop conformance tests against ring from CI by @djc in #3237
- Parallel conformance by @djc in #3238
- Use stable rust in cargo-workspaces fallback build by @divergentdave in
Note truncated.
-
0.26.0-alpha.103 Jun 2025 pre-releaseRelease notes
Open source →What's Changed
- Inline all format argument, split out NoRecords type by @djc in #2966
- proto & server: update message signature repr by @cpu in #2964
- Distinguish different reserved certificate types by @divergentdave in #2971
- Fix race condition in test by @divergentdave in #2973
- Clean up after removal of SOA referrals by @divergentdave in #2972
- resolver: enable validation when trust anchors are configured by @djc in #2968
- Change RecursorBuilder to take a list of IPs by @divergentdave in #2976
- Further TSIG related cleanups by @cpu in #2975
- Clean up CAA enums by @divergentdave in #2974
- proj: remove .csr file from root, gen script by @cpu in #2978
- server: implement TSIG authentication for SqliteAuthority updates by @cpu in #2977
- resolver: remove unnecessary ResolveError wrapper by @djc in #2970
- Make SOA record optional in AuthorityData by @divergentdave in #2981
- Don't request root DS RRset in find_ds_records() by @divergentdave in #2980
- server: clean up request handling, hold on to encoded request by @djc in #2982
- Separate encoder's handling of case and compression by @divergentdave in #2979
- Make one more NS query to better align with RFC 9156 by @divergentdave in #2983
- Remove post-hoc recursion depth check by @divergentdave in #2998
- NSEC3 Max Iterations Limits by @marcus0x62 in #2899
- Remove unused fields: minimum algorithm/key length by @divergentdave in #2999
- Avoid large errors by @djc in #3000
- Clean up some
large_enum_variantswarnings by @djc in #3001 - Update recursion limit defaults in other places by @divergentdave in #3002
- Update example in resolver README file by @divergentdave in #3006
- Make recursor generic over runtime provider by @divergentdave in #3003
- Simplify signing by @djc in #2986
- resolver: discard some unused functions by @djc in #3015
- Remove unnecessary clippy suppressions by @djc in #3012
- Clean up more lint suppressions by @djc in #3017
- proto: use consts for length calculations by @djc in #3018
- proto: DNSSEC verification tweaks by @djc in #3014
- Require explicit message metadata by @djc in #3016
- resolver: refactor name server configuration by @djc in #3019
- resolver: clean up name server pool implementation by @djc in #3020
- proto: use concrete type in DnsHandle::send() by @djc in #3022
-
0.25.203 May 2025Release notes
Open source →What's Changed
- Rewrite Dockerfile with cargo-chef by @divergentdave in #2874
- Use ECDSA keys in most conformance tests by @divergentdave in #2879
- proto: no need to enable critical-section/std by @djc in #2878
- Use GitHub Actions cache backend for Docker by @divergentdave in #2876
- Fuzzer for preservation of RDATA by @divergentdave in #2872
- Drop unused pin-utils crate by @paolobarbolini in #2880
- proto: set FQDN to true in zone file parser by @djc in #2887
- Refactor in-memory authority DNSSEC handling by @djc in #2885
- Add failing test for DNSSEC validation w/ 4 labels by @divergentdave in #2890
- Add conformance test for glue reuse issue by @divergentdave in #2891
- Recursor: refactor handling of glue records in
ns_pool_for_zone()by @divergentdave in #2888 - server: simplify module structure by @djc in #2893
- proto: drop pointers from rolled back records by @djc in #2896
- Add test for handling of two OPT records by @divergentdave in #2897
- Add metrics infrastructure and prometheus endpoint for hickory-dns by @hargut in #2886
- feat(resolver): add a
ResolverBuilder::with_options()method by @cratelyn in #2877 - Update specification excerpts by @divergentdave in #2901
- style: remove needless return to make clippy happy by @Aden-Q in #2907
- Run Clippy on fuzz workspace by @divergentdave in #2908
- Update dependencies by @djc in #2912
- Store CAA value as raw bytes by @divergentdave in #2898
- Add test for RFC 5155 section 7.2.8 by @divergentdave in #2906
- docs: fix errors in line and document comments by @Aden-Q in #2909
- resolver: fix deserialized ResolverOpts defaults by @djc in #2913
- server: integration tests enable ecdsa dnssec tests by @hargut in #2916
- Streaming parsing of
tsharkoutput by @divergentdave in #2868 - conformance: tweak Tshark constructor API by @djc in #2915
- bin: clarify async setup by @djc in #2918
- Use wait_until() in a second conformance test by @divergentdave in #2920
- Delete print statements dumping logs in tests by @divergentdave in #2922
- Fix QNAME minimization behavior by @divergentdave in #2919
- Check offset size when compressing names by @divergentdave in #2923
- Improve preserve_rdata fuzzer, store reserved CSYNC flags by @divergentdave in #2924
- Allow transfer for bind9 compatibility test by @msrd0 in #2927
- CAA: Store tag field as-is by @divergentdave in #2935
- Use Place in
TBS::new()by @divergentdave in #2942 - Remove extra query depth increments in verifier by @divergentdave in #2939
- Filter invalid DNS server addresses on windows OS by @watertreestar in #2928
- Only fetch signer's DS RRset when validating keys by @divergentdave in #2936
- hickory-resolver: Allow compiling with quic support but without ring by @msrd0 in #2946
- Remove special handling for DS nonexistence by @divergentdave in #2937
- Add test for no data response without SOA by @divergentdave in #2950
- Handle byte-order mark when reading hosts file by @mat-1 in #2948
- Add more server metrics and enhance existing metrics by @hargut in #2900
- Use separate database files in SQLite tests by @divergentdave in #2955
- Send error responses in two more cases by @divergentdave in #2953
- resolver: use errors to improve connection stats by @djc in #2958
- tests: tidy legacy config field comments by @cpu in #2960
- Add separate Prometheus HTTP server by @divergentdave in #2954
-
0.25.118 Mar 2025Release notes
Open source →This is a small patch release to address errors that prevented publication of version 0.25.0 of some crates.
What's Changed
Full Changelog: v0.25.0...v0.25.1
-
0.25.018 Mar 2025Release notes
Open source →0.25.0 represents a large release for the Hickory DNS project. Over 14 months since 0.24.0, we've added two new maintainers, divergentdave and marcus0x62, and have addressed many limitations. A team from Ferrous Systems shored up our support for DNSSEC, and we addressed a number of findings from our first security audit.
Breaking changes
This is not an exhaustive list of changes, but here are some of the most impactful breaking changes in this release:
- Configuration for the Hickory DNS server crate has been reworked substantially to be more robust and secure. Most of the code related to the server binary has been moved out of the hickory-server library and into the hickory-dns binary crate.
- Support for TLS using native-tls or OpenSSL has been removed. We now only provide first-party support for rustls (0.23, for DNS over TLS, HTTP/2, QUIC and HTTP/3). We support ring or aws-lc-rs for cryptographic operations both for DNSSEC and TLS. The
dns-over-rustls,dns-over-native-tls,dns-over-openssl,dns-over-https-rustls,dns-over-https,dns-over-quicanddns-over-h3features have been removed in favor of a set of{tls,https,quic,h3}-{aws-lc-rs,ring}features across our library crates. - The synchronous API in the resolver and client crates, which previously provided a thin partial wrapper over the asynchronous API, has been removed. Downstream users will have to migrate to the asynchronous API.
- Support for the async-std runtime has been removed following the deprecation of the async-std crate by upstream (see their README). The async-std-resolver crate will no longer be updated.
- The DNSSEC API was reworked to extend coverage to the recursor, add support for NSEC3, and make the API more ergonomic and harder to misuse.
- Moved the
RuntimeProviderAPI into the proto crate and use it consistently across the project. Namevalues are now rooted by default in many places, and more consistently maintain theirfqdnstatus.- Error types are now exposed directly in the crate roots.
- Top-level TLS configuration in the resolver crate has moved to the
ResolverOptstype. SpecificNameServerConfigs should implicitly set up the ALPN protocol appropriate for the DNS protocol. - The
ResolverOptionsfieldsauthentic_dataandshuffle_dns_serverswere removed. The former field didn't do anything; and should be covered by new DNSSEC API.shuffle_dns_serversfunctionality has been subsumed into theserver_ordering_strategyfield. - The use of rustls-native-certs via the
native-certsfeature was replaced with rustls-platform-verifier. - The
tokio-runtimefeature was renamed totokio. - The
serde-configfeature was renamed toserde. - Serializations (and what the new release can deserialize) has changed; data serialized by 0.24 may not deserialize correctly on 0.25, and vice versa.
Please don't hesitate to file an issue or ask on our Discord server if you have issues upgrading.
Detailed changes since alpha.5
- update logo to better for Github by @bluejekyll in #2063
- add blog post to release notes for Hickory by @bluejekyll in #2064
- update h3 and h3-quinn by @zh-jq in #2077
- update to use ring 0.17 by @zh-jq in #2076
- Bump rustix from 0.37.23 to 0.37.26 by @dependabot in #2078
- Marcbrevoort cyberhive patch 1 by @bluejekyll in #2088
- Fix initial vec capacity in
NameServerConfigGroup::from_ips_clearby @silverlyra in #2092 - Add getters for resolver config and options by @hoxxep in #2093
- Remove generic Error from DnsHandle by @bluejekyll in #2094
- update test certs for 2023 by @bluejekyll in #2100
- Support getting and setting the EDNS Z flags by @mattias-p in #2111
- get(0) to first() and zerocopy package updates to fix clippy and cargo audit errors. by @marcus0x62 in #2121
- Increase source port entropy in UDP client by @marcus0x62 in #2116
- Validate response query section by @marcus0x62 in #2118
- Gate tests on required features by @alexanderkjall in #2114
- Recursor: make nameserver and record cache sizes configurable by @marcus0x62 in #2117
- when comparing IP addresses for UDP, only check IP and Port by @bluejekyll in #2124
- Bailiwick checking for the recursor by @marcus0x62 in #2119
- Fixup lookup docs by @bluejekyll in #2123
- Bump actions/cache from 3 to 4 by @dependabot in #2129
- Update dependencies by @djc in #2112
- Fix a typo in crate description by @wiktor-k in #2132
- Only DNSKEY zone keys are allowed to match DS RR by @justahero in #2131
- Use cargo environment variables for path to executable. by @sjbronner in #2130
- Add option to specify a restricted set of networks capable of accessing the Hickory DNS server by @bluejekyll in #2126
- Bump baptiste0928/cargo-install from 2 to 3 by @dependabot in #2135
- Bump codecov/codecov-action from 3 to 4 by @dependabot in #2136
- Cleanliness for 1.76 by @bluejekyll in #2143
- update version for http/h2/h3 by @zh-jq in #2138
- add getter/setter methods to ClientSubnet by @leshow in #2146
- fix(proto): fix internal representation of OPT by @esensar in #2151
- Better DNSSEC proofs by @bluejekyll in #2084
- feat: add setter methods for Message struct to improve configurability by @situ2001 in #2147
- Forward hickory-dns's root cert features to hickory-resolver by @hch12907 in #2153
- Fix formatting issue in crates/proto/src/op/message.rs by @marcus0x62 in #2165
- Update mio to 0.8.11 to fix RUSTSEC-2024-0019 by @marcus0x62 in #2166
- Handle shutdown sockets by @dlon in #2171
- Bump extractions/setup-just from 1 to 2 by @dependabot in #2164
- Bump http from 1.0.0 to 1.1.0 by @dependabot in #2170
- Clippy 1.77 + dependency updates by @djc in #2174
- Update semver-compatible dependencies by @djc in #2177
- Make
hickory_proto::quic::QuicClientStreamClonable by @0xffffharry in #2176 - error: wrap io::Error in Arc for clone by @cpu in #2181
- resolver: err for dns-over-rustls w/o roots by @cpu in #2179
- ignore portions of the README in Oranda site generation by @bluejekyll in #2180
- SVCB/HTTPS RFC updates, ECH config tweaks by @cpu in #2183
- Merge 0.24.1 by @bluejekyll in #2185
- fix(test): update ip of
example.comby @situ2001 in #2187 - update rustls 0.21.11 to fix audit by @bluejekyll in #2189
- Bump parking_lot from 0.12.1 to 0.12.2 by @dependabot in #2202
- doc: fix misc typos in md files by @divagant-martian in #2198
- address new clippy lint assigning-clones by @divagant-martian in #2205
- Make
hickory_proto::h3::H3ClientStreamClonable by @0xffffharry in #2182 - recursor: respect DO bit in incoming queries by @japaric in #2196
- recursor: tweaks for security awareness by @djc in #2208
- Retry tcp on udp io errors by @bluejekyll in #2215
- recursor: send DS queries to the parent zone by @japaric in #2203
- Adds deref call in assertion for hickory-client README example by @akappel in #2173
- cargo: Enable LTO on release build by @jpds in #2141
- add RFC2931 SIG(0) as supported by @bluejekyll in #2216
- Remove broken mtls code to fix CI by @djc in #2218
- ci: pin nightly version by @japaric in #2224
- import DNSSEC conformance test suite repository by @japaric in #2222
- Add just recipes to clean leftover containers and networks by @pvdrz in #2232
- refactor the
Resourcedata structure by @japaric in #2231 - dns-test: make NameServer's FQDN more stable by @japaric in #2235
- Apply clippy suggestions for Rust 1.79 by @djc in #2240
- prepare 0.25-alpha by @bluejekyll in #2242
- Expose query path for DoH by @Skyxim in #2226
- DnsLru: cache RRSIG records together with the record they cover by @japaric in #2239
- Add conformance tests for NSEC3 by @pvdrz in #2238
- docs: add content from 2183 to changelog by @cpu in #2243
- fix: make just to compile bind by @sabify in #2248
- add conformance to CODEOWNERS by @japaric in #2259
- just: document conformance-* tasks by @japaric in #2266
- recursor: strip dnssec records on cache hit by @japaric in #2245
- dns-test: do not run
docker network createin parallel by @japaric in #2265 DnssecDnsHandle: check RRSIG validity as per RFC4035 by @japaric in #2213- NextRandomUdpSocket: fall back to port 0 if no port was found by @Luap99 in #2260
- CI: also run hickory unit tests when only /conformance changes by @japaric in #2269
- just: warn when the index is dirty and DNS_TEST_SUBJECT=hickory by @japaric in #2267
- Recursor::resolve: reject queries with relative domain names by @japaric in #2246
- add a trust anchor file parser by @japaric in #2257
- dns-test: use non-deprecated algorithm (RSASHA256) by @japaric in #2258
- dns-test: make unit tests use the checked out version of this repo by @japaric in #2268
- Assert status for every NSEC3 test by @pvdrz in #2254
- improved server binary, added config validation and control over protocols by @sabify in #2247
- Fix typo by @casonadams in #2272
- add DNSSEC validation to the recursive resolver by @japaric in #2253
- test caching of DNSSEC validation and of DNSSEC records by @japaric in #2244
- Add test to check cache hit with DO bit by @justahero in #2280
- Refactor
startmethod in Resolver by @justahero in #2281 - answer with SERVFAIL when DNSSEC validation fails by @japaric in #2286
- DnssecDnsHandle: do not recurse infinitely when query
DS .fails by @japaric in #2271 - recursor: put tokio::test behind cfg attribute by @japaric in #2291
- test that DO=1 does not change the outcome of DNSSEC validation by @japaric in #2287
- test caching of chain of trust link by @japaric in #2289
- Test invalid signature timestamps in DNSSEC validation by @justahero in #2298
- DnssecDnsHandle: also update the RRSIG's proof by @japaric in #2293
- validating recursor: return answer from cache by @japaric in #2297
- test that answer section is empty on failed DNSSEC validation by @japaric in #2302
- Adjust timestamps to pass unbound validation result by @justahero in #2303
- Add method to capture expected number of packets by @justahero in #2278
- server: empty the answer section when DNSSEC validation fails by @japaric in #2304
- recursor: fix DNSSEC validation of
NS somedomain.com.by @japaric in #2300 - dns-test: cache
targetdirectory acrossdocker buildinvocations by @japaric in #2305 - Update bytes to 1.6.1 by @marcus0x62 in #2310
- Add support for PTR query by @mokeyish in #2308
- add regression test for #2306 by @japaric in #2309
- avoid moving self in read_hosts_conf(reading from multiple files) by @mokeyish in #2314
- Adjust TTL of RRSIG + RR during validation by @justahero in #2311
- Update OpenSSL to fix security issue by @justahero in #2316
- Bump MSRV to 1.70 by @djc in #2322
- Allow to modify a RRSIG record before signing by @justahero in
Note truncated.
-
0.25.0-alpha.507 Feb 2025 pre-releaseNothing published for this version
-
0.25.0-alpha.428 Nov 2024 pre-releaseNothing published for this version
-
0.25.0-alpha.308 Nov 2024 pre-releaseNothing published for this version
-
0.25.0-alpha.206 Aug 2024 pre-releaseNothing published for this version
-
0.25.0-alpha.116 Jun 2024 pre-releaseNothing published for this version
-
0.24.419 Feb 2025Nothing published for this version
-
0.24.307 Feb 2025Nothing published for this version
-
0.24.210 Dec 2024Nothing published for this version
-
0.24.118 Apr 2024Nothing published for this version
-
0.24.014 Oct 2023Nothing published for this version
-
0.1.026 Sep 2023Nothing published for this version