v4.0.0
CHANGES:
- Switch to uDNS implementation, developed from scratch since 2017, primarily
focusing on a recursive caching resolver. The server part supports dynamic
updates (RFC 2135), transaction authentication with HMAC (RFC 2845), zone
transfer (RFC 5936), incremental zone transfer (RFC 1995), change
notifications (RFC 1996) amongst others. - The core library uses a GADT for resource record sets, where the key (resource
record type) specifies the value type. - The API does not leak exceptions, but uses the result type where appropriate.
- TCP transport is well supported and used widely (client uses it by default)
- Naming: client is a DNS client, resolver is the recursive resolver library
- The DNS library is split into the following opam packages and sublibraries:
dns
- the core librarydns-tsig
- transaction signaturesdns-zone
- zone file parser (mostly taken from the 1.x series)dns-cli
- command line utilities (odig, onotify, ..)dns-client
- pure client implementation.unix
- DNS client using the Unix module for communication.lwt
- DNS client using Lwt_unix for communication.mirage
- DNS client using MirageOS for communication
dns-certify
- helpers for let's encrypt provisioning.mirage
- certificate provisioning with MirageOS
dns-mirage
- generic MirageOS communication layerdns-server
- pure server implementation.mirage
- MirageOS primary and secondary server
dns-resolver
- pure recursive resolver implementation.mirage
- MirageOS recursive resolver
- Only OCaml 4.07.0 and above are supported
- Multicast DNS has been dropped for now
- A client using async from JS has not been implemented yet