Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mirage/mirage-tcpip

TCP/IP networking stack in pure OCaml, using the Mirage platform libraries. Includes IPv4/6, ICMP, and UDP/TCP support.
https://github.com/mirage/mirage-tcpip

arp ethernet icmp ipv4 mirageos networking-stack ocaml tcp tcpip udp unikernel

Last synced: about 1 month ago
JSON representation

TCP/IP networking stack in pure OCaml, using the Mirage platform libraries. Includes IPv4/6, ICMP, and UDP/TCP support.

Awesome Lists containing this project

README

        

# mirage-tcpip - an OCaml TCP/IP networking stack

`mirage-tcpip` provides a networking stack for the [Mirage operating
system](https://mirage.io). It provides implementations for the following module types
(which correspond with the similarly-named protocols):

* IP (via the IPv4 and IPv6 modules)
* ICMP
* UDP
* TCP

## Implementations

There are two implementations of the IP, ICMP, UDP, and TCP module types -
the `socket` stack, and the `direct` stack.

### The `socket` stack

The `socket` stack uses socket calls to a traditional operating system to
provide the functionality described in the module types.

See the [`src/stack-unix/`](./src/stack-unix/) directory for the modules used as implementations of the
`socket` stack.

The `socket` stack is used for testing or other applications which do not
expect to run as unikernels.

### The `direct` stack

The `direct` stack expects to write to a device implementing the `NETIF` module
type defined for MirageOS.

See the [`src/`](./src/) directory for the modules used as implementations of the
`direct` stack, which is the expected stack for most MirageOS applications.

The `direct` stack is the only usable set of implementations for
applications which will run as unikernels on a hypervisor target.

## Community

* WWW:
* E-mail:
* Issues:
* API docs:

## License

`mirage-tcpip` is distributed under the ISC license.