package dns

Build not checked
  1. Overview
  2. Docs

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.

There are several concrete implementations using this package that you probably want to use for practical purposes:

  • dns-lwt for the Lwt concurrency library
  • dns-lwt-unix using the Lwt_unix bindings
  • dns-async using the Jane Street Async library
  • mirage-dns for the MirageOS unikernel framework

Tags

org:mirage org:xapi-project

Added to opam-repository:

README

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

Dependencies (11)

  1. result
  2. hashcons
  3. base64 >= "3.0.0"
  4. uri >= "1.7.0"
  5. ipaddr >= "2.6.0" & < "4.0.0"
  6. domain-name < "0.3.0"
  7. re >= "1.7.2"
  8. ppx_cstruct
  9. cstruct >= "3.0.2" & < "6.0.0"
  10. dune
  11. ocaml >= "4.03.0" & < "5.0"

Dev Dependencies

None

Optional Dependencies

None

Conflicts

None

Build status

Results of building dns with each compiler on check.ci.ocaml.org, run of against opam-repository 78c202b. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

This version is not in the latest run; the versions below are.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
10.2.7 n/a good good good good
8.0.0 good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure