Charrua DHCP core library - a DHCP server and wire frame encoder and decoder
charrua-core is an ISC-licensed DHCP library implementation in OCaml.
It provides basically two modules, a
Dhcp responsible for parsing and
constructing DHCP messages and a
Dhcp_server module used for constructing DHCP
charrua-unix is a Unix DHCP server based on charrua-core.
mirage is a Mirage DHCP unikernel server based on charrua-core.
- Dhcp_server supports a stripped down ISC dhcpd.conf, so you can probably just use your old dhcpd.conf, it also supports manual configuration building in ocaml.
- Logic/sequencing is agnostic of IO and platform, so it can run on Unix as a process, as a Mirage unikernel or anything else.
- Dhcp_wire provides marshalling and unmarshalling utilities for DHCP, it is the base for Dhcp_server.
- All DHCP options are supported at the time of this writing.
- Code is purely applicative.
- It's in ocaml, so it's pretty cool.
charrua is a reference to the, now extinct, semi-nomadic people of
southern South America.
This project became one of the [Mirage Pioneer] (https://github.com/mirage/mirage-www/wiki/Pioneer-Projects) projects.
The master branch depends on upcoming mirage 2.9 at this point, if you want to use it, you'll have to add the mirage development branch to opam, it also requires opam version >= 1.2.2.
opam remote add mirage-dev https://github.com/mirage/mirage-dev.git opam update opam upgrade