PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 38
  1. 0.12.0 26 Jul 2026
    Release notes

    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
    Open source →
    Release notes

    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
    Open source →
  2. 0.11.3 14 May 2026
    Release notes

    Fix

    • Updated bitflags dependency to 2.11.
    • Clippy run
    Open source →
    Release notes

    Fix

    • Updated bitflags dependency to 2.11.
    • Clippy run
    Open source →
  3. 0.11.2 06 Jan 2026
    Release notes

    update version and changelog

    Open source →
    Release notes

    Fix

    • Fix name compression when the offset is too large PR [#53]
    Open source →
  4. 0.11.1 27 Dec 2025
    Release notes

    update version and changelog

    Open source →
    Release notes

    Fix

    • Fix CharacterString display implementation to prevent panics
    Open source →
  5. 0.11.0 23 Jul 2025
    Release notes

    update version and changelog

    Open source →
    Release notes

    Added

    • no-std support
    • std and alloc feature
    Open source →
  6. 0.10.1 20 Apr 2025
    Release notes

    update change log and simple-dns version

    Open source →
    Release notes

    Fix

    • Change Name::get_labels lifetime anotation to be less restrictive
    Open source →
  7. 0.10.0 22 Feb 2025
    Release notes

    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
    Open source →
  8. 0.9.3 18 Jan 2025
    Release notes

    update changelog and simple-dns version

    Open source →
    Release notes

    Fix

    • Fix Name and Label display implementation
    Open source →
  9. 0.9.2 12 Jan 2025
    Release notes

    Fix

    • Fix panic when parsing (PR #40)
    Open source →
  10. 0.9.1 30 Nov 2024
    Release notes

    Fix

    • Allow labels starting with numbers (RFC-1123)

    Added

    • Add CERT, DNSKEY, DS, EUI48, EUI64, IPSECKEY, KX, RRSIG, ZONEMD, NSEC, DHCID support
    Open source →
  11. 0.9.0 17 Oct 2024
    Release notes

    Fix

    • Correct serialization of OPT resource record for eDNS packets

    Added

    • Add new_with_labels to Name implementation
    • Exposes Label type

    Breaking Changes

    • Add data validation to Name::new.
    Open source →
  12. 0.8.0 27 Aug 2024
    Release notes

    Fix (Breaking)

    • Remove the length octet from CAA value serialization
    Open source →
  13. 0.7.1 13 Aug 2024
    Release notes

    Added

    • Add set_id function to packet
    Open source →
  14. 0.7.0 25 Mar 2024
    Release notes

    Breaking Changes

    • Async SimpleMdnsResponder::new_with_scope expects an optional future for graceful shutdown.
    • Correct resolution of Dns-Sd metaquery
    Open source →
    Release notes

    Fix (Breaking)

    • Handle empty rdata parsing (when the lenght is 0)
    Open source →
  15. 0.6.2 27 Feb 2024
    Release notes

    Added

    • Add NAPTR record type parsing (RFC 3403)
    Open source →
  16. 0.6.1 11 Feb 2024
    Release notes

    Fix

    • Fixes invalid name lengths when generating uncompressed bytes from a packet that was parsed from compressed data.
    Open source →
  17. 0.6.0 06 Jan 2024
    Release notes

    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)
    Open source →
  18. 0.5.7 17 Oct 2023
    Release notes

    Fix

    • TryFrom<'str> for TXT generating invalid CharacterStrings
    • Name::is_subdomain_of no longer return true for the same domain

    Added

    • Name::without to extract subdomains from a domain
    Open source →
  19. 0.5.6 04 Oct 2023
    Release notes

    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
    Open source →
  20. 0.5.5 14 Sep 2023
    Release notes

    Fix

    • Add derived traits to PacketFlag that where removed by the previous version
    Open source →
  21. 0.5.4 07 Sep 2023
    Release notes

    Added

    • Support to parse CAA records
    Open source →
  22. 0.5.3 09 Jul 2023
    Release notes

    Added

    • write_to and write_compressed_to functions to Packet
    Open source →
  23. 0.5.2 17 Mar 2023
    Release notes
    • Add DeRef and DerefMut implemetations for the ResourceRecord wrapper macro
    Open source →
  24. 0.5.1 17 Jan 2023
    Release notes

    Fixed

    • Prevent panic! when trying to parse an empty slice
    Open source →
  25. 0.5.0 10 Dec 2022
    Release notes

    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
    Open source →
  26. 0.4.7 07 Sep 2022
    Release notes
    • Remove thiserror dependency
    • Add RFC 2136
    • Add RFC 1183
    • Add RFC 1706
    • Add RFC 1876
    • Add NOTIFY code (RFC 1995 and 1996)
    • Add new error type InsufficientData for stream parsing
    Open source →
  27. 0.4.6 12 Mar 2022
    Release notes
    • Add cache flush bit parsing to resource records
    Open source →
  28. 0.4.5 29 Jan 2022
    Release notes
    • Fix TXT records length
    Open source →
  29. 0.4.4 29 Jan 2022
    Release notes

    -Fix PTR parsing with compression

    Open source →
  30. 0.4.3 29 Jan 2022
    Release notes
    • Improve error handling
    Open source →
  31. 0.4.2 28 Jan 2022
    Release notes
    • Fix Name compression when using multiple pointers
    Open source →
  32. 0.4.1 07 Jan 2022
    Release notes
    • Fix a panic when parsing TXT records of length 0
    Open source →
  33. 0.4.0 11 Nov 2021
    Release notes
    • 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
    Open source →
  34. 0.3.0 19 Sep 2021
    Release notes
    • Fix TXT Resource Record implementation
    • Drop byteorder crate dependency
    Open source →
  35. 0.2.1 10 Aug 2021
    Release notes
    • Fix Name hash function
    • Fix SRV compression
    Open source →
  36. 0.2.0 09 Aug 2021 withdrawn
    Release notes
    • Add Name compression
    • Change DnsPacketContent visibility to pub(crate)
    • Rename PacketSectionIter to QuestionsIter
    Open source →
  37. 0.1.1 08 Jun 2021

    Nothing published for this version

  38. 0.1.0 01 Jun 2021
    Release notes

    Initial project release

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive