Communications and networking
Liber(ator)
[20-Dec-2002, version
2.0.2,
Stable]
Liberator is the unix guru's cli to the Freenet network, inserting and requesting easily and efficiently.
Marionnet
[08-Feb-2011, version
0.90.6,
Stable]

Marionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup. Only a single, possibly even non-networked GNU/Linux host machine is required to simulate a whole Ethernet network complete with computers, routers, hubs, switchs, cables, and more.
Support is also provided for integrating the virtual network with the physical host network.
As Marionnet is meant to be used also by inexperienced people, it features a very intuitive graphical user interface.
WWW/HTTP
Cocanwiki
[01-Apr-2005, version
1.3.11,
Stable]
A wiki in OCaml.
Geneweb
[09-Aug-2001, version
4.09,
Stable]

A genealogy software with a Web interface. It can be used off-line or as a Web service.
Monitor
[29-May-2006, version
0.3,
Beta]
This tool allows you to monitor one or more web sites (or other
resources) by regularly doing tests on them. A test consists of
grepping a resource (an HTML page fetched by URL, or the output of an
arbitrary command) using a boolean combination of Perl-compatible
regular expressions. On failure, a mail is sent to a list of admins.
Includes a Debian package and a flexible configuration file syntax.
RPC
OCaml-bitcoin
[07-Nov-2012, version
1.0,
Stable]
OCaml-bitcoin is a library offering an OCaml interface to the official Bitcoin client API. It works by making JSON-RPC calls over the network to a running Bitcoin daemon offering the client API.
P2P
MLDonkey
[16-Oct-2002, version
2.00,
Stable]

A linux client developed in Objective Caml for several peer-to-peer file sharing networks.
Other protocols
Gammu
[04-Jul-2011, version
0.9,
Beta]
This is a binding to libGammu, which provides abstraction layer to work with different cell phones from different vendors.
ODNS
[08-Feb-2011, version
0.3,
Beta]

ODNS is a DNS library written in Objective Caml, with an API only in Objective Caml for now (soon probably a C API as well).
kom
[07-Jul-2006, version
1.0,
Stable]

Kom stands for "Keep old mails". It imports emails in a MySQL database and provides a frontend in gtk2 to search and browse the archived emails. Some options can be used to incrementally import mails (do to it each month for example). It can also export mails stored in the database, in mbox format or one-message-per-file format, and generate some statistics.
SpamOracle
[26-Aug-2002, version
1.4,
Stable]

SpamOracle, a.k.a. "Saint Peter", is a tool to help detect and filter away "spam" (unsolicited commercial e-mail). It proceeds by statistical analysis of the words that appear in the e-mail, comparing the frequencies of words with those found in a user-provided corpus of known spam and known legitimate e-mail. The classification algorithm is based on Bayes' formula, and is described in Paul Graham's paper, A plan for spam.
Corba/COM
OCam'OLE
[17-Nov-2003, version
1.0,
Stable]
OCam'OLE is an OLE binding for OCaml. It enable you to control remote COM objects with OCaml and is provided with OLEGen, a program that generate ML/MLI static type interface from the OLE Type Libraries.
Databases
OCaml MySQL Protocol
[19-Mar-2012, version
0.4,
Beta]

Implementation of MySQL Protocol with the Bitstring library.
OCMP
[26-Sep-2011, version
0.1,
Beta]
Implementation of MySQL Protocol with the Bitstring library.
Games
Mini Gosix
[23-Mar-2009, version
1.0,
Stable]
Mini Gosix is a small program that allows you to play Gosix board game (by Pierre Canuel) against a computer opponent. There are selectable difficulty levels and GUI. Program is written in OCaml using TK widgets.
Weidu
[01-Feb-2006, version
188,
Development code]


WeiDU is a dialogue compiler, string patcher, script and text file extender for Infinity Engine games.
General purpose libraries
Libml
[08-Apr-2004, version
alpha,
Alpha]
Machine Learning Library, a library containing structures and
algorithms, simply usable from most of common languages.
Missinglib
[02-Jul-2004, version
0.4.1,
Beta]

