simple-dns
Rust implementation to parse and write DNS packets
0.12.0
9.2M downloads/mo
#3258 most downloaded on crates.io
balliegojr/simple-dns
What this package is like to depend on
Last release 28 days ago
26 Jul 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 36 of 37 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
38 releases · first in 2021
4 releases in the last 12 months
see the full history below
Release timeline
38 releases · Jun 2021 to Jul 2026
2022
2023
2024
2025
2026
Releases
latest 38-
0.12.026 Jul 2026Release notes
Open source →Fix
- Document panic behaviour in header_buffer and change the functions to have a safe and _unchecked version.
- Fixed incorrect resource record len bytes when writing NSEC records
- Fixed incorrect behaviour when writing compressed resource records to fixed size writers
Release notes
Open source →Fix
- Document panic behaviour in header_buffer and change the functions to have a safe and _unchecked version.
- Fixed incorrect resource record len bytes when writing NSEC records
- Fixed incorrect behaviour when writing compressed resource records to fixed size writers
-
0.11.314 May 2026 -
0.11.206 Jan 2026 -
0.11.127 Dec 2025 -
0.11.023 Jul 2025 -
0.10.120 Apr 2025 -
0.10.022 Feb 2025Release notes
Open source →Changes
- Changes internal implementation to use a Buffer struct instead of a byte slice
- Add bind9 compatibility tests
Fix
- Fix NSec parsing code
Breaking changes
- Add SVCB Params for SVCB resource records
-
0.9.318 Jan 2025 -
0.9.212 Jan 2025 -
0.9.130 Nov 2024Release notes
Open source →Fix
- Allow labels starting with numbers (RFC-1123)
Added
- Add CERT, DNSKEY, DS, EUI48, EUI64, IPSECKEY, KX, RRSIG, ZONEMD, NSEC, DHCID support
-
0.9.017 Oct 2024Release notes
Open source →Fix
- Correct serialization of OPT resource record for eDNS packets
Added
- Add
new_with_labelstoNameimplementation - Exposes
Labeltype
Breaking Changes
- Add data validation to
Name::new.
-
0.8.027 Aug 2024 -
0.7.113 Aug 2024 -
0.7.025 Mar 2024Release notes
Open source →Breaking Changes
- Async
SimpleMdnsResponder::new_with_scopeexpects an optional future for graceful shutdown. - Correct resolution of Dns-Sd metaquery
- Async
-
0.6.227 Feb 2024 -
0.6.111 Feb 2024Release notes
Open source →Fix
- Fixes invalid name lengths when generating uncompressed bytes from a packet that was parsed from compressed data.
-
0.6.006 Jan 2024Release notes
Open source →Fix
- Fixes invalid rdata length when generating compressed packets.
Changed (Breaking)
- Anotate TYPE with non_exhaustive
- QCLASS::match_qtype no longer matcher A and AAAA together
Added (Breaking)
- Add SVBC record type parsing (RFC 9460)
-
0.5.717 Oct 2023Release notes
Open source →Fix
- TryFrom<'str> for TXT generating invalid CharacterStrings
Name::is_subdomain_ofno longer return true for the same domain
Added
Name::withoutto extract subdomains from a domain
-
0.5.604 Oct 2023Release notes
Open source →Fix
- Name compression now considers the full domain when creating pointers.
Added
- Add TryFrom<'str> and TryInto<'str> for TXT records as a convenience to work with long TXT records
-
0.5.514 Sep 2023Release notes
Open source →Fix
- Add derived traits to PacketFlag that where removed by the previous version
-
0.5.407 Sep 2023 -
0.5.309 Jul 2023 -
0.5.217 Mar 2023Release notes
Open source →- Add DeRef and DerefMut implemetations for the ResourceRecord wrapper macro
-
0.5.117 Jan 2023 -
0.5.010 Dec 2022Release notes
Open source →Fixed
- Fixes parsing for Name, CharacterString and SOA types
Changed (Breaking)
- Header flags now use crate bitflags
- Removed PacketBuf struct, due to how EDNS0 packets are constructed.
It is necessary to parse the whole packet to be able to construct the header information, which renders the PacketBuf on the fly approach unreliable
Added
- Add OPT record type from RFC 6891 (EDNS0 support)
- header_buffer module for packet header manipulation
- tests using sample files from bind9
-
0.4.707 Sep 2022Release notes
Open source →- Remove
thiserrordependency - Add RFC 2136
- Add RFC 1183
- Add RFC 1706
- Add RFC 1876
- Add NOTIFY code (RFC 1995 and 1996)
- Add new error type
InsufficientDatafor stream parsing
- Remove
-
0.4.612 Mar 2022 -
0.4.529 Jan 2022 -
0.4.429 Jan 2022 -
0.4.329 Jan 2022 -
0.4.228 Jan 2022 -
0.4.107 Jan 2022 -
0.4.011 Nov 2021Release notes
Open source →- Change internal data references to use Cow
- Add into_owned function to every resource
- Add is_subdomain_of for Name comparison
- Change RData::SRV to not use a Box anymore
-
0.3.019 Sep 2021 -
0.2.110 Aug 2021 -
0.2.009 Aug 2021 withdrawnRelease notes
Open source →- Add Name compression
- Change DnsPacketContent visibility to pub(crate)
- Rename PacketSectionIter to QuestionsIter
-
0.1.108 Jun 2021Nothing published for this version
-
0.1.001 Jun 2021