OCaml implementation of the DNS protocol
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
async
examples
lib
lib_test
lwt-unix
lwt
mirage
.gitignore
.travis-ci-post.sh
.travis.yml
CHANGES.md
LICENSE.md
Makefile
README.md
TODO.md
dns-async.opam
dns-lwt-unix.opam
dns-lwt.opam
dns.opam
dune-project
mirage-dns.opam

README.md

OCaml-DNS - 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