A collection of various utilities for OCaml.
Numeric computation
l-bfgs
[04-Jul-2011, version
0.5,
Beta]
L-BFGS is a limited-memory quasi-Newton code for bound-constrained optimization. It is a binding to http://users.eecs.northwestern.edu/~nocedal/lbfgsb.html
ocaml-glpk
[26-Sep-2005, version
0.1.3,
Beta]
Bindings to GLPK (GNU Linear Programming Kit) which is a package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems.
Lexing and parsing
Config_file
[14-Jan-2011, version
1.0,
Stable]
This library allows one to save configuration parameters (basic types, lists,
user defined, etc.) into a file and load them. The configuration file is human
readable, structured and allow (* *) comments.
Ragel
[04-Jul-2011, version
6.7,
Stable]

Ragel compiles executable finite state machines from regular languages. Ragel targets C, C++, Objective-C, D, Java and Ruby. Ragel state machines can not only recognize byte sequences as regular expression machines do, but can also execute code at arbitrary points in the recognition of a regular language. Code embedding is done using inline operators that do not disrupt the regular language syntax.
Yacclib
[01-Dec-2005, version
0.4,
Beta]
Yacclib is a small OCaml library to parse and print OCamlyacc .mly files. It can also print dot graphs from these files. It comes with a graphical editor for .mly files.
Date and time
Wyrd
[03-Mar-2008, version
1.4.4,
Stable]

Wyrd is a curses front-end for Remind, a powerful calendar and alarm
application. The display features a scrollable day calendar suitable for
visualizing your schedule at a glance. Wyrd integrates with an external
editor of your choice to make manual editing of reminder files more
efficient. Other features include significant configurability and
Mutt-like interface design.
Data structures
GrabBag
[12-Jan-2004,
Development code]
A collection datastructure. Unordered insertion, uniformly random removal.
Trie
[09-Aug-2001,
Beta]
Implementation of tries (maps over lists).
Cryptography
Fiat-Shamir-ZKP
[25-Aug-2010, version
1.0,
Stable]
An implementation of Fiat and Shamir's zero-knowledge network authentication protocol
Languages interfaces
Confluence
[25-Mar-2004, version
0.9,
Beta]


A powerful logic design language that combines the dataflow and component-based methodologies of HDL with the expressiveness of modern functional programming.
Multimedia
Audio
Ensemble Juke Box
[23-Aug-2002, version
0.9,
Beta]

A distributed audio application designed to exchange high-quality audio data bewteen users on local area networks.
Liquidsoap
[11-Mar-2010, version
0.9.2-2,
Stable]

Savonet is a set of open-source developments around audio stream generation (ogg/mp3/...), and particularly web-radios using Icecast. It is written in OCaml.
The heart, liquidsoap, is a very powerful and flexible streaming language, abstracting over format, protocol, stream generation, manipulation and output. Allowing arbitrarily deep-nested composition of streams and easy extensibility, it gives you more power than you need for creating an original web-radio. But liquidsoap is still very light and easy to use, in the Unix tradition of many simple strong components working together.
3D graphics
Berto
[28-Feb-2011, version
0.1.1,
Alpha]
BERTO is an experimental ray tracer implemented in the Objective-Caml programming language. In this project
emphasis is put on physically based approximations and functional programming style.
Binkhop
[30-Apr-2008, version
0.01,
Beta]
Binkohp is a little game inspired by the Mah-jong and extended to 3D.
Glome
[12-Jan-2007, version
0.2,
Alpha]
An experimental ray tracer using LablGL.
2D graphics
Bindings for Chipmunk
[30-Apr-2008, version
0.01,
Stable]
Chipmunk is a rigid body physics library, designed for
2D video games. It is intended to be fast, numerically
stable, and easy to use.
dispimg
[28-Apr-2004, version
1.0.0,
Beta]
Exceedingly simple, lightweight, image viewer, using lablgtk2.
ImageMagick Binding for OCaml
[09-Dec-2005, version
0.15,
Beta]
An interface to the library of ImageMagick.
Pocengine
[14-Mar-2005, version
0.2.0,
Beta]

A game engine to help creating more games more easily.
The engine is written mainly in Ocaml with some XML and LUA.
Programming languages
oc-FP
[17-Nov-2003,
Beta]

An OCAML implementation of John Backus' FP system.
Program analysis
JavaLib and Sawja
[08-Oct-2012, version
2.2.2/1.4,
Stable]


