dns

AuthorsAnil Madhavapeddy, Tim Deegan, Richard Mortier, Haris Rotsos, David Sheets, Thomas Gazagnaire, Luke Dunstan and David Scott
LicenseISC
Homepagehttps://github.com/mirage/ocaml-dns
Issue Trackerhttps://github.com/mirage/ocaml-dns/issues
Tagsorg:mirage and org:xapi-project
Maintaineranil@recoil.org
Dependencies
&base-bytes
base64>= 2.0.0
cstruct>= 2.0.0
duration
hashcons
ipaddr>= 2.6.0
lwt
mirage-kv
mirage-kv-lwt
mirage-profile
mirage-protocols>= 1.1.0
mirage-stack-lwt
mirage-time-lwt
ocamlbuild
ocamlfind
ounit
pcap-format
ppx_cstruct
ppx_tools
re
result
topkg>= 0.8.0
uri>= 1.7.0
Optional dependencies
|async
cmdliner
duration
lwt
mirage-kv-lwt
mirage-profile
mirage-stack-lwt
mirage-time-lwt
Availableocaml-version >= "4.03.0"
PublishedMay 16, 2017
Source [http] https://github.com/mirage/ocaml-dns/releases/download/0.20.1/dns-0.20.1.tbz
16f38546fb454480cb063ef83c4eb37c
StatisticsInstalled 31 times last month.
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/dns/dns.0.20.1/opam

DNS client and server implementation in pure OCaml

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