package charrua-client-lwt
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=a596f66acba08db8108f3d448d2afabaa28e42bacf73a9c98cab271aeba70fc3
md5=3892074e768f32d2a4a5cff14e1d9f5a
Description
charrua is an ISC-licensed DHCP library implementation in OCaml. It provides five packages:
- charrua-core: a library that handles wire traffic parsing and a server implementation
- charrua-client: a library for handling DHCP client state and messages
- charrua-client-lwt: a DHCP client library with timeouts and network read/write
- charrua-client-mirage: a MirageOS-compatible set of interfaces to charrua-client-lwt
- charrua-unix: a Unix DHCP server implementation
Charrua-core
Charrua-core consists of two modules, a Dhcp_wire
responsible for parsing and
constructing DHCP messages and a Dhcp_server
module used for constructing DHCP
servers.
You can browse the API for charrua-core at http://mirage.github.io/charrua-core/api
dhcp is a Mirage DHCP unikernel server based on charrua-core, included as a part of the MirageOS unikernel example and starting-point repository.
Features
Dhcp_server
supports a stripped down ISC dhcpd.conf, so you can probably just use your olddhcpd.conf
. It also supports manual configuration building in OCaml.Dhcp_wire
provides marshalling and unmarshalling utilities for DHCP, it is the base forDhcp_server
.- Logic/sequencing is agnostic of IO and platform, so it can run on Unix as a process, as a Mirage unikernel or anything else.
- 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.
Charrua-client
charrua-client is a DHCP client powered by charrua-core.
The base library exposes a simple state machine in Dhcp_client
for use in acquiring a DHCP lease.
charrua-client-lwt
extends charrua-client
with a functor Dhcp_client_lwt
,
using the provided modules for timing and networking logic,
for convenient use by a program which might wish to implement a full client.
charrua-client-mirage
exposes an additional Dhcp_client_mirage
for direct use
with the MirageOS library operating system.
Charrua-unix Server
charrua-unix is an ISC-licensed Unix DHCP daemon based on charrua-core.
Features
- Supports a stripped down ISC dhcpd.conf. A configuration sample can be found here
- Privilege dropping: the daemon doesn't run as root.
- Almost purely-functional code.
- Support for multiple interfaces/subnets.
Try charruad --help
for options.
This project became one of the Mirage Pioneer projects.
README
Charrua DHCP - a DHCP client, server and wire frame encoder and decoder
charrua is an ISC-licensed DHCP library implementation in OCaml. It provides five packages:
charrua-core: a library that handles wire traffic parsing and a server implementation
charrua-client: a library for handling DHCP client state and messages
charrua-client-lwt: a DHCP client library with timeouts and network read/write
charrua-client-mirage: a MirageOS-compatible set of interfaces to charrua-client-lwt
charrua-unix: a Unix DHCP server implementation
Charrua-core
Charrua-core consists of two modules, a Dhcp_wire
responsible for parsing and constructing DHCP messages and a Dhcp_server
module used for constructing DHCP servers.
You can browse the API for charrua-core at http://mirage.github.io/charrua-core/api
dhcp is a Mirage DHCP unikernel server based on charrua-core, included as a part of the MirageOS unikernel example and starting-point repository.
Features
Dhcp_server
supports a stripped down ISC dhcpd.conf, so you can probably just use your olddhcpd.conf
. It also supports manual configuration building in OCaml.Dhcp_wire
provides marshalling and unmarshalling utilities for DHCP, it is the base forDhcp_server
.Logic/sequencing is agnostic of IO and platform, so it can run on Unix as a process, as a Mirage unikernel or anything else.
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.
Charrua-client
charrua-client is a DHCP client powered by charrua-core.
The base library exposes a simple state machine in Dhcp_client
for use in acquiring a DHCP lease.
charrua-client-lwt
extends charrua-client
with a functor Dhcp_client_lwt
, using the provided modules for timing and networking logic, for convenient use by a program which might wish to implement a full client.
charrua-client-mirage
exposes an additional Dhcp_client_mirage
for direct use with the MirageOS library operating system.
Charrua-unix Server
charrua-unix is an ISC-licensed Unix DHCP daemon based on charrua-core.
Features
Supports a stripped down ISC dhcpd.conf. A configuration sample can be found here
Privilege dropping: the daemon doesn't run as root.
Almost purely-functional code.
Support for multiple interfaces/subnets.
Try charruad --help
for options.
This project became one of the Mirage Pioneer projects.
Dependencies (15)
-
mirage-types-lwt
>= "3.0.0" & < "3.7.0"
- lwt
- fmt
-
tcpip
>= "3.2.0" & < "3.6.0"
- logs
- mirage-time-lwt
- duration
-
mirage-random
>= "1.0.0" & < "1.2.0"
- rresult
-
ipaddr
< "3.0.0"
-
cstruct
>= "3.0.2"
-
charrua-client
= "0.10"
-
charrua-core
= "0.10"
-
jbuilder
>= "1.0+beta9"
-
ocaml
>= "4.03.0"
Dev Dependencies (2)
-
cstruct-unix
with-test
-
alcotest
with-test
Used by (1)
-
charrua-client-mirage
= "0.10"
Conflicts
None