GithubHelp home page GithubHelp logo

georgyo / charrua Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mirage/charrua

0.0 1.0 0.0 1.17 MB

A DHCP library in OCaml

Home Page: http://mirage.github.io/charrua/api/

License: ISC License

OCaml 99.97% Makefile 0.03%

charrua's Introduction

Charrua DHCP - a DHCP client, server and wire frame encoder and decoder

docs

charrua is an ISC-licensed DHCP library implementation in OCaml. It provides the following packages:

  • charrua: a library that handles wire traffic parsing
  • charrua-server: a DHCP server implementation
  • charrua-client: a library for handling DHCP client state and messages
  • charrua-unix: a Unix DHCP server implementation

Charrua

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

Charrua consists of the single module Dhcp_wire responsible for parsing and constructing DHCP messages,

You can browse the API for charrua at https://mirage.github.io/charrua/

Features

  • Dhcp_wire provides marshalling and unmarshalling utilities for DHCP, it is the base for Dhcp_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.

Charrua-server

The module 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.

dhcp is a MirageOS DHCP unikernel server based on charrua, included as a part of the MirageOS unikernel example and starting-point repository.

Charrua-client

charrua-client is a DHCP client powered by charrua.

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.

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.

charrua's People

Contributors

haesbaert avatar yomimono avatar hannesm avatar avsm avatar samoht avatar djs55 avatar juga0 avatar georgyo avatar tmcgilchrist avatar craigfe avatar dsheets avatar thelortex avatar olleolleolle avatar gridbugs avatar talex5 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.