Systems Programming
Number Types
- ocplib-endian: Read and write all sizes of integers, both big and little endian, from Bigarrays, strings and bytes.
- Bytes: The standard library has functions to read little endian and big endian numbers of different sizes, both signed and unsigned, from bytes.
- Integers: A library for support of unsigned and signed types of different sizes.
- StdInt: More comprehensive library for manipulation of unsigned and signed types of different sizes. Includes the ability to read big endian and little endian numbers.
Mirage OS
- Mirage OS:
Unikernel-based operating system written in OCaml.
It serves as a programming framework for constructing secure,
high-performance network applications across a variety of cloud computing and mobile platforms.
- Arxiv paper on mirage
- mirage-skeleton: Examples of simple Mirage apps.
- ICFP Presentation on Mirage and Irmin
- mirage-tcpip: Pure OCaml TCPIP stack.
- Irmin:
Git-like distributed database written in OCaml.
- Irmin: Irmin containers.
- ocaml-fat: Read and write FAT format filesystems from OCaml.
- ocaml-git: Pure OCaml low-level git bindings.
- ocaml-vchan: Pure OCaml implementation of the “vchan” shared-memory communication protocol.
Mirage OS Applications
- Canopy: A blogging MirageOS unikernel based on git. Can be compiled to Unix as well.
Embedded Programming
- OMicroB: OCaml virtual machine for devices with limited resources such as microcontrollers. Based on this paper.
- OCaPIC: OCaml for PIC microcontrollers.
Lower-level OS Libraries
Articles
- ocamlunix: Great introduction to systems programming in OCaml