Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

The Caml Hump: System :: System programming

Open Source

Native OCaml libraries
Shcaml [15-Jan-2013, version 0.1.3, Beta] Has a documentation
Caml-Shcaml is an Ocaml library for Unix shell programming.
Author: Jesse Tov.


Native OCaml libraries
FDinfo [04-Jul-2011, version 0.2.1, Beta]
a small library written in O'Caml to get the current offset and flags of files opened by another process.
Author: Gregory Bellier.


Native OCaml libraries
Concurrent Cell [25-Jan-2010, version 3.0beta2, Beta]
'Concurrent Cell' is a library for multi-thread programming with CML(Concurrent ML) style synchronous message passing communications. The Threads library, a part of OCaml, realizes the CML style event value, but does not support shared variables like ivar and mvar. This library implements these variables without creating any new thread. This means that ivar and mvar are lightweight and GC target.
Native OCaml libraries
Env [07-Sep-2004, version 2004-09-02, Beta]
An Environment Interaction module for Objective Caml. It's useful if you need to create a local copy of the current environment for modification.
Author: Jesse Guardiani.
Native OCaml libraries
io [03-Oct-2006, version 0.3, Beta]
"io" is an IO combinator library for safe I/O over strings and channels, in the style of "picklers" which can then be used with various backends to safely load and save data. Currently available backends include : human readable ASCII, binary and compressed binary. A type-independent command can convert between different representations. The representation for records and sum types is upwards compatible. Note that sharing and circular structures are not supported.
Author: Berke Durak.
Native OCaml libraries
Lpd [04-Jul-2011, version 1.1, Stable]
Lpd is a Line Printer Daemon (LPD) server library written entirely in OCaml. It allows to define your own actions for LPD events. An example of a spooler that prints jobs on win32 machines (through GSPRINT) is provided.
Bindings with C libraries
ocaml-extunix [18-Jun-2012, version 0.0.5, Development code]
Thin bindings to various low-level system APIs which are not covered by Unix module.
Author: ygrek.
Native OCaml libraries
OCamlFd [09-Mar-2009, version 1.1.0, Beta]
OcamlFd is an extension library for the OCaml language, providing miscellaneous utility functions involving UNIX file descriptors.
Scientific software
Xapi toolstack [05-Nov-2009, Development code]
The xapi toolstack, which provides the core Citrix Xenserver's functionalities, is a set of libraries and programs written in OCaml. It is approximately 200k lines of code developed from early 2006. Within Citrix, more than 40 people have already contributed to its source code.


Native OCaml libraries
ocaml-duppy [10-Mar-2008, version 0.1.0, Beta]
An advanced scheduler. The basics of this scheduler is to implement a wrapper around in order to be able to wait for events on a socket and/or a given delay and execute a task when one of the waited events occured.
Author: Romain Beauxis.
Scientific software
virt-mem [18-Aug-2008, version 0.2.9, Alpha] Has a documentation
These are a collection of monitoring and management tools for virtual machines.


Native OCaml libraries
OBus [13-Dec-2010, version 1.1, Stable]
OBus is a pure ocaml implementation of DBus. It aims to provide a clean and easy way for ocaml programmers to access and provide dbus services.
Author: Jérémie Dimino.
Bindings with C libraries
OCaml-Sem [07-Nov-2005, version 0.0.2, Beta]
Sem is an OCaml module implementing support of POSIX semaphores. The package contains code in C and OCaml programming languages. Once compiled it makes a usual OCaml library usable in both byte-code and native code development.
Author: Paul Argentoff.
Bindings with C libraries
Oclock [22-Sep-2010, version 0.2, Beta]
Precise POSIX clock library for Ocaml. This library uses the clock_gettime(2) family of functions, to get precisions from below the milliseconds upto the nanoseconds depending on the platform (system and CPU). It lets you measure time from the real-time clock, monotonic clocks, or CPU-time clocks of the current process, of a remote process, or of a thread.


APC [11-Jun-2007, version 1.02, Beta] Has a documentation
A small and not entirely usual CPU load monitor written in OCaml.
Author: malc.
Bindings with C libraries
libaio-ocaml [19-Mar-2012, version 1.0, Stable]
OCaml bindings for the Linux libaio library for asynchronous read/write operations.
Authors: Sylvain Le Gall and Goswin von Brederlow.
Bindings with C libraries
OCaml-dbus [12-Dec-2006, version 0.01, Alpha]
Bindings to dbus. This is an alpha release (few memory leaks, missing some proper finalize function, and maybe segfault lurking), and the library is quite big so not everything is wrapped. However it should works for basic use, and the test program should be enough to get to know how to use it.
Author: Vincent Hanquez.
Bindings with C libraries
OCaml-event [17-Feb-2005, version 0.5.0]
Ocaml bindings for the libevent API. The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.
Bindings with C libraries
ocaml-winsvc [21-May-2012, version 0.0.1, Development code]
The library to make OCaml program act as a Windows service.
Author: ygrek.