manipulate, and generate valid .class files.Sawja is a library relying on Javalib to provide a high level representation of Java bytecode programs. Its name stands for Static Analysis Workshop for Java. Whereas Javalib is dedicated to isolated classes, Sawja handles bytecode programs with their class hierarchy and control flow algorithms. Moreover, Sawja provides some stackless intermediate representations of code. The transformation algorithm, common to these representations, has been formalized and proved to be semantics-preserving.An Eclipse plugin for Sawja analyses is also available: it allows developers to add an analysis in Eclipse without requiring any additional Java code generation.
OCaml Metrics
[02-Jun-2009, version
0.51,
Beta]
OCaml Metrics is a simple OCaml code analysis tool. It can compute some metrics of functions and modules: cyclomatic complexity, the number of lines of code, Halstead complexity measures (difficulty, volume and effort) and Maintainability Index. OCaml Metrics generates reports in three formats: HTML, simple XML or plain text.
This allows developers to find parts of their projects which need refactoring in order to keep the projects easily maintainable.
Oug
[01-Jul-2010, version
2.0-alpha,
Stable]

Oug is a code analysis tool building reference graphs from OCaml code, that is graphs representing which elements (value, module, class, ...) reference which elements.
It comes with the Ouglib library to be able to embed the analyzer in other OCaml applications.
From the graph, various outputs can be obtained: list of elements not referenced anywhere (useless elements and so potential dead code), various graphiz graphs, ...
Why
[29-Sep-2003, version
1.42,
Stable]

Why is a software verification tool.
Why aims at being a verification conditions generator (VCG) back-end for other verification tools. It provides a powerful input language including higher-order functions, polymorphism, references, arrays and exceptions. It generates proof obligations for many systems: the proof assistants Coq, PVS, HOL Light, Mizar and the decision procedures haRVey and Simplify.
Yacfe
[03-Nov-2008, version
0.2,
Beta]
Yet Another C/C++
Front-End, which is an OCaml API to write style-preserving source-to-source
transformations such as refactorings on C or C++ source code.
Interpreters
McCarthy
[21-Feb-2006,
Beta]

McCarthy is a simple, first-order functional programming language. The interpreter of this language is also called McCarthy. McCarthy is Turing-complete i.e. it can compute all Turing-computable functions on the integers. It is not suitable for general purpose programming as it offers only an elementary subset of the features found in general purpose programming languages, but it can serve as a model of computation.
Nnjoy
[07-Nov-2005, version
0.2,
Beta]
NJoy is a variant of the concatenative programming language Joy The main difference is that it is enriched with an easy to module system with optionally private declarations.
Only a part of the standard library of Joy is implemented. The interpreter is easy to use, but the builtin functions are poorly documented. The performance of the interpreter (natively compiled and stack traceback switched off) is on par with optimized C implementation of Joy.
Compilers
Combinator Engine
[26-Sep-2002,
Beta]
A collection of the author's projects on combinator-based implementations of functional languages.
Dynamic Caml
[16-May-2002, version
0.2,
Alpha]

Dynamic Caml is a high-level run-time code generation library for Objective Caml.
Implementation is based on an abstract polymorphic type 'a code and function eval : 'a code -> 'a that evaluates it. We introduce various constructors for the code type. All types within dynamically generated code are statically checked at programs compile time.
Fjavac
[30-Sep-2005, version
0.3.0,
Beta]
Fjavac is a Java 5 compiler front-end implemented in the functional
language OCaml. Currently the compiler can parse and pretty-print
almost all of JDK 1.4.2 and JDK 1.5.0 files (including generics,
wildcards, annotations, enumerations, static imports, for-each loops
and variable arity arguments). A full compiler (with type inference,
capture conversion and type checking) is underway.
Js_of_ocaml
[17-Dec-2012, version
1.3,
Stable]

Js_of_ocaml is a compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser.
OCaml-Java
[18-Feb-2010, version
1.4,
Beta]
The goal of the OCaml-Java project is to allow seamless integration of
OCaml and Java.
Schoca
[26-Oct-2004, version
0.2.3,
Beta]

Schoca is an implementation of the Scheme language. The primary purpose of Schoca is the use as an embedded extension language in OCaml applications.
Publishing
Bibgrep
[09-Feb-2004, version
0.51,
Beta]
Bibgrep indexes and searches BibTex files for entries matching a given query. Its usage is similar to the command ``grep'' and the queries uses a Google-like syntax.
Bibtex2html
[01-Jan-2004, version
0.69,
Stable]

bibtex2html is a collection of tools for translating from BibTeX to HTML. They allow to produce, from a set of bibliography files in BibTeX format, a bibliography in HTML format.
Blahcaml
[18-Feb-2010, version
2.0,
Stable]
Blahcaml provides basic Ocaml bindings to the Blahtex library. Blahtex is written in C++, and aims at the conversion of TeX equations into MathML.
Camlhilight
[18-Feb-2010, version
1.0,
Beta]

