Recently updated contribs
Piqi
[21-Feb-2013, version
0.6.0,
Beta]
Protocol Buffers, JSON and XML serialization".
OCaml Batteries Included
[09-Jan-2013, version
2.0.0,
Stable]
Batteries Included is a candidate standard
development platform for OCaml.
OCaml-RDF
[09-Oct-2012, version
0.2,
Beta]
OCaml-RDF is an OCaml library to manipulate RDF graphs.
Moca
[18-Jun-2012, version
0.7.0,
Beta]

Mocac is a generator of construction functions for Caml concrete data types with algebraic invariants and maximal sharing facilities. Algebraic invariants are specified by using keywords denoting equational theories like commutativity and associativity. The construction functions generated by Mocac allow each equivalence class to be represented by a unique value.
Older contribs
Sexplib
[17-Apr-2012, version
7.0.5,
Stable]
Library for serializing OCaml values to and from S-expressions.
Uuidm
[19-Mar-2012, version
0.9.4,
Beta]

Uuidm is an OCaml module implementing 128 bits universally unique
identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4
(random based) according to RFC 4122.
Uuidm is made of a single, independent, module and distributed under
the new BSD license.
OCaml CSV
[04-Jul-2011, version
1.2.2,
Stable]
This library can read and write CSV files, including all extensions used by Excel - eg. quotes, newlines, 8 bit characters in fields, "0 etc.
The library comes with a handy command line tool called csvtool for handling CSV files from shell scripts.
Sam
[14-Apr-2011,
Beta]
The module Sam allows common operations on sparse associative memories according to the model introduced here: http://www.vincent-gripon.com/?p=92
Oni
[24-Nov-2010, version
1.00,
Stable]

A modular framework of Objective Caml libraries comprising general purpose utilities and functional data structures, a more flexible abstraction of the system network sockets layer than the standard library, and modules to support the development of concurrent, single-threaded network application services with a functional programming style.
Bitstring
[25-Jan-2010, version
2.0.2,
Stable]
The ocaml-bitstring project adds Erlang-style bitstrings and matching over bitstrings as a syntax extension and library for OCaml.
(This project was formerly known as "bitmatch").
You can use this module to both parse and generate binary formats, files and protocols.
Bitstring handling is added as primitives to the language, making it exceptionally simple to use and very powerful.
Ancient
[02-Jun-2009, version
0.9.0,
Beta]

Ancient is an OCaml module that allows you to use in-memory data structures which are larger than available memory and so are kept in swap. If you try this in normal OCaml code, you'll find that the machine quickly descends into thrashing as the garbage collector repeatedly iterates over swapped memory structures. This module lets you break that limitation. Of course the module doesn't work by magic :-) If your program tries to access these large structures, they still need to be swapped back in, but it is suitable for large, sparsely accessed structures.
Secondly, this module allows you to share those structures between processes. In this mode, the structures are backed by a disk file, and any process that has read/write access that disk file can map that file in and see the structures.
RES
[23-Mar-2009, version
3.1.1,
Stable]
Library for automatically resizing contiguous memory (arrays and strings).
Dum
[13-Oct-2008, version
1.0.0,
Stable]

Dum is a library for inspecting the runtime representation of arbitrary Objective Caml values.
Shared or cyclic data are detected and labelled. This guarantees that printing would always terminate. This makes it possible to print values such as closures, objects or exceptions in depth and without risk.
Vec
[25-Sep-2008, version
2.02,
Mature]

An Ocaml implementation of extensible
arrays. The implementation is functional, based on balanced trees (and on the code for Set and Map).
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).
Xsetxmap
[22-Apr-2008, version
2008-04-21,
Development code]
An unfunctorized version of Set and Map.
N-edged undirected graphs
[07-Mar-2008,
Beta]
An OCaml program that outputs the set of N-edged graphs (polynema) to a standard .dot file.
/UbiEst/
[29-Jan-2008, version
1.5,
Stable]
/UbiEst/ is intended to be a indexer, allowing *structural* and
*compound* searches into a "bunch" of documents (files). What is an
indexer ? An indexer is a program recording the occurrences of words
among documents and enable to point on them (quickly if possible). A
detailled explanation is available in the distribution, but in two or
three words...
By *structural* indexing, we mean that /UbiEst/ not only maps words
onto their locations, but also structures of the indexed documents.
By *compound* indexing, we mean that /UbiEst/ does not allow to
request to find occurrences of simple words among the indexed
document. requests can be combined by the mean of operators. By
combining requests, you not only get simple occurrences of words,
but rather /extends/ (i.e. piece of text) containing information
fitting you global request.
/UbiEst/ is developped in Objective Caml and a
graphical user interface based on Gtk (Lablgtk) is available.
SDFlow
[16-Oct-2007, version
0.01,
Alpha]

