package charrua-core

  1. Overview
  2. Docs
DHCP core library - a DHCP server and wire frame encoder and decoder

Install

Dune Dependency

Authors

Maintainers

Sources

charrua-core-0.7.tbz
sha256=9188ccc4f645249a7135c4584a992e3f2cb059bd04e9da670013067ca745b318
md5=8dc296dd688e9cea29bfb131774a7b41

Description

charrua-core is an ISC-licensed DHCP library implementation in OCaml.

docs Build Status

It provides basically two modules, a Dhcp_wire responsible for parsing and constructing DHCP messages and a Dhcp_server module used for constructing DHCP servers.

charrua-unix is a Unix DHCP server based on charrua-core.

mirage is a Mirage DHCP unikernel server based on charrua-core.

You can browse the API for charrua-core at http://mirage.github.io/charrua-core/api

Published: 15 Apr 2017

README

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_wire responsible for parsing and constructing DHCP messages and a Dhcp_server module used for constructing DHCP servers.

charrua-unix is a Unix DHCP server based on charrua-core.

mirage is a Mirage DHCP unikernel server based on charrua-core.

You can browse the API for charrua-core at http://mirage.github.io/charrua-core/api

Features
  • 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.

The name charrua is a reference to the, now extinct, semi-nomadic people of southern South America.

This project became one of the Mirage Pioneer 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

Dependencies (13)

  1. rresult
  2. tcpip >= "3.1.0" & < "3.2.0"
  3. ipaddr >= "2.5.0" & < "3.0.0"
  4. sexplib
  5. ppx_cstruct
  6. cstruct >= "1.9.0" & < "3.0.0"
  7. menhir build
  8. ppx_tools
  9. ppx_sexp_conv
  10. topkg build
  11. ocamlbuild build
  12. ocamlfind build
  13. ocaml >= "4.03"

Dev Dependencies (1)

  1. io-page with-test

Used by (2)

  1. charrua-unix >= "0.5" & < "0.9"
  2. vpnkit < "0.1.1"

Conflicts

None

OCaml

Innovation. Community. Security.