Camlhighlight provides syntax highlighting and pretty-printing facilities for displaying code samples in Ocsigen applications. The library works by parsing the output of Highlight, a widely available application supporting the most common programming and markup languages.
CCSS
[11-Mar-2010, version
1.1,
Stable]

CCSS is a preprocessor/pretty-printer for CSS (Cascading Style Sheets). It extends the CSS language with support for declaration of variables and basic arithmetic operations (addition, subtraction, multiplication, division). The programme is supposed to be used as a filter: it reads the CSS source from stdin and outputs its result on stdout.
GikiWiki
[17-Feb-2005,
Beta]
GikiWiki is a minimalist wiki in OCaml.
Stog
[20-Mar-2013, version
0.8.0,
Beta]

Stog is a kind of Jekyll in OCaml: It is a static web site generator, able to handle blog posts as well as regular pages.
Science
Polygen
[14-Oct-2003, version
1.0pre]

PolyGen is a program for generating random sentences according to a grammar definition, that is following custom syntactical and lexical rules.
Timbuk
[05-Apr-2002, version
2.0,
Stable]
Timbuk is a collection of tools for achieving proofs of reachability over Term Rewriting Systems and for manipulating Tree Automata (bottom-up non-deterministic finite tree automata).
Physics
nmag
[22-Nov-2007, version
0.1beta,
Beta]

nmag is a micromagnetic simulation package based on the general purpose multi-physics library nsim. It is developed using Python and OCaml and interfaces both.
Maths and Logic
Bedwyr
[06-Nov-2006, version
1.0,
Stable]

Bedwyr is an extended logic programming language that allows
model-checking directly on syntactic expressions possibly containing
bindings.
We believe that it's an interesting tool for computer scientists, as
it allows simple reasoning on declarative specifications, with several
good examples, notably bisimulation checking for the pi-calculus.
Other examples include type systems, games, logics, etc.
DrGeocaml
[29-Apr-2005, version
2004-05-07,
Beta]

A dynamic geometry software using the Gtk toolkit. Large use of the
DrawingArea widget.
GeOCaml
[11-Feb-2003, version
0.1]
A tool allowing to handle easily euclidian geometry.
HHMM library and designer
[16-Sep-2005, version
0.1.0,
Beta]
Hhl is a library for Hidden Markov Models (HMM) and Hierarchical HMMs (HHMMs) in Ocaml. Both are probabilistic sequence models. Hhd is a designer that allows to design by hand models and save them quickly.
Link
[16-Sep-2002,
Alpha]
A theorem prover for Multiplicative Linear Logics based on PROOF NETS Construction.
mcmc-ocaml
[14-Apr-2011,
Development code]
A library for Markov-chain Monte Carlo
computations in OCaml.
MetaPRL
[16-Feb-2004]


The MetaPRL system combines the properties of an interactive LCF-style tactic-based proof assistant, a logical framework, a logical programming environment, and a formal methods programming toolkit.
OCaml-R
[11-Feb-2010, version
0.2,
Beta]

OCaml-R provides bindings to the R math library and the R library usable to embed R in your application.
PsiLAB
[02-Nov-2001, version
2.0,
Stable]

Scientific and numerical research environment.
Linguistics
Mana
[23-May-2005, version
0.0.2,
Alpha]
Mana is a Japanese input engine, which converts phonetic
representation to proper written forms. Mana models Japanese language
as a HMM (Hidden Markovian Model), and its output is quite natural
even for a long sentence. In addition to Japanese, mana can be used
for Chinese once we have a necessary data.
Cryptography
SKS
[12-Mar-2003, version
1.0.7,
Beta]

SKS is a new OpenPGP keyserver whose goal is to provide easy to deploy, decentralized, and highly reliable synchronization. That means that a key submitted to one SKS server will quickly be distributed to all key servers, and even wildly out-of-date servers, or servers that experience spotty connectivity, can fully synchronize with rest of the system.
Biology
Camlspikes
[05-May-2009,
Development code]
Library for the (possibly distributed) simulation of networks of spiking neurons, with an emphasis on the quick and easy implementation of one's own neuron or synapse model.
Software development
caml-get
[11-May-2006, version
0.7,
Development code]


