Version française
Home     About     Download     Resources     Contact us    

The Caml Hump: Open Source :: LGPL

Applications written in Caml

Applications written in Caml
GlSurf [25-Aug-2003, version 2.0, Beta] Has a documentation
A program (similar to Surf) to draw surfaces from their implicit equations.

Web application

Web application
O'Browser [20-Apr-2010, version 1.1, Stable] Has a tutorial
O'Browser is an implementation of the OCaml virtual machine in JavaScript, designed to run in web browsers. It features a runtime library compatible with OCaml's standard one (including OOP and concurrent threads) and bindings of some JavaScript functions to manipulate the DOM primitives.
Author: Benjamin Canou.
Web application
Ocsigen [19-Mar-2012, version 2.0.4, Stable] Has a documentationHas a tutorial
Ocsigen is a Web server, with a programming framework providing a new way to create dynamic Web sites using Objective Caml. Its goal is to offer an alternative to Apache/PHP, based on cutting-edge technologies coming from research in programming languages.
Author: Vincent Balat.

Scientific software

Scientific software
FaCiLe [27-Sep-2004, version 1.1, Stable] Has a Godi packageHas a documentation
A library for constraint programming on finite domains.
Scientific software
Frama-C [25-Aug-2010, version Boron-20100401, Beta]
Frama-C is a suite of tools dedicated to the analysis of the source code of software written in C.
Author: Frama-C Development team (CEA LIST and INRIA Saclay).
Scientific software
HSeq [15-Jun-2006, Alpha]
A simple tactical theorem prover for higher-order logic.
Author: Matthew Wahab.
Scientific software
Mlpost [20-Apr-2010, version 0.8.0, Beta] Has a documentation
An Ocaml interface to MetaPost, a powerful software to draw pictures to be embedded in LaTeX documents.
Scientific software
Texexpand [29-Aug-2011, Development code]
This project contains an OCaml re-implementation of some popular utilities like texexpand and delatex that were commonplace in the late 1990’s on all TeX/LaTeX user machines.
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.

Others

Others
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.
Authors: Eric Norige and Travis Bemann.

Major applications

Major applications
Active-DVI [29-Aug-2011, version 1.10.0, Stable] Has a documentation
Active-DVI is a Unix-platform DVI previewer and a programmable presenter for slides written in LaTeX.
Major applications
Coq [18-Oct-2010, version 8.3, Stable] Has a documentationHas a tutorial
A proof assistant.

Camlp4 extensions

Camlp4 extensions
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.
Camlp4 extensions
Delimited overloading [09-Oct-2012, version 0.8.15, Beta] Has a documentation
Delimited overloading is a syntax extension to ease the writing of efficient arithmetic expressions in OCaml.
Camlp4 extensions
Dyn [05-Nov-2009, version alpha01, Development code]
Dyn is a camlp4 syntax extension for Ocaml that scaffolds injection and projection functions to an from dynamicaly typed values (`dyn`), reifies ocaml type representation in run-time inspectable values (`dtd`), provides camlp4 quotations/antiquotations to work with `dyn`s and `dtd`s. When the `pa_dyn` syntax is loaded it adds a new `type_conv` type processor that can be called by appending `with dyn` after a type definition (e.g. `type t = ... with dyn`) three values are defined: val t_of_dyn : Dyn.Data.t -> t, val dyn_of_t : t -> Dyn.Data.t, val dtd_of_t : Dyn.DTD.t
Author: Till Varoquaux.
Camlp4 extensions
IoXML [01-Feb-2002, version 0.6, Beta]
IoXML allows defining XML parsers and pretty-printers directly from data type definitions.
Camlp4 extensions
Ochra [02-Nov-2004, version 0.1, Beta] Has a documentation
Ochra is a syntax extension for OCaml, extending the language with explicit support for programming using an Object-Oriented Reference Attributed Grammar (RAG) formalism.
Author: Martin Sandin.
Camlp4 extensions
pa_breakcont [31-Mar-2008, version 0.12, Beta]
This project makes use of the Ocaml release 3.10 macro system to add break and continue statements to for and while loops. The macros implement these statements as exceptions. Since the introduction of the two try/with blocks corresponding (each) to the (separate) break and continue exceptions includes some overhead at run time, the macro adds these try/with blocks sparingly... only if the programmer uses the corresponding statement. For example, the continue statements adds the most overhead since it causes a try/with block to be inserted within a loop. However, code that contains no continue statement will be unaffected by the macro.
Camlp4 extensions
pa_monad [10-Dec-2008, version 6.0, Stable]
Camlp4 extension for monadic expressions in OCaml.
Authors: Oleg Kiselyov, Lydia E. van Dijk, and Jacques Carette.
Camlp4 extensions
pa_where [18-Aug-2008, version 0.4, Beta] Has a documentation
A camlp4 extension enabling backward declarations. The "where" keyword, available in the revised syntax, and one of the truly missed Caml-light friends, is back.
Camlp4 extensions
Regexp-OCaml [24-Mar-2003, version 0.9.3, Beta]
Regexp/OCaml provides convenient syntax sugar for regular expression match for strings using PCRE/OCaml library.
Author: Yukata Oiwa.

