Description

This is a pure OCaml implementation of the DNS protocol. It is intended to be a reasonably high-performance implementation, but clarity is preferred rather than low-level performance hacks.

Build Status

To build it, please use the OPAM package manager (1.2+):

opam pin add dns .

This will install the dependencies needed and give you a working development version of the library.

Packages:

  • lib/ contains the core DNS protocol, which is packed into the Dns module.
  • lib_test/ contains unit tests and sample uses of the library. In particular, time_server is a simple dynamic responder.

Areas that need work:

  • We need an Lwt-based client iterative resolver Patches for this are highly welcome!
  • EDNS0 extensions
  • DNSSEC extensions (using nocrypto)
  • TC bit and TCP fallback
  • mDNS resolver

Tags

org:mirage org:xapi-project

Published: 16 May 2017

Dependencies (24)

  1. duration with-test
  2. mirage-profile with-test
  3. mirage-kv-lwt with-test & < "2.0.0"
  4. mirage-kv with-test & < "2.0.0"
  5. mirage-time-lwt with-test
  6. mirage-stack-lwt with-test
  7. mirage-protocols with-test & >= "1.1.0" & < "2.0.0"
  8. pcap-format with-test
  9. ounit with-test
  10. lwt with-test & < "4.0.0"
  11. result
  12. hashcons
  13. base64 >= "2.0.0" & < "3.0.0"
  14. uri >= "1.7.0" & < "1.9.4"
  15. ipaddr >= "2.6.0" & < "2.8.0"
  16. re
  17. ppx_cstruct
  18. cstruct >= "2.0.0" & < "3.4.0"
  19. base-bytes
  20. ppx_tools
  21. topkg build & >= "0.8.0"
  22. ocamlbuild build
  23. ocamlfind build
  24. ocaml >= "4.03.0" & < "5.0"

Reverse Dependencies (10)

  1. dns-async = "1.1.1"
  2. dns-forward
  3. dnssd
  4. imaplet-lwt >= "0.1.12"
  5. jitsu
  6. letsencrypt < "0.3.0"
  7. letsencrypt-dns
  8. libres3 >= "0.3"
  9. mirage-dns < "3.0.0"
  10. vpnkit

Conflicts (4)

  1. mirage-kv-lwt >= "2.0.0"
  2. lwt < "3.0.0" | >= "4.0.0"
  3. async < "112.24.00"
  4. mirage-types-lwt < "3.0.0"