A tool to distribute pieces of OCaml code in a way similar to apt-get.
Testing
Bisect
[07-Nov-2012, version
1.3,
Stable]
Bisect is a coverage tool for the Objective Caml language. It is a camlp4-based tool that allows to instrument your application before running tests. After application execution, it is possible to generate a report in HTML format that is the replica of the application source code annotated with code coverage information.
Kaputt
[30-Aug-2012, version
1.2,
Stable]
Kaputt is a testing tool for the Objective Caml language.
Language extensions
CamlTemplate
[31-May-2005, version
1.0,
Stable]


A small template processor library for Objective Caml. It can be used to generate web pages, scripts, SQL queries, XML documents and other sorts of text files.
Hashtbl syntax extension
[30-Jun-2003,
Development code]
Camlp4 syntax extension to get more {easy,perlish} usage of Hashtbl module hash tables.
Editor modes
ocamlglobaltags
[15-Jun-2009, version
1.0,
Stable]
A source code tagger for OCaml that can be plugged in to GNU Global's tag set up.
taggage
[26-Aug-2003, version
1.1,
Beta]
Vim tag file generation for OCaml.
Taglet
[27-Aug-2003, version
1.3,
Stable]
OCaml tag file generator.
tuareg imenu
[09-May-2002,
Stable]
Tuareg imenu is an extesion for Emacs of the tuareg mode (it do not work under XEmacs). It help to have an global visoin of you code
Vim support for .annot files
[06-Oct-2003,
Stable]
A ViM extension that is able to parse .annot files and
print the type of an highlighted (visual mode) part of an ocaml source
file.
Documentation generation
Argot
[16-Aug-2012, version
1.1,
Beta]

Argot is an enhanced HTML generator for the ocamldoc tool of the Objective Caml language. It provides additional styles, additional tags, and support for tables.
caml2html
[26-Nov-2002,
Stable]
A tool to create hilighted html pages from OCaml files (.ml, .mli, .mll and .mly).
Caml2tex
[08-Jun-2005,
Stable]
An application that produces LaTeX2e code from caml (OCaml, Caml light) source files.
DocCHM
[19-Mar-2003,
Stable]
DocCHM is a CHM generator for OCamlDoc. It enable you to generate a CHM file ( Windows CompressedHTML Help file ) instead of the standard HTML output. It automaticaly generate the index and the hyperlinks to upper module, types, etc. You can then quickly browse the documentation, and search index by name.
Highlight
[28-Mar-2007, version
2.4.8,
Stable]

Highlight converts source code to formatted text with syntax highlighting. Features include
coloured output in HTML, XHTML, RTF, TeX, LaTeX and XML format; Support for 120+ programming languages; include 40 colour themes; platform independent; customizable and easy to use. OCaml is also supported.
Odoc_xref
[23-Jan-2013, version
4.00,
Stable]

Custom ocamldoc html generator with the capability to cross-reference material from libraries.
Development environments
Mascot
[30-Aug-2012, version
1.0,
Stable]

Mascot is a style-checker for Objective Caml sources. It provides checks in various categories: code, documentation, interface, metrics, and typography. The goal of the tool is to allow a (team of) developer(s) to enforce style properties over a source codebase for greater coherency and style uniformity. The tool is highly customizable, allowing one to choose the checks to perform, as well as exceptions to those checks in given files. Moreover, a plugin system allows the developer to add its own checks, and output modes. Bundled output mode range from bare text to CheckStyle- and JDepend-compatible XML file in order to allow integration with Hudson.
OCaml plugin for the Netbeans IDE
[27-Jul-2009,
Development code]

This plugin extends the support of NetBeans IDE for projects written in Objective Caml Language.
OCamlEditor
[21-Feb-2011, version
1.6.0,
Alpha]
OCamlEditor is a source code editor and build tool for OCaml written in OCaml+LablGTK working under Windows.
TypeRex
[19-Mar-2012, version
1.0.0,
Beta]

OCaml development environment, developed by OCamlPro and Inria Saclay.
This version of TypeRex only integrates with Emacs and brings a
collection of new features that programmers expect from a modern IDE.
Next versions will target more editors.
WOWcamldebug
[20-Oct-2003, version
0.2,
Beta]

WOWcamldebug is a front end that permits to use the OCaml debugger with (g)vim. You can run it as you usually run ocamldebug and it will execute both the ocamldebugger itself, permitting usual interaction, and a gvim window which will be kept in sync with the current debugging position. The current debugging line is highlighted and the cursor is positioned at the current event position on that line.
Xcode plug-in for OCaml
[26-Sep-2005,
Beta]
A plugin for integrating OCaml in Xcode. At this time, it's still a beta version but it now works on simple tasks like syntax coloration, creation of a native ocaml target, and adding .m files or .cma static libraries to the target, integration of ocamllex and ocamlyacc, integration into the Xcode build system, error window.
yypkg
[08-Oct-2012, version
1.6.0,
Stable]

