Skip to content

0.7.0

Compare
Choose a tag to compare
@partim partim released this 15 Sep 12:50
· 278 commits to main since this release
bccf089

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::header::Flag` for easier working for the flags of a message header. (#109 by @tomaskrizek)
  • 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)
  • Initial support for SVCB and HTTPS record types. (#115 by @xofyarg)
  • Introduced Serde support for all relevant types. (#116)
  • The 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)
  • Support for [heapless::Vec<u8, N>] as an octets sequence via the new heapless feature. (#122 by @bugadani)
  • The parameter types for SVCB record data now also implement Eq (#135)

Bug Fixes

  • Correctly encode and decode the address in EDNS client subnet when the number of bits isn’t divisible by 8. (#101 and #102 by @xofyarg)
  • validate:
    • Check for the correct public key size instead of infering if from the RRSIG length. (#110 by @vavrusa)
    • Canonalize the security algorithm before evaluation to avoid missing algorithm provided via the unknown integer variant. (#127 by @vavrusa)
  • Support for no-std environments now actually works. (#117 by @Jezza)
  • Canonalize IANA types when scanning so that, e.g., 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