simple-dns 0.9.0

Rust implementation to parse and write DNS packets
Documentation
# 0.9.0 (2024-10-17)

### 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`.

# 0.8.0 (2024-08-27)

### Fix (Breaking)
- Remove the length octet from CAA value serialization

# 0.7.1 (2024-08-13)

### Added
- Add `set_id` function to packet

# 0.7.0 (2024-03-25)

### Fix (Breaking)
- Handle empty rdata parsing (when the lenght is 0)

# 0.6.2 (2024-02-27)

### Added 
-  Add NAPTR record type parsing (RFC 3403)

# 0.6.1 (2024-02-11)

### Fix
- Fixes invalid name lengths when generating uncompressed bytes from a packet that was parsed from compressed data.

# 0.6.0 (2024-01-06)

### 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.7 (2023-10-17)

### 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

# 0.5.6 (2023-10-04)

### 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.5 (2023-09-14)

### Fix
- Add derived traits to PacketFlag that where removed by the previous version

# 0.5.4 (2023-09-07)

### Added
- Support to parse CAA records

# 0.5.3 (2023-07-09)

### Added
- `write_to` and `write_compressed_to` functions to `Packet`

# 0.5.2 (2023-03-17)
- Add DeRef and DerefMut implemetations for the ResourceRecord wrapper macro

# 0.5.1 (2023-01-17)

### Fixed
- Prevent panic! when trying to parse an empty slice

# 0.5.0 (2022-12-10)

### Fixed
- Fixes parsing for Name, CharacterString and SOA types 

### Changed (Breaking)
- Header flags now use crate [bitflags]https://crates.io/crates/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.7

- 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

# 0.4.6
- Add cache flush bit parsing to resource records

# 0.4.5
- Fix TXT records length

# 0.4.4
-Fix PTR parsing with compression

# 0.4.3
- Improve error handling

# 0.4.2
- Fix Name compression when using multiple pointers

# 0.4.1
- Fix a panic when parsing TXT records of length 0

# 0.4.0
- 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.0
- Fix TXT Resource Record implementation
- Drop byteorder crate dependency

# 0.2.1
- Fix Name hash function
- Fix SRV compression

# 0.2.0

- Add Name compression
- Change DnsPacketContent visibility to pub(crate)
- Rename PacketSectionIter to QuestionsIter 

# 0.1.0

Initial project release