YYPkg is a small, fast, platform-agnostic package manager. It can be used to manage any directory. It is built to help cross-compilation setups and it works both for and on Windows.
Debugging
Vprint
[24-Aug-2007, version
0.01,
Alpha]

A runtime value printer for OCaml, extremely experimental at the moment, use at your own risk.
Code generators
Nickel
[10-Sep-2007, version
1.0-alpha,
Alpha]

Bridge/Bindings generator for Java/Objective Caml integration.
Build tools
Automli
[07-Jan-2004, version
0.4,
Beta]
Automli is a small program for O'Caml programmers which automatically generates MLI files from ML files and a specification of which functions, types etc. to export or hide.
Katmake
[04-Mar-2003, version
0.7,
Beta]

Katmake is an GNU automake-like utility for the OCAML language.
It is designed for generating Makefile for OCAML language. You give it a `Makefile.am' describing the project as input and it produces a Makefile. This Makefile is able to build all the project, to perform or to remove the installation, to build the distribution and to remove temporaries files.
Mleternal
[04-Jul-2011, version
0.2,
Beta]

Incrementally rebuild OCaml programs as source code evolves
ocamlbuild-plus
[30-Nov-2009, version
0.99,
Beta]
Ocamlbuild-plus is an extension of ocamlbuild that enables to use
findlib packages in its build plugins.
OMake
[08-Aug-2007, version
0.9.8.5,
Stable]


OMake is a build system designed especially for large projects. It uses a syntax similar to make utilies you may have used, but with enhancements.
Yet another markup language preprocessor
[09-Aug-2001,
Stable]
Yamlpp is a very simple HTML preprocessor inspired by Nicolas Thiery's htmlpp.
System
System programming
ocaml-duppy
[10-Mar-2008, version
0.1.0,
Beta]
An advanced scheduler. The basics of this scheduler is to implement a wrapper around Unix.select 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.
virt-mem
[18-Aug-2008, version
0.2.9,
Alpha]

These are a collection of monitoring and management tools for virtual machines.
System files
apalogretrieve
[08-Jan-2008, version
0.9.6,
Beta]

Apalogretrieve is a stand-alone program that provides a SQL-like interface for Apache-Logfile-Queries.
Hardware
OCaml-Lirc
[03-Mar-2003, version
0.1.0,
Beta]
OCaml bindings for the LIRC (Linux Infrared Remote Control) library.
File systems and system administration
BDBFS
[18-Dec-2002, version
0.3,
Beta]
BDBFS is a portable, user-level NFS fileserver implemented in OCaml. BDBFS stands for Berkeley DataBase File System: it stores files, metadata (directories, inodes, the superblock) as key:value pairs using the Berkeley Database (Berkeley DB) library.
cfind
[19-Apr-2005, version
0.0.0,
Development code]
cfind (Content FINDer) is a UNIX tool that provides functionality similar to that of Google Desktop from the command line.
libguestfs
[14-Apr-2009, version
0.9,
Beta]
libguestfs is a library for accessing and modifying guest disk images. Amongst the things this is good for: making batch configuration changes to guests, getting disk used/free statistics (see also: virt-df), migrating between virtualization systems (see also: virt-p2v), performing partial backups, performing partial guest clones, cloning guests and changing registry/UUID/hostname info, and much else besides.
libguestfs uses Linux kernel and qemu code, and can access any type of guest filesystem that Linux and qemu can, including but not limited to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition schemes, qcow, qcow2, vmdk.
libguestfs provides ways to enumerate guest storage (eg. partitions, LVs, what filesystem is in each LV, etc.). It can also run commands in the context of the guest. Also you can mount guest filesystems on the host (requires root privs and NFS).
libguestfs is a library that can be linked with C and C++ management programs (or management programs written in OCaml, Perl or Python). You can also use it from shell scripts or the command line.
Logic File System
[09-Jul-2008, version
0.5,
Beta]


LFS is a very expressive file system coded in OCaml.
LFS enables the user to access his files through an
additionnal mountpoint, /lfs, where powerful logic queries can be
issued and navigation can be done through different dimensions, like
date, size, or extension.
LSD mount utilities
[26-Feb-2007, version
1.3,
Stable]
The LSD mount utilities allow to automate mounting of encrypted
filesystems in linux with cryptsetup and loopback devices and enable
users (not only root) to mount encrypted filesystems when appropriate
entries to /etc/fstab have been added by root.
mltree
[13-Nov-2008,
Alpha]
mltree is similar to the unix command line utility 'tree', but with some differences.
namealign
[16-Aug-2007, version
0.6,
Beta]

The program namealign renames files in a way that they are equally formatted.
It follows the same idea of character-classification as the tool pftdbns, but does not sort files into directories. Instead it renames files of the same filename-macrostructure to be equally formatted (e.g. inserting a leading 0 in a numbered part of the name).
OCamlfuse
[26-Sep-2005,
Beta]
Multithreaded binding to the fuse api.
UMLMON
[18-Oct-2005, version
1.0.1,
Stable]

Gerd Stolpmann offers UMLMON, which is an add-on product to User Mode Linux (UML) that strongly simplifies its administration. Up to now a system operator needed several weeks to develop scripts in order to deploy User Mode Linux. UMLMON is a ready-to-use solution setting standards for UML operating, especially concerning the number of features and the operational safety.
Unison
[09-Aug-2001, version
2.9.1,
Mature]


Unison is a file-synchronization tool for Unix and Windows. (It also works on OSX to some extent, but it does not yet deal with 'resource forks' correctly; more information on OSX usage can be found on the unison-users mailing list archives.) It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.
Whenjobs
[19-Mar-2012, version
0.7,
Beta]

Whenjobs is a powerful but simple cron replacement.
Two key advantages over cron are a simpler syntax for writing rules and a powerful dependency system that lets one job depend on variables set when other jobs run (allowing, for example, one job to run only when another job has finished successfully).
Distributed and parallel programming
coThreads
[18-Sep-2007, version
0.10,
Beta]

coThreads is a concurrent programming library for OCaml. It enhances the Threads library of the standard OCaml distribution in two dimensions: coThreads implements the same API of the standard Threads library on different execution engines (process, netwoker(todo)), so that a single copy of source code can be compiled and deployed to different environments without modification; coThreads is also a super set of the standard Threads library, with extra components (STM etc.), functions (spawn etc.) and features (object-level compatibility etc.).
Plasma
[05-Mar-2012, version
0.6,
Beta]


Map/Reduce and distributed filesystem.
This package contains two applications:
PlasmaFS is a distributed filesystem, Plasma MapReduce is a Map/Reduce framework on top of PlasmaFS.
STMlib
[07-Mar-2007, version
0.0.1,
Alpha]

This is a user-space implementation of STM (Software Transactional Memory)
library for OCaml. It's mainly inspired by the STM library of Haskell, with
some exceptions due to the different nature of languages and different
strategies of implementation.
User interfaces
LocalCaml
[25-May-2004, version
0.2.0,
Beta]

A message catalog system for localising text in OCaml programs.
The approach taken is partly inspired by Perl's Locale::Maketext module. In an attempt to provide the flexibility needed to adapt sentence structure and morphology to numeric parameters in messages, the library uses a general-purpose template engine, CamlTemplate as a language for writing message templates.
X
Kdialog2OCaml
[27-Feb-2006,
Beta]
To use Kdialog from OCaml.
OCaml-Xlib
[13-Nov-2008,
Alpha]
OCaml bindings for the Xlib library.Also includes GLX for OpenGL windowing.
Xdialog2Ocaml
[27-Feb-2006,
Beta]
To use Xdialog from OCaml.
Text interfaces
Cursico
[16-Apr-2008, version
080415,
Beta]
An OCaml curses editor to write coloured texts or draw things.
Graphical toolkits
Custom Tree Models for LablGTK
[06-Aug-2007, version
1.0,
Stable]

Some code to make it relatively easy to develop custom tree models using LablGTK (GTK+ 2.0 in OCaml).
This means that you can have a tree structure coded naturally in OCaml and treat it more or less directly as a tree model, instead of having to shove values into a GTree.tree_store. There are some caveats as described in the README file.
Lablgtkspell
[28-Apr-2004, version
1.0.0,
Stable]
Bindings for the GtkSpell spellchecking widget library for use with lablgtk2.
Odot
[19-Dec-2005, version
0.5,
Beta]
Odot is a small OCaml library to parse and print Graphviz dot files. It comes with an additional module defining a Lablgtk2 box to display such graphs, and handle mouse clicks on nodes.
XML
gdome2-xslt
[11-Apr-2003, version
0.0.6,
Alpha]
A C and Objective Caml library to apply XSLT stylesheets to gdome2 documents.
XML protocols
adwords API
[16-Aug-2005, version
1.0.0,
Stable]
Interface to Google Adwords API. This API offers rapid, type-safe development, command line tools for doing common Adwords operations, interactive access to the API.
SimpleSOAP
[24-May-2005, version
0.1.1,
Alpha]

SimpleSOAP is an early, experimental SOAP client for Objective CAML.
XmlRPCServer
[02-Feb-2003, version
0.1.0,
Beta]

XmlRPCServer is a server side implementation for the XmlRPC package developed by Shawn Wagner. This package provides methods to transform between OCaml data-types and their XmlRPC representation, and visa versa. In addition it provide the client side functionality which enables OCaml clients to call servers written in other languages using XmlRPC. However the current version of the package does not support writing the server side in OCaml, unless you do most of the work yourself.
XML formats
ocaml-osm-route
[03-Jun-2008,
Development code]
A quite simple program to do some basic routing over Open Streat Map maps. It parses an .osm.bz2 file, creates a compact data structure in memory (which is saved into a cache to speed up next searches), finds the OSM nodes closest to the source and goal points given as (latitude, longitude) couples, does the routing itself, prints it on the screen and saves it in .osm XML format (for example to load it into JOSM).
OCaml-TDL
[31-Mar-2004, version
0.4,
Beta]
A small OCaml library providing functions to parse and print TODO lists in XML files.
SRESI
[31-Jul-2006, version
0.12.0,
Beta]

SRESI is a smart bookmarks manager: from a list of tagged bookmarks, it can generate an exhaustive tree or a portal, where each bookmark is at every place in the hierarchy you can expect to find it, and with stupid branches absorbed back in their saner versions.
An import function is provided.
Parsers and pretty-printers
Xhtml
[09-Apr-2004,
Beta]
XHTML is a O'Caml module for creating valid XHTML 1.1 (and XHTML 1.0) documents. The validity of the pages is guaranteed by the O'Caml type system. (NB: at the time of writing, forms support was not complete, only basic forms are implemented. Image maps are also not implemented yet.)
(X)HTML
Hlins
[10-Aug-2001, version
0.39,
Beta]

Hlins is a tool to insert hypertext links into HTML documents, using a database with entries of the form "name = url".
Others
Camlserv
[24-Feb-2004, version
0.2-2,
Beta]

A web server able to execute caml applets to generate dynamic pages.
Demexp
[16-Aug-2005, version
0.6.0,
Stable]

The demexp project is a free software project (GNU GPL) that aims at
making the software needed to start the democratic experience
project. The democratic experience is a large scale project of direct
democracy. It aims at providing the tools to facilitate the expression
of all citizens, to transform this expression into decisions, and to
apply this decision.
DominoCaml
[25-Aug-2003, version
3.3,
Beta]
An OCaml GPL software aimed to explore aspects of the dominoes game.
Gocaml
[04-Mar-2002, version
1.0,
Stable]
A graphical frontend for GMP Go engines, written in ocaml.
Maple-MuPad
[23-Nov-2001,
Development code]
A small tool that may help to convert a Maple code to MuPad.
Nurpawiki
[12-Dec-2007,
Alpha]

Nurpawiki is a personal information manager (PIM) application that
combines a wiki, a to-do list and a simple scheduler to help you get
organized. It aims to ease note taking and action planning. Actions
(to-dos) are always associated with notes or plans (wiki pages).
OCaml-HTTP
[20-Oct-2010, version
0.1.4-3,
Stable]


A library inspired from perl's HTTP::Daemon that permits to write simple HTTP daemons in OCaml.
WDialog
[07-Nov-2005, version
2.1.2,
Stable]


WDialog is an advanced system to create dialog-centric web applications.'
WTimer
[24-Mar-2003, version
1.0,
Stable]
WTimer allows you (and your group) to enter time sheets, to store them into a database, and to retrieve reports of them. What can you put into a time sheet? These sheets are organized by days, and every day has several rows. The rows contain the clock time when the activity starts, when the activity ends, how long it lasts, a project identifier, and a description (free text).
Xcaml
[25-May-2004, version
1.0,
Beta]
The Application System Xcaml (AS/Xcaml) is a full-featured web-application architecture based on Xcaml, a web-oriented syntax extension of the Objective Caml language.