A high-level combinatorial dataflow programming library based upon destructive lazy streams.
Weaktbl
[15-Oct-2007, version
0.02,
Beta]

A weak hash table library for OCaml, with an interface compatible with the standard Hashtbl library.
Fiblib
[25-Jul-2007, version
0.1,
Alpha]
An efficient, imperative Fibonacci heap library, based on the pseudocode of Cormen, Leiserson, Rivest, and Stein. Aims to be practical and elegant.
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.
Bindlib
[05-Oct-2006, version
3.0,
Stable]

Bindlib is a library and a camlp4 syntax extension for the OCaml language. It proposes a set of tools to manage data structures with bound and free variables. It includes fast substitution and management of variables names including renaming.
Cis
[29-May-2006,
Beta]
This module implements compact integer sets, represented as a (custom) list of integer intervals. Usual set operations are provided. The advantage compared to ordered lists is that the actual size may be smaller than the cardinal of a set when many elements are contiguous. Most set operations are linear w.r.t. the size of the structure, not the cardinal of the set.
Col
[27-Apr-2006,
Beta]

This package provides a syntax extension for easier manipulation of flat records, objects or tuples and conversions from/to CSV files for your favorite spreadsheet or plotting program.
HashSet
[08-Mar-2006,
Beta]
HashSet is a hashed set library for Objective Caml.
Buckets are ordered and the first element of a bucket is kept in a
separate array, with occupation controlled by a bitvector.
LinkedHashtbl
[07-Sep-2004, version
2004-08-27,
Beta]
A wrapper for the Objective Caml Hashtbl module that uses a Linked List to preserve the order in which the hash elements are added. It's similar in purpose to the Tie::IxHash module for Perl.
Dllist
[07-Sep-2004, version
2004-08-27,
Beta]
A mutable, circular, doubly linked list library.
OGPF
[18-Mar-2004,
Alpha]
OCaml Genetic Programming Framework.
ocamlgraph
[01-Mar-2004, version
1.3,
Stable]

A graph library. Provides several graph data structures and several graph algorithms. Algorithms are written independently of the graph data structure (using functors).
GrabBag
[12-Jan-2004,
Development code]
A collection datastructure. Unordered insertion, uniformly random removal.
Cours algorithmes et structures de données
[19-Dec-2003,
Stable]
Lecture notes about data structure in Objective Caml (in French).
Persil
[03-Nov-2003, version
0.2.1,
Beta]

A persistent library for Ocaml. PersiL could help you to handle persistent data in your application (data which survive the end of the program).
Hashtbl syntax extension
[30-Jun-2003,
Development code]
Camlp4 syntax extension to get more {easy,perlish} usage of Hashtbl module hash tables.
heap
[21-Feb-2003]
Heaps, imperative and functional implementations.
Lightweight records
[12-Nov-2002,
Development code]
An extension with camlp4 that allows one to use lightweight records in OCaml.
Baire
[09-Sep-2002, version
0.0.0,
Alpha]

A data structures library.
omlib
[17-Jun-2002,
Beta]
A small library to demonstrate monadic programming in OCaml.
Recursive
[04-Jun-2002, version
2002-08-08,
Beta]
Recursive is a tiny OCaml module that helps the programmer to manipulate cyclic structures (such as recursive types or finite automata) with maximal sharing and unique representation.
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).
Splay trees
[10-Aug-2001, version
0.4.2,
Beta]
Binary trees where often accessed items tend to be near the root.
Trie
[09-Aug-2001,
Beta]
Implementation of tries (maps over lists).
Purely Functional Data Structures
[09-Aug-2001, version
1.0.6,
Stable]
Okasaki's Purely Functional Datastructures in OCaml.
Patricia trees
[09-Aug-2001,
Stable]
Efficient sets and maps over integers, from a paper by Chris Okasaki.
POMAP
[09-Aug-2001, version
2.9.8,
Stable]
Library for maintaining partially ordered maps.
Bitv
[09-Aug-2001, version
0.5,
Beta]

A bit vectors library.