Trust-DNS 0.21.0 released with many performance improvements

This is mostly a performance related, thank you everyone who contributed to this release.

0.21.0

Added

  • (client) Parse DS records (kmkaplan) #1635
  • (fuzz) Added fuzzing configuration (saethlin) #1626
  • (resolver) Add resolver.clear_cache() sync and async (dns2utf8) #1611
  • (proto) Add CDS/CDNSKEY records from RFC7344 (frelon) #1595
  • (resolver) Configuration of outbound bind address for resolver (surban) #1586
  • (proto) Add CSYNC record from RFC7477 (frelon) #1583
  • (proto) trust_dns_proto::rr::Record now serializable (mvforell) #1536
  • (client) new zone_transfer method for AXFR and IXFR use cases, client only (@trinity-1686a) #1478
  • (client) Flag for use_edns configuration on AsyncClient (@astro) #1492
  • (client) support for TSIG authentication (@trinity-1686a) #1459

Changed

  • (util) openssl is no longer default enabled in trust-dns-utils, bins marked as required as necessary #1644
  • (proto) deprecate outdated dnssec algorithms #1640
  • (server) pass RequestInfo into Authority on search #1620
  • (proto) SSHFP: Ed448 is assigned algorithm 6 in RFC 8709 #1604
  • (resolver) Do not retry the same name server on a negative response (@peterthejohnston) #1589
  • (all) with-backtrace feature renamed to backtrace (@pinkisemils) #1577
  • (resolver) TCP for truncated message responses, but not for other failures on responses (switch for old behavior try_tcp_on_error) ( @peterthejohnston) #1562
  • (server) Multiple queries in a message will always result in a FormError now #1554
  • (server) ServerFuture and other Catalog related API changes #1554
  • (server) By default, the server will now only log a single log line based for a given request (debug will be needed for more details) #1554
  • (server) ResponseHandler now must return a ResponseInfo to allow for more consistent logging #1554
  • (resolver) Correct behavior around trust_nx_responses (@peterthejohnston) #1556
  • (server) ResponseHandler trait is now async_trait, requires all impls to be annotated with #[async_trait] #1550
  • (server) Authority impls required to be internally modifiable and Send + Sync #1550
  • (server) Most Authority methods changes to async fn rather than returning custom Future impls #1550
  • (server) Authority trait is now async_trait, requires all impls to be annotated with #[async_trait] #1550
  • (proto) Header now stores ResponseCode instead of just u8 #1537
  • (client) improved async client example documentation (@ErwanDL) #1539
  • (resolver) on REFUSED (and other negative) response(s), fall back to other nameservers (@peterthejohnston) #1513 #1526
  • (client) the feature dnssec is no longer enabled by default, use dnssec-ring or dnssec-openssl #1506
  • (server) dnssec functions of Authority moved into DnsSecAuthority #1506
  • (all) Most public enum types are now marked #[non_exaustive] #1426
  • (resolver) DnsRequestOptions and ResolverOpts now #[non_exaustive] #1426
  • (proto) all I/O Streams now use BufDnsStreamHandle rather than generic DnsStreamHandle #1433
  • (proto) DnsResponse response now contains only a single Response #1433
  • (proto) Name::append_name and Name::append_domain now properly fallible when name is too long #1448
  • (resolver) special handling of the onion. TLD added to static resolution with negative responses (@trinity-1686a) #1479
  • (proto) internal Futures converted to Streams to support multiple responses, e.g. AXFR (@trinity-1686a) #1478
  • (proto) renamed Signer to SigSigner to differentiate from TSigner #1498

Removed

  • (all) removed structopt dependency #1644
  • (all) removed chrono dependency #1569
  • (client) Remove AsyncClientConnect and AsyncSecureClientConnect (future impls) in favor of async constructors (@ErwanDL) #1541
  • (proto) removed RecordType::DNSSEC and moved all variants of DNSSECRecordType into RecordType #1506
  • (proto) removed BufStreamHandle and StreamHandle #1433
  • (response) disabled mdns to work on a new solution #1433

Fixed

  • (proto) fix CAA .to_string() crash and format (@hartshorne) #1631
  • (proto) fix DoubleEndedIterator impl for Name #1639
  • (client) Fix AsyncClient::clone always setting use_edns (@ecton) #1598
  • (resolver) Use stream connections if datagram connections are not available (@pinkisemils) #1592
  • (server) Release resources when a server future is dropped (@pinkisemils) #1587
  • (proto) Panic when name exceeds maximal domain name length during display #1447