Development tools

Development tools
Aurochs [03-Dec-2007, version v60, Beta]
Aurochs is a parser generator that uses the parse expression grammar (PEG) or "packrat" approach. It takes a grammar in a BNF-like notation (a .peg file) and produces bytecode (a .nog file) for a stack automaton. This bytecode is later interpreted on the input to parse using a C library. Bindings are given for Ocaml and Java. Aurochs can also directly produce C or Ocaml code for parsing. It is in use at Exalead where we use it daily to parse real-world Javascript.
Author: Berke Durak.
Development tools
Cameleon [14-Jan-2011, version 1.9.21, Stable] Has a documentation
Development environment for Objective Caml programmers, written in GTK2. It includes an OCaml-scriptable text-editor, a graphical toplevel, a documentation browser, and other useful tools and libs.
Development tools
csml [16-Sep-2008, version 0.1, Beta] Has a documentation
A system to interface OCaml and .Net/C#. CSML makes it possible to leverage existing .Net components from OCaml, to expose OCaml libraries into the .Net world and more generally to write mixed OCaml/.Net applications. With CSML, developers write scripts that describe interactions between the two worlds (OCaml and .Net). It is possible to bind functions, static or instance methods, properties, to pass opaque pointers from one heap to the other, or to copy values structurally. CSML preserves type safety properties from the two worlds, it propagates exceptions and first-class functions in a sound way and it deals automatically with memory management.
Author: Alain Frisch.
Development tools
headache [11-Feb-2004, version 1.03, Stable] Has a Godi packageHas a documentation
A simple and lightweight tool for managing headers in source code files.
Author: Vincent Simonet.
Development tools
Js_of_ocaml [17-Dec-2012, version 1.3, Stable] Has a documentation
Js_of_ocaml is a compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser.
Development tools
Jsure [11-Mar-2008, version 1.0.1, Stable] Has a documentation
Jsure is a "lint" for Javascript, which is also known as Ecmascript. It checks syntax and a little bit of semantics.
Author: Berke Durak.
Development tools
Oasis [02-Jul-2012, version 0.3, Beta] Has a documentation
OASIS can integrate configure, build and install systems in their projects. It helps to create standard entry points in the source code build system and allows external tools to analyse projects easily. It is inspired by Cabal which is the same kind of tool for Haskell.
Author: Sylvain Le Gall.
Development tools
OCamake [19-Sep-2002, Stable] Has a documentation
An automatic compiler for the OCaml language (has special features for integration under MS Visual Studio).
Development tools
OCaml Batteries Included [09-Jan-2013, version 2.0.0, Stable]
Batteries Included is a candidate standard development platform for OCaml.
Authors: Bluestorm, Edgar Friendly, and David Teller.
Development tools
OCaml-data-notation [04-Jul-2011, version 0.0.5, Beta]
Ocaml-data-notation, aka odn, dumps OCaml data in OCaml notation. It is inspired by JSON. It uses type-conv to create data dumper functions, you just have to add "with odn" in the type definition. There is no load scheme, since it is used to dump datastructure into OCaml scripts. It is mainly a code generator helper.
Author: Sylvain Le Gall.
Development tools
ocaml-expect [18-Jun-2012, version 0.0.3, Beta]
This is a simple implementation of `expect` to help building unitary testing of interactive program. You can match the question using a regular expression or a timeout. See the Expect manual for more information: http://expect.nist.gov/
Author: Sylvain Le Gall.
Development tools
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.
Author: Xavier Clerc.
Development tools
OCamlify [20-Apr-2010, version 0.0.1, Development code]
OCamlify allow to create OCaml source code by including whole file into OCaml string or string list. The code produced can be compiled as a standard OCaml file. It allows embedding external resources as OCaml code.
Author: Sylvain Le Gall.
Development tools
OCamljs [07-Sep-2010, version 0.3, Beta] Has a documentation
Ocamljs compiles OCaml to Javascript. It uses the standard OCaml front-end, so the full language is supported (the object system is partially supported, should be fixed soon). Included are several libraries for Web programming, as well as a library for working with Javascript via Camlp4. It works with orpc for RPC over HTTP, and with froc for functional reactive browser programming.
Author: Jake Donham.
Development tools
OCamlMakefile [23-Oct-2012, version 6.37.0, Stable] Has a Godi packageHas a documentation
Automated compilation of complex OCAML-projects.
Author: Markus Mottl.
Development tools
OCamlnat [22-Nov-2011, version 0.1.0, Beta]
The ocamlnat project provides a new native code OCaml toplevel ocamlnat, which is mostly compatible to the byte code toplevel ocaml, but up to 100 times faster. It is based on the optimizing native code compiler, the native runtime and an earlier prototype by Alain Frisch. It is build upon Just-In-Time techniques and currently supports Unix-like systems (i.e. Linux, BSD or Mac OS X) running on x86 or x86-64 processors. Support for additional architectures and operating systems is planned, but not yet available.
Author: Benedikt Meurer.
Development tools
OCamlP3L [02-Mar-2007, version 2.03, Stable] Has a documentation
OCamlP3l is a compiler for Caml parallel programs. The OCamlP3l programming paradigm is skeleton programming. The skeletons encapsulate basic parallel programming patterns in a well understood and structured approach. Based on P3L, the Pisa Parallel Programming Language, OCamlP3l skeleton algebra is embedded in a full-fledged functional programming language, namely Objective Caml.
Development tools
OCamlviz [08-Sep-2009, Development code] Has a documentation
The key idea of Ocamlviz is the ability to instrument an existing code, in real time, with lightweight monitoring annotations. Ocamlviz can also be used as a debugging tool.
Development tools
Ocamlweb [09-Aug-2001, version 1.0, Stable] Has a Godi packageHas a documentation
A literate programming tool for Objective Caml.
Development tools
ocsigen-bundler [09-Mar-2011, version 0.1.0, Beta]
This project helps to create self contained Ocsigen web server with its Eliom modules. It is a mean to easily deploy an Ocsigen server on a server without OCaml installed.
Author: Sylvain Le Gall.
Development tools
A sample configure.in to provide configure scripts for OCaml projects, and the associated Makefile.in.

Libraries

Libraries
perl4caml [01-Apr-2005, version 0.9.3, Beta]
Interface for calling Perl code from OCaml.

Native OCaml libraries

Native OCaml libraries
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.
Native OCaml libraries
Amble [26-Oct-2004, version 0.1, Beta] Has a tutorial
A library to help writing distributed programs. The library manages all the details relevant to process launching, channel creation, and network communication so as to let the programmer stick to the core of the problem. This allows to write programs that can be distributed on several machines in a concise way, with all the parallel aspects kept implicit (no synchronisation).
Author: Olivier Pérès.
Native OCaml libraries
Amthing [05-May-2009, Development code]
Amthing is a multi-threaded GUI library for Objective Caml.
Native OCaml libraries
Annexlib [03-Feb-2004, version 0.13.0, Beta] Has a Godi packageHas a documentation
THis library contains a lot of the routines the author find needing all the time that aren't in the standard library (Especially string searching and manipulation), and some other odds and ends that are useful at times. Highlights include wildcard globbing, lots of string searching and manipulation routines, locale support, ~user-style path expansion, and more.
Author: Shawn Wagner.
Native OCaml libraries
Archimedes [09-Oct-2012, version 0.4.15, Beta]
a high quality, platform-independent, and extensible 2D plotting library for OCaml.
Native OCaml libraries
Baire [09-Sep-2002, version 0.0.0, Alpha] Has a documentation
A data structures library.
Native OCaml libraries
Barista [08-Mar-2013, version 2.0-beta, Beta] Has a documentation
Library for Java .class file manipulation. Also a command-line [dis]assembler for Java.
Author: Xavier Clerc.
Native OCaml libraries
Bin-prot [13-May-2008, version 1.0.5, Stable]
A binary protocol generator.
Author: Markus Mottl.
Native OCaml libraries
Bitv [09-Aug-2001, version 0.5, Beta] Has a documentation
A bit vectors library.
Native OCaml libraries
Bolt [07-Nov-2012, version 1.4, Stable] Has a documentation
Bolt is a logging tool for the Objective Caml language. It is inspired by and modeled after the famous log4j logging framework for Java.
Author: Xavier Clerc.
Native OCaml libraries
BoomSMS [29-Nov-2005, version 1.0.2, Stable]
A simple interface to the commercial Boom SMS (text message sending) service.
Native OCaml libraries
Caml-inspect [20-Apr-2010, Development code]
Inspect is a small library to inspect arbitrary OCaml values and their associated object graph by either dumping them as S-expressions (with sharing and references), or by writing output in the DOT-language which can then be further processed by Graphviz (http://www.graphviz.org/).
Author: Kaspar Rohrer.
Native OCaml libraries
CamlGI [17-Feb-2005, Beta]
CamlGI is a library to enable you to write CGI and FastCGI in OCaml. It is written 100% in OCaml so should run on many platforms. The library supports multiple simultaneous connections and request multiplexing while presenting an easy to use interface.
Native OCaml libraries
Camlish [05-May-2009, version 0.03, Alpha] Has a documentation
A simple module for shell scripting in OCaml.
Author: Zheng Li.
Native OCaml libraries
Camllexer [02-Jul-2012, version 1.1, Stable]
Camllexer is an enhanced lexer for Caml dialects. The lexer has been extracted from the Camlp4 (> 3.10) lexer, which in turns was reimplemented as a derivative of the lexer from the OCaml compiler.
Native OCaml libraries
Camomile [09-Jan-2012, version 0.8.4, Beta] Has a Godi package
Camomile is a comprehensive Unicode library for OCaml. Camomile provides Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about 200 encodings, collation and locale-sensitive case mappings, and more. The library is currently designed for Unicode Standard 3.2.
Native OCaml libraries
cgi [09-Aug-2001, Stable]
A small library to write CGI in Objective Caml.
Native OCaml libraries
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.
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
Cstr [12-Feb-2003, version 0.8, Beta] Has a documentation
A full-featured charset and string library.
Author: Bruno Verlyck.
Native OCaml libraries
Dllist [07-Sep-2004, version 2004-08-27, Beta]
A mutable, circular, doubly linked list library.
Native OCaml libraries
Dum [13-Oct-2008, version 1.0.0, Stable] Has a documentation
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.
Author: Martin Jambon.
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
Ethread [03-Feb-2004, version 1.0.1, Stable] Has a documentation
The ethread library has modules for read/write locks, barriers, and a simple thread-safe message queue that interacts with Unix.select so a thread can wait for I/O or a message at the same time.
Author: Shawn Wagner.
Native OCaml libraries
Extlib [16-Aug-2012, version 1.5.3, Beta] Has a Godi packageHas a documentation
ExtLib is a project aiming at providing a complete - yet small - standard library for the OCaml programming langage. The purpose of this library is to add new functions to OCaml Standard Library modules, to modify some functions in order to get better performances or more safety (tail-recursive) but also to provide new modules which should be useful for the average OCaml programmer.
Native OCaml libraries
Froc [17-May-2010, version 0.2, Beta]
Froc is a library for function reactive programming in OCaml. The interface is similar to FrTime and FlapJax, but (of course) typed, implementing a monad of changeable values. The implementation is data-driven, using the dynamic dependency graphs of Acar et al.'s adaptive functional programming. Froc can be used with ocamljs, and with the included Froc-dom library can be used for web browser programming.
Author: Jake Donham.
Native OCaml libraries
GenePool [13-Oct-2008, Alpha] Has a documentation
GenePool is a framework for writing evolutionary optimization algorithms in OCaml. This library is not a complete solution but rather is a generic skeleton which takes care of the plumbing and nuisances of optimization. You provide GenePool with functions that give meaning to fitness and reproduction and after a specified number of generation, GenePool returns an array of the best "genomes" it evolved.
Author: Alex Rubinsteyn.
Native OCaml libraries
GraphPS [31-May-2002, version 1.0, Stable] Has a documentation
GraphPS is an Objective Caml module that allows generating PostScript graphic. Its interface is almost identical to that of the Graphics module of the distribution, so that it is easy to switch.
Author: Pierre Weis.
Native OCaml libraries
Gregorian Date [27-Oct-2004, version 1.0.0, Stable]
A pure OCaml library for performing calculations based on the Gregorian calendar.
Native OCaml libraries
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.
Author: Mario Pernici.
Native OCaml libraries
HDCaml [07-Nov-2005, version 0.2.9, Beta]
HDCaml provides a framework for describing hardware structures in OCaml. Given a functional hardware description, HDCaml will produce a Verilog netlist for verification and implementation. HDCaml also has decent PSL support for assertion based verification.
Author: Tom Hawkins.
Native OCaml libraries
heap [21-Feb-2003]
Heaps, imperative and functional implementations.
Native OCaml libraries
HostIP [03-Apr-2006, version 0.2, Beta]
HostIP is an OCaml module for looking up geolocation data from IP addresses. It uses the community HostIP project.
Native OCaml libraries
Inifiles [02-Mar-2007, version 1.2, Stable]
An ini file parser, in case you ever need to parse one of those little buggers.
Author: Eric Stokes.
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
Jane Street's core library [20-Mar-2013, version 109.14.00, Stable]
Jane Street's alternative to the standard library.
Native OCaml libraries
Lablgtk-extras [14-Jan-2011, version 1.0, Stable]
Lablgtk-extras is a collection of libraries and modules useful when developing OCaml/LablGtk2 applications.
Author: Maxence Guesdon.
Native OCaml libraries
Lego Mindstorm Library [19-Oct-2009, version 0.5.2, Stable] Has a documentation
LEGO Mindstorm® is a versatile robotic construction kit. The central component is the programmable NXT brick to which one can connect up to three motors and various sensors. The brick can run programs directly uploaded to it or can be controlled via bluethooth or USB. This library allows you to communicate with — and drive — your NXT brick from OCaml programs through a bluetooth connection. The full LEGO® communication protocol (including all "direct commands") is supported. This library has been tested on Linux, Windows (without the fantom drivers installed) and Mac OSX.
Native OCaml libraries
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.
Author: Jesse Guardiani.
Native OCaml libraries
Logger module [09-Aug-2004, Beta]
A logger module for Objective Caml.
Author: Jesse Guardiani.
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.
Native OCaml libraries
Lwt [04-Jul-2011, version 2.4.0, Stable] Has a documentation
Lwt is a library for cooperative threads in OCaml. It is using monadic style, which makes it really easy to use. With respect to preemptive threads, cooperative threads are not using a scheduler to distribute processor time between threads. Each thread must instead tell other threads that it wants them to continue. An uncooperative thread will keep other threads blocked until it has completed its work.
Camlp4 extensions
Macaque [08-Oct-2012, version 0.6, Beta] Has a documentation
Macaque (Macros for Caml Queries) is a DSL for OCaml, wich produce SQL requests from a comprehension syntax. Macaque can build queries by from simpler components, using phantom types used to ensure safety.
Native OCaml libraries
Mathlib [20-Nov-2003, version 0.11.0, Beta] Has a documentation
Mathlib is a collection of hopefully-useful functions for working with floats, Complex numbers, and random numbers. It has the basic math functions added to the C99, trigonometric functions for complex numbers, the Mersenne Twister random number generator, and modules for generating random numbers in a variety of distributions.
Author: Shawn Wagner.
Native OCaml libraries
ML-Postscript [10-Aug-2001, Development code] Has a documentation
A library to produce PostScript documents.
Author: Nicolas George.
Native OCaml libraries
Mp3tag [16-Jan-2002, version 1.0, Stable] Has a documentation
A library containing functions to read or write mp3 tags.
Native OCaml libraries
OC-Soap [28-Jun-2005, version 0.3.2, Alpha]
This is a proper version of a SOAP client for OCaml, which uses CDuce (http://www.cduce.org/) to parse WSDL + XML Schema interface descriptions, turning them into SOAP client stubs.
Native OCaml libraries
OCaml Reins [26-Sep-2007, version 0.1, Alpha]
OCaml-Reins is a data structure library for O'Caml that includes cursor based iterators, a collection of functors to minimize client-side boilerplate, a powerful on-line benchmarking system and Quickcheck style testing infrastructure.
Author: Michael Furr.
Native OCaml libraries
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.
Native OCaml libraries
OCaml Dump [21-Jan-2008, version 0.2 beta, Beta] Has a tutorial
Another print anything module.
Native OCaml libraries
OCaml Iteratees [04-Jul-2011, version 0.3, Beta]
OCaml port of Iteratees (safe, practical, declarative input processing, by Oleg Kiselyov) to OCaml.
Native OCaml libraries
OCaml XML-RPC [15-Mar-2004, version 0.2.3, Beta]
An implementation of the XML-RPC protocol.
Author: Shawn Wagner.
Native OCaml libraries
OCaml-Benchmark [03-Dec-2004, version 0.6, Beta]
A small module to benchmark running times of code. It supersedes an earlier version by Doug Bagley.
Native OCaml libraries
OCaml-ofc [03-Dec-2009, Development code]
An OCaml interface for Open Flash Chart 2.
Author: Florent Monnier.
Native OCaml libraries
OCaml-RDF [09-Oct-2012, version 0.2, Beta]
OCaml-RDF is an OCaml library to manipulate RDF graphs.
Author: Maxence Guesdon.
Native OCaml libraries
ocaml-xgd-basedir [04-Jul-2011, version 0.0.1, Development code]
This library implements the xdg-basedir specification. It helps to define standard locations for configuration, cache and data files in the user directory and on the system. It is a straightforward implementation on UNIX platform and try to apply consistent policies with regard to Windows directories.
Author: Sylvain Le Gall.
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.
Native OCaml libraries
ocamlgraph [01-Mar-2004, version 1.3, Stable] Has a Godi package
A graph library. Provides several graph data structures and several graph algorithms. Algorithms are written independently of the graph data structure (using functors).
Native OCaml libraries
OCamlRSS [20-Mar-2013, version 2.1.0, Stable]
OCaml-RSS is an OCaml library providing functions to parse and print RSS 2.0 files.
Author: Maxence Guesdon.
Native OCaml libraries
OOoWrite [25-Nov-2003, version 0.2.0, Beta]
OOowrite lets you write OpenOffice or StarOffice .sxw files from OCaml programs.
Development tools
Orpc [19-Apr-2010, version 0.3, Beta] Has a documentation
Orpc is a tool for generating RPC clients and servers. It can generate clients / servers for use with Ocamlnet's ONC RPC implementation (like ocamlrpcgen), and also for RPC over HTTP for use with ocamljs. To describe interfaces, you give orpc an OCaml signature instead of an RFC-1831/1832-format file. Most OCaml types (including polymorphic types), exceptions, and functions with labelled/optional arguments are supported.
Author: Jake Donham.
Native OCaml libraries
Ostap [04-May-2006, version 0.1, Beta] Has a documentation
Ostap is an OCaml module to provide a set of parser combinators. The name of this library originates from Ostap Bender --- the central character of Ilya Ilf and Eugene Petrov's comedy "The Twelve Chairs". Bender is generally referred to as "The Great Combinator" since the word "combinator" in Russian also means "a swindler", "a sly man" etc. Additionally to the common set of parser combinators Ostap provides a camlp4 syntax extension pa_ostap.cmo to embed grammar expressions written in BNF-like style into OCaml code. Another feature of pa_ostap is that it allows to consider streams as objects and so makes integration of lexers and parsers simpler. Please have a look at the documentation for details.
Native OCaml libraries
Parmap [18-Jun-2012, version 0.9.9, Beta]
Parmap is a minimalistic library allowing to exploit multicore architecture for OCaml programs with minimal modifications.
Native OCaml libraries
Patricia trees [09-Aug-2001, Stable]
Efficient sets and maps over integers, from a paper by Chris Okasaki.
Native OCaml libraries
Persil [03-Nov-2003, version 0.2.1, Beta] Has a documentation
A persistent library for Ocaml. PersiL could help you to handle persistent data in your application (data which survive the end of the program).
Native OCaml libraries
Pfff [07-Oct-2010, version 0.13, Beta]
Pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.
Author: Yoann Padioleau.
Native OCaml libraries
Pycaml (2) [10-Oct-2011, version 2011-10-05, Alpha]
OCaml/Python interface.
Native OCaml libraries
Regexp [20-Feb-2002, version 0.3, Beta] Has a documentation
A library, entirely written in OCaml, for manipulation of regular expressions and string searching.
Author: Claude Marché.
Native OCaml libraries
RES [23-Mar-2009, version 3.1.1, Stable]
Library for automatically resizing contiguous memory (arrays and strings).
Author: Markus Mottl.
Native OCaml libraries
SDFlow [16-Oct-2007, version 0.01, Alpha] Has a documentation
A high-level combinatorial dataflow programming library based upon destructive lazy streams.
Author: Zheng Li.
Camlp4 extensions
Sexplib [17-Apr-2012, version 7.0.5, Stable]
Library for serializing OCaml values to and from S-expressions.
Author: Markus Mottl.
Native OCaml libraries
ulex [16-Oct-2003, version 0.4, Beta]
Ulex is a lexer generator for Unicode and OCaml.
Author: Alain Frisch.
Native OCaml libraries
Vec [25-Sep-2008, version 2.02, Mature] Has a documentation
An Ocaml implementation of extensible arrays. The implementation is functional, based on balanced trees (and on the code for Set and Map).
Author: Luca de Alfaro.
Native OCaml libraries
Weblogs [16-Oct-2006, version 2.1, Stable]
Weblogs is an OCaml module for importing weblogs from Apache or IIS web servers.
Native OCaml libraries
XmlRpc-Light [29-Jan-2009, version 0.6.1, Beta]
XmlRpc-Light is an XmlRpc client written in OCaml. It requires Xml-Light and Ocamlnet.
Author: Dave Benjamin.
Native OCaml libraries
XmlRPCServer [02-Feb-2003, version 0.1.0, Beta] Has a documentation
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.
Native OCaml libraries
Xpath [04-Sep-2000, version 2000-09-04, Beta]
This package implements the XPath recommendation; XPath is a simple query language for XML. A compact XPath expression can perform a relatively complex search on the document tree. XPath is used by XLink and XSLT. The package is modularized and functorial: the evaluator is a functor taking as argument an implementation of the XPath Data Model as defined in the recommendation. The package include a lightweight implementation, build from the Pxp document tree. A future version will include a Data Model implementation working directly on this document tree.
Author: Alain Frisch.
Native OCaml libraries
Xsetxmap [22-Apr-2008, version 2008-04-21, Development code]
An unfunctorized version of Set and Map.
Author: Berke Durak.
Native OCaml libraries
Xtmpl [19-Dec-2012, version 0.5, Beta]
Xtmpl is a small XML templating library for OCaml.
Author: Maxence Guesdon.

Java libraries

Cadmium [10-Sep-2007, version 1.0-alpha, Alpha] Has a documentation
Java port of ocamlrun, runtime support for Cafesterol.
Author: Xavier Clerc.
OCamlScripting [15-Oct-2007, version 1.0, Alpha]
OCamlScripting is an implementation of the Java JSR223 Scripting API (this API is defined by the javax.script package) for the Objective Caml language. It thus provides a script engine that allows execution of Objective Caml code snippets in a Java application.
Author: Xavier Clerc.

Bindings with PERL libraries

Bindings with PERL libraries
OCamlDBI [01-Apr-2005, version 0.9.11, Beta]
A database independent layer patterned upon Perl DBI.

Bindings with Fortran libraries

Bindings with Fortran libraries
LACAML [09-Aug-2001, version 7.0.7, Stable]
This OCaml-library interfaces the BLAS-library (Basic Linear Algebra Subroutines) and LAPACK-library (Linear Algebra routines), which are written in FORTRAN.
Author: Markus Mottl.

Bindings with C libraries

Bindings with C libraries
Ancient [02-Jun-2009, version 0.9.0, Beta] Has a documentation
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.
Bindings with C libraries
APM [05-Nov-2002, version 1.00, Stable] Has a documentation
This package provides basic interface to Linux APM driver for Objective Caml programs.
Author: Vincent Simonet.
Bindings with C libraries
Cairo-OCaml [29-May-2006, version 1.0.0, Stable]
Objective-Caml bindings for the Cairo library.
Author: Olivier Andrieu.
Bindings with C libraries
CamlBZ2 [07-Nov-2008, version 0.6.0, Beta]
CamlBZ2 provides OCaml bindings for libbzip2, a popular compression library which typically compresses better (i.e., smaller resulting files) than gzip. Using CamlBZ2 you can read and write compressed "files", where files can be anything offering an in_channel/out_channel abstraction (files, sockets, ...). Also, with CamlBZ2 you can compress and decompress strings in memory using the bzip2 compression algorithm.
Bindings with C libraries
CamlImages [17-Nov-2009, version 3.0.2, Stable] Has a Godi package
An image processing library, which provides loading and saving various image formats with an interface for the Caml graphics library. It has also an interface with the freetype library to draw texts using truetype fonts.
Authors: Jun Furuse and Pierre Weis.
Bindings with C libraries
CamlTK [10-Aug-2001]
A library for interfacing Objective Caml with the scripting language Tcl/Tk which is included in the OCaml distribution.
Bindings with C libraries
Cash [28-Aug-2002, version 0.20, Beta] Has a documentation
Cash is a Unix shell that is embedded within Objective Caml. It's a Caml implementation of (an as large as possible subset of) the API of Scsh, the Scheme Shell by Olin Shivers. The Scsh API is designed for writing useful standalone Unix programs and shell scripts (but rather not for interactive command use). It spans a wide range of application, from “script” applications usually handled with perl or sh, to more standard systems applications usually written in C.
Author: Bruno Verlyck.
Bindings with C libraries
Creal [07-Nov-2005, version 0.7, Beta]
An exact real arithmetic module for OCaml.
Bindings with C libraries
GD4O [25-Nov-2003, version 0.7, Alpha]
An OCaml interface to the GD graphics library, which is an ANSI C library for the dynamic creation of images. GD creates PNG and JPEG images, among other formats
Authors: Shawn Wagner and Matt Gushee.
Bindings with C libraries
gmetadom [11-Apr-2003, version 0.2, Alpha]
A binding to gdome2, the GNU DOM Level 2 implementation.
Bindings with C libraries
LablGtkSourceView [28-Aug-2006, version 0.2.0, Beta]
LablGtkSourceView are the OCaml bindings for GtkSourceView, a GTK widget which extends the standrd GTK text widgets implementing syntax highlighting, automatic indentation, and other typical features of source editors. Using LablGtkSourceView you can instantiate and use GtkSourceView widgets in OCaml programs which use GTK through the LablGtk interface.
Bindings with C libraries
Mesh [14-Apr-2011, version 0.7, Beta]
OCaml interface to various mesh generators, in particular triangle.
Bindings with C libraries
MLGMP [23-Nov-2002, version 0.13, Beta]
An extended precision computation library (integers, rationals, floats) in OCaml.
Author: David Monniaux.
Bindings with C libraries
mod_ocaml [03-Dec-2004, version 1.3.4, Stable] Has a documentation
A set of OCaml bindings for the Apache API, allowing you to run CGI scripts written in OCaml directly inside the Apache webserver.
Bindings with C libraries
nlopt [20-Jun-2012, Development code]
OCaml bindings to the NLopt nonlinear optimization library. The wrapper code implements an almost complete NLopt API (the only exception are vector-valued constraints).
Bindings with C libraries
OCaml Curses [27-Aug-2007, version 1.0.1, Beta]
OCaml Curses is a project to provide curses / ncurses bindings for the Objective Caml language. It was formally known as Text Mode Kit (TMK), but the TMK part of the project is not supported any more, and instead we are just concentrating on providing reliable OCaml curses bindings.
Bindings with C libraries
ocaml-archive [29-Aug-2011, version 2.8.4+1, Stable]
Bindings to libarchive, a C library for reading and writing tar, cpio, zip, ISO, and other archive formats.
Author: Sylvain Le Gall.
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.
Bindings with C libraries
ocaml-fastrandom [29-Aug-2011, version 0.0.2, Beta]
A random number generator compatible with standard library Random module (pre OCaml 3.12). It contains C code to speed up generation and a function to skip a lot of numbers at once. Benchmarks show a 3 fold increase in speed for generating random numbers.
Author: Sylvain Le Gall.
Bindings with C libraries
OCaml-lzma [19-Apr-2010, version 0.01, Alpha]
OCaml bindings for the lzma library.
Author: Florent Monnier.
Bindings with C libraries
OCaml-MySQL [21-May-2012, version 1.1.1, Stable] Has a Godi package
A package for Objective Caml that provides access to MySQL databases.
Author: Shawn Wagner.
Native OCaml libraries
OCaml-safepass [16-Aug-2012, version 1.0.1, Stable]
OCaml-safepass is a library offering facilities for the safe storage of user passwords. By "safe" we mean that passwords are salted and hashed using the Bcrypt algorithm. Salting prevents rainbow-table based attacks, whereas hashing by a very time-consuming algorithm such as Bcrypt renders brute-force password cracking impractical.
Author: Dario Teixeira.
Bindings with C libraries
OCaml-Win32 [26-Oct-2004, version 1.0, Stable]
OCaml-Win32 is a set of OCaml wrappers for the Win32 API. You can use this library to write true Win32 GUI applications in OCaml. A small sample application is provided.
Author: Harry Chomsky.
Bindings with C libraries
OCaml-xmlr [04-Apr-2004, version 1.0, Stable]
ocaml-xmlr provides bindings for libxml's xmlreader.
Author: Evan Martin.
Bindings with C libraries
OCamlODBC [18-Jun-2007, version 2.15, Stable] Has a Godi packageHas a documentation
Acces to databases through ODBC drivers.
Bindings with C libraries
OCamlODE [18-Nov-2010, version 0.6, Beta]
OCamlODE is a set of Objective CAML bindings to the Open Dynamics Engine (ODE). It comes with a very simple demonstration game.
Bindings with C libraries
OCamlPCSC [30-Jul-2007, version 0.6, Beta] Has a Godi package
An OCaml binding that allows the manipulation of Smartcards in OCaml, both in Linux, through the C library PCSC-Lite provided by M.U.S.C.L.E. and in Windows through Winscard.dll.
Bindings with C libraries
Ocamlplot [24-Nov-2003, version 0.5.6, Beta]
An OCaml interface to the GNU libplot library.
Author: Olivier Andrieu.
Bindings with C libraries
OCamlSDL [05-Nov-2002, version 0.7.2, Beta] Has a Godi package
OCaml interface to the Simple DirectMedia Layer library. SDL is used for example by 3D games under Linux.
Bindings with C libraries
OCI8 bindings [09-Aug-2001, version 0.0.4, Alpha]
OCI8 bindings for OCaml.
Author: Mauhuur Mauhuur.
Bindings with C libraries
OraCaml [07-Nov-2006, version 0.1, Beta] Has a documentation
This library implements an OCaml client interface for an Oracle database. The library is built on top of the OCCI C++ interface available in Oracle 10g. It is efficient and suitable for processing large volumes of data.
Author: Serge Aleynikov.
Bindings with C libraries
PCRE-OCAML [09-Aug-2001, version 5.12.2] Has a Godi package
Perl compatibility regular expressions for OCaml.
Author: Markus Mottl.
Bindings with C libraries
PGOCaml [14-Jan-2013, version 1.7.1, Stable]
PG'OCaml is a type-safe, simple interface to PostgreSQL from OCaml. It lets you embed SQL statements directly into OCaml code.
Bindings with C libraries
PLPlot [03-Mar-2008, version 5.8.0, Alpha]
Ocaml language bindings for plplot plotting library.
Bindings with C libraries
SciLabl [27-Sep-2004, version pre-alpha, Alpha]
A LablGTK2 wrapper for Scintilla source code editing widget.
Author: Anton Moskal.
Bindings with C libraries
Zarith [17-Apr-2012, version 1.1, Stable]
The Zarith library implements arithmetic and logical operations over arbitrary-precision integers. It uses GMP to efficiently implement arithmetic over big integers. Small integers are represented as Caml unboxed integers, for speed and space economy.
Author: Xavier Leroy.

Ocamldoc generators

Ocamldoc generators
odoc_check [23-Jan-2013, version 4.00, Stable]
A generator which performs some controls on the collected information. For example: all values are commented, all types are commented, all exceptions have a version tag, ... All the possible controls are turned on/off with command line options.
Ocamldoc generators
odoc_fhtml [10-Apr-2002, Stable]
Generation of html documentation with frames.
Author: Maxence Guesdon.
Ocamldoc generators
odoc_tdl [31-Mar-2004, Beta]
An OCamldoc generator which can be used to analyze OCaml files and use @todo tags to generate a TODO list.
Author: Maxence Guesdon.