The Caml Humps contributors
- Ant : Ant is a typesetting system inspired by TeX. It does not aim at complete compatibility with TeX but focuses instead on a flexible, clean, andmodular design.
- CDuce : A strongly typed higher-order functional programming language for XML documents with an efficient type-based runtime implementation.
- dl-runtime : Using primitives from shared libraries. Patch to OCaml 3.00 compiler.
- Getopt : parsing of command line arguments (à la GNU GetOpt) for OCaml.
- HereDoc : Syntactic sugar for text producing applications.
- ocaml-option : Optional value fields in modules.
- openin : A Camlp4 syntax extension to locally open a module in an expression.
- pa_ocamllex : A syntax extenstion to define lexer directly in .ml files.
- patch_record : A patch to OCaml 3.04 which addresses the problem of labels shared between several record types.
- Postgres : PostgreSQL bindings for OCaml.
- Recursive : An OCaml module that helps manipulating recursive/regular structures.
- ulex : A lexer generator for Unicode and OCaml.
- Xpath : This package implements the XPath recommendation.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- Cameleon : IDE for OCaml, with an interface builder, a documentation browser, and other tools and libs.
- CDK : The Caml Development Kit (CDK) is a package containing a set of useful tools and libraries for programming in Objective-Caml.
- Tuareg : A Caml mode for GNU Emacs and XEmacs.
- Improvements of the pa_macro package
- MetaPRL : 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.
- XCaml : 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.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- Htree : A generic library for browsing trees using hyperbolic geometry.
- passwdgen : Password generator will return a password of configurable length. It can add special characters, digits, and capital letters to the password as well. The password is more human readable than a completely random secure password. The number of digits, special characters and capital letters is also configurable.
- Polygen : A program for generating random sentences according to a grammar definition, that is following custom syntactical and lexical rules.
- Camlclipse : A group of plugins to add OCaml support in the Eclipse IDE. It provides very basic support for creating OCaml projects, editing source files, building and running.
- Gocaml : A graphical frontend for GMP Go engines, written in ocaml.
- oclisp : A minimal lisp interpreter, for educational purposes.
- Dynamic Caml : A high-level run-time code generation library for Objective Caml.
- SciLabl : A LablGTK2 wrapper for Scintilla source code editing widget.
- GeOCaml : A tool allowing to handle easily euclidian geometry.
- IBAL : A general-purpose language for probabilistic modeling, parameter estimation and decision making.
- Stred : Provides an ability to interactively edit/navigate arbitrary Ocaml data structures.
- Trx : Generic RPC transaction manager.
- OCamlJitRun : A just in time translator of Ocaml bytecode into machine code (on x86, and perhaps sparcv9 & PowerPC in 32 bits mode).
- Persil : A persistent library for Ocaml.
- PoesiaMonIcap : An Internet Content Adaptation Protocol filter monitor (see www.i-cap.org).
- Unison : A file-synchronization tool for Unix and Windows. 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.
- CamlTemplate : 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.
- LocalCaml : 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.
- mlglade : A Glade to OCaml compiler.
- ara : A utility for doing boolean regexp queries on the the Debian package database.
- mltetris : An implementation of Tetris using threads, Events and the Graphics module.
- Xara : Xara allows to do boolean
regexp searches on the Debian package database in a LablGTK2 GUI.
- CamlFloat : A stylized interface to the Fortran libraries Lapack and Blas for OCaml.
- Dllist : A mutable, circular, doubly linked list library.
- Extlib : A project aiming at providing a complete - yet small - standard
library for the OCaml programming langage.
- GrabBag : A collection datastructure. Unordered insertion, uniformly random removal.
- MacroHTML : Macro pre-processor for HTML (unmaintained).
- OGPF : OCaml Genetic Programming Framework.
- Luo : A system written in Caml and Maple to perform average-case complexity analysis of algorithms.
- Cash : An OCaml implementation of the API of the Scheme Shell (Scsh), designed for writing standalone Unix programs and shell scripts.
- Cstr : A full-featured charset and string library.
- PLAN : A resource-bounded functional programming language that uses a form of remote procedure call to realize active network packet programming.
- MLGame : MLGame is a library designed to help developers create 2d games by providing a high level interface for graphics, network, etc.
- DominoCaml : An OCaml GPL software aimed to explore aspects of the dominoes game.
- Ocamaweb : A CWEB like literate programming tool. It is designed to target all languages and actually has a version targeting the MATLAB language.
- C-- : A ``portable assembly language'' that can replace C as a target language used by compiler writers.
- Lua-ml : A new API that uses higher-order functions and types to simplify the use of an embedded interpreter.
- OCaml-MySQL : A package for Objective Caml that provides access to MySQL databases.
- OCamlBurg : Generate a dynamic-programming ocaml code from a pattern matching specification.
- OCamlError : Annotate uncaught exception stack traces in a readable and editor-friendly way.
- Tony : A lightweight XML parser and pretty printer.
- IBGS : A game server for board games such as chess, go, checkers, and
nine nens morris.
- Ocaml-MinGW-Maxi : Ocaml-MinGW-Maxi is binary distribution for OCaml port for Windows based on the MinGW toolchain. It contains the OCaml compiler and some precompiled add-on libraries.
- Schoca : Schoca is an implementation of the Scheme language. The primary
purpose of Schoca is the use as an embedded extension language in
OCaml applications.
- FTPlib : A C library providing communication facilities implementing the client side of FTP. It comes with OCaml bindings.
- oc-FP : An OCAML implementation of John Backus' FP system.
- wsync : A clever uploading tool, for synchronizing files on a distant
FTP server (eg the content of a web site) with a local set of files.
- Bindlib : A library for the Objective-Caml, Caml-Light and NJSML languages providing reasonable tools to write programs manipulating data structures with binder (like lambda-calculus or quantified formulae).
- GlSurf : A program (similar to Surf) to draw surfaces from their
implicit equations.
- Phox : An extensible proof assistant based on High Order logic.
- CamlGI : 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.
- FFTW : An interface to the FFTW library.
- lpd : A small threaded line printer daemon whose primary goal was to enable the use of a windows-only printer, it should be easily modifiable for other purposes. A small module of pervasive-like functions for sockets on all platforms (including win9x) is bundled together.
- OCaml-Benchmark : A small module to benchmark running times of code. It supersedes an earlier version by Doug Bagley.
- mlOscar : mlOscar is an OCaml library that facilitates the encoding/decoding of the AOL OSCAR protocol. Networking functionality is available to enable access to the AIM network.
- OCamlWinPlus : Extension of the OCamlwin tool to add edition facilities, and more.
- bibtex2html : A collection of tools for translating from BibTeX to HTML.
- CiME : A rewrite and constraint-solver tool.
- Ocamlweb : A literate programming tool for Objective Caml.
- Regexp : A library, entirely written in OCaml, for manipulation of regular expressions and string searching.
- gdome2-xslt : A C and OCaml library to apply XSLT stylesheets to gdome2 documents.
- gmetadom : A binding to gdome2, the GNU DOM Level 2 implementation.
- lablgtkmathview : A lablgtk binding to GtkMathView, a Gtk widget to render MathML 2.0 documents.
- MetaOCaml : A compiled, type-safe, multi-stage programming language.
- Focal : A language for software-proof codesign.
In Focal, code, specifications, and proofs are developped together
in the same source files, using a novel object-oriented module system.
The compiler analyses the dependencies in order to ensure the
consistency of the source, then translates the code to Objective Caml,
and the proofs to Coq.
- OCaml-Lirc : OCaml bindings for the <a href="http://www.lirc.org/">LIRC</a> (Linux Infrared Remote Control) library.
- YaM : Another build system for OCaml... The idea is to write a Makefile.ml, using the YaM helper module, and to compile it to get a project specific make.
- Camlp4 : Pre-Processor-Pretty-Printer for Objective Caml. It offers tools for syntax (grammars) and the ability to modify the concrete syntax of the language (quotations, syntax extensions).
- Geneweb : A genealogy software with a Web interface. It can be used off-line or as a Web service.
- IoXML : IoXML adds all the needed printers and parsers to the source files where types are defined.
- ledit : 1 line editor written in OCaml. It provides line editing for the Caml toplevels, as well as other interactive Unix commands.
- Ocamlcl : OCaml with caml light syntax.
- Zoggy : An interface builder generating LablGtk code.
- FFI : A foreign function interface package for Objective CAML. It reads C header files and generates a mix of C code and ocaml external declarations.
- General_Array : Implements unlimited sized arrays (up to 2<sup>30</sup> elements).
- NML : a dynamically typed functional language whose syntax conforms closely to that of OCaml. In addition, it supports overloaded, vectorized, math operations, list comprehensions, and optional and keyword arguments in uncurried argument tuples, possibly with specified default values. It can access OLE compliant, and low-level COM interfaces, supports serial I/O and socket based communication, and provides an ADO connection to external databases. An Emacs mode is supported through a hacked Tuareg interface, as well as a Tcl/Tk interactive browser and interaction window with list pane access to a user modifiable documentation database.
- Demexp : 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.
- Extended thread synchronisations : Two small modules that implement extended synchronisations for O'Caml threads.
- Creal : An exact real arithmetic module for OCaml.
- MLGMP : An extended precision computation library (integers, rationals, floats) in OCaml.
- Link : A theorem prover for Multiplicative Linear Logics based on PROOF NETS Construction.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- OX : An XML integration into Objective-Caml, providing XML transducers based on pseudo-tree view.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- APPSEM'2000 : Appsem'2000 courses notes on 'Using, Understanding, and Unraveling The OCaml Language'.
- Encore un cours de compilation : Un autre cours (Polytechnique) de compilation, en français, utilisant OCaml pour une maquette complète d'un compilateur de pseudo Pascal vers du code MIPS.
- Initiation au langage OCaml : Un cours de Polytechnique en français sur OCaml, avec exercices corrigés en ligne.
- Programmation système en OCaml : Un cours d'introduction à la programmation du système Unix, mettant l'accent sur la communication entre les processus.
- Baire : A data structures library.
- Cameleon : IDE for OCaml, with an interface builder, a documentation browser, and other tools and libs.
- Epeire : A graphical interface for the OCaml debugger.
- ocamldsort : A tiny command line tool to sort .ml files according to their dependencies, in order to link the corresponding .cmo files.
- Dynamic Caml : A high-level run-time code generation library for Objective Caml.
- MLGame : MLGame is a library designed to help developers create 2d games by providing a high level interface for graphics, network, etc.
- Coca-ml : A small extension to ocaml 3-02 called coca-ml and using camlp4 to allow 'down cast' of objects between classes in relations of inheritance and sub-typing.
- Developing applications with Objective-Caml : An anglish translation of a complete book on OCaml : language, concepts, tools, libraries.
- Développement d'applications avec Objective-Caml : Un livre complet sur Objective-Caml : le langage, les concepts, les outils, les bibliothèques.
- MLGraph : A Caml and OCaml library to produce PostScript images.
- O'Jacare : O'Jacare is a code generator to help in interoperability between Java and O'Caml through their object model. O'Jacare defines a simple IDL for Java's classes and interfaces descriptions. For communications from Java to O'Caml it owns a callback mechanism. So, you can easily override in O'Caml a method defined in Java. The implementation is based an each language low-level interfaces with C (JNI for Java and external for O'Caml) and uses an extended version of the camljava library. O'Jacare generates all needed wrapper classes and enables static typechecking in both world.
- OCamIL : OCamIL is an experimental OCAML compiler that targets Microsoft .NET.
- ocamldap : LDAP bindings for ocaml.
- rmwd : Remote Middleware Daemon is a high level identity management library focused on services and access control, and exposed via both xdr-rpc, and xml-rpc. It is written entirely in Objective Caml, except for the trivial xmlrpc interface, which is in perl.
- Stemmer : An implementation of the Porter stemming algorithm for OCaml.
- OCamlearn : A web site with collaborative publication of OCaml-related articles, Q&As, examples, ...
- Ocaml-Sqlite : Bindings for accessing Sqlite databases from ocaml programs.
- ocaml-xmlr : Bindings for libxml's xmlreader.
- asmdynlink : Enables any OCAML native code program to load and execute CMO files. Uses the same interface as the Dynlink library of the Ocaml distribution.
- CDK : The Caml Development Kit (CDK) is a package containing a set of useful tools and libraries for programming in Objective-Caml.
- EFuns : An Emacs clone in Ocaml.
- GwML : A window-manager written in Ocaml. Configuration is done by dynamically loading Ocaml bytecode modules.
- JoCaml : An experimental extension of the Objective-Caml language with the distributed join-calculus programming model.
- Xlib : The Xwindow library, completely rewritten in Objective-Caml.
- Zoggy : An interface builder generating LablGtk code.
- OcamlDoom : A Doom-style 3D graphics engine for action games.
- OCamlexc : A static analyzer of spurious exceptions of OCaml programs.
- Big brother : An automated WWW link checker.
- Wallace : A generic subtyping-constraint-handling library.
- Maple-MuPad : A small tool that may help to convert a Maple code to MuPad.
- OCamlSDL : OCaml interface to the Simple DirectMedia Layer library. SDL is used for example by 3D games under Linux.
- BSMLlib library : A functional programming library for the Objective Caml language for direct-mode BSP (Bulk Synchronous Parallel) algorithms.
- OCaml-SOAP : A library which can be used to build web services using SOAP.
- CCured : A source-to-source translator for C.
- CIL : Infrastructure for C Program Analysis and Transformation.
- base64 : Encode/decode base 64 strings.
- Cigen : Generation of stubs for Caml-to-C interface based on a .h header file (work in progress, not yet complete).
- cryptgps : Symmetric cryptographic algorithms: Blowfish, DES, 3DES.
- equeue : A generic event queue module, and a specific module for file descriptor events.
- Findlib : The findlib library provides a scheme to manage reusable software components (packages), and includes tools that support this scheme.
- findlib-browser : CGI script that browses packages managed by findlib.
- GODI : An experimental source-based O'Caml distribution.
- JavaCaml : A port of the Ocaml bytecode interpreter to Java.
- netclient : Experimental client for HTTP/1.1 and telnet.
- netstring : String processing functions for the Internet.
- OCamlDB : An early release of a DBMS driver for Objective Caml.
- OCamlnet : A collection of modules for the Objective Caml language which focus on application-level Internet protocols and conventions.
- PXP : Polymorphic XML parser.
- rpc : Sun RPC (remote procedure call). Complete implementation of this protocol.
- WDialog : A framework to create complex Web-based applications in a systematical way.
- WTimer : A web application to manage time sheets.
- xstr : Thread-safe implementation of string searching/matching/splitting/replacing.
- xstrp4 : Extension of camlp4: '$' expansions.
- Camlusb : Camlusb is an Ocaml binding to libusb.
Libusb is a portable library to access USB devices in user space, available for various operating systems.
- O'Jacare : O'Jacare is a code generator to help in interoperability between Java and O'Caml through their object model. O'Jacare defines a simple IDL for Java's classes and interfaces descriptions. For communications from Java to O'Caml it owns a callback mechanism. So, you can easily override in O'Caml a method defined in Java. The implementation is based an each language low-level interfaces with C (JNI for Java and external for O'Caml) and uses an extended version of the camljava library. O'Jacare generates all needed wrapper classes and enables static typechecking in both world.
- bibgrep : Index and efficiently search throught bibtex files using a google-like query syntax.
- MLGraph : A Caml and OCaml library to produce PostScript images.
- XmlRPCServer : A server-side implementation for <a href="http://raevnos.pennmush.org/code/ocaml.html">OCaml XML-RPC</a>.
- OCaml-Win32 : An OCaml library providing direct access to the Win32 API.
- XDuce : XDuce ("transduce") is a typed programming language that is specifically designed for processing XML data.
- Enhanced Ocaml Documentation : The OCaml reference manual with a page containing all grammar production rules, with metasymbols as hyperlinks, pointing to their definition and all changes with respect to previous version are marked with icons or color.
- BioCaml : An OCaml library of useful functions for bioinformatics.
- DML / de Caml : A conservative extension of the functional programming language ML.
- Katmake : A Makefile generator like the GNU automake utility. It is specifically designed for generating Makefile for OCAML language.
- nML : A higher-order and typed programming language.
- ECaml : A simple object system for OCaml, based on polymorphic variants and a Camlp4 syntax extension.
- lablglut : A GLUT 3.7 binding, bundled with a Tk-independent modification of LablGL.
- Nativize : Compile and run native functions from the toplevel.
- ocamldelaunay : A simple-minded, O(N^2), floating-point, 2D Delaunay triangulator
without constraints.
- SoCaml : A binding for the object-oriented 3D scene library Open Inventor (tm).
- taggage : A new Vim-oriented tag file generator for OCaml.
- Taglet : OCaml tag file generator.
- camllets : A web server able to execute caml applets to generate dynamic pages.
- LablGL : An Objective Caml interface to OpenGL.
- LablGTK : An Objective Caml interface to gtk, providing a strongly typed, yet very comfortable, object-oriented interface to gtk+.
- LablGTK2 : An Objective Caml interface to gtk+ 2.2.
- ocaml-classes : A small library of wrappers around standard library classes, to allow a somehow object-oriented use.
- Ocaml-mode : An emacs mode to edit and indent O'Caml code. Included in Objective Caml source distribution.
- AlphaProlog : A logic programming language with built-in names, fresh name generation, name binding, and unification up to alpha-equivalence.
- Iom : Reactive I/O Monad library implements I/O monad functions
designed to
facilitate writing of concurrent, reactive, single-threaded network
application
services in a functional style.
- Iox : This library is a framework for concurrent, single-threaded Internet application services.
- OCamlNAE : A collection of Objective Caml libraries to support the development of concurrent, single-threaded Internet application servers.
- Ensemble Juke Box : A distributed audio application designed to exchange high-quality audio data bewteen users on local area networks.
- MetaPRL : 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.
- Mojave compiler : A multi-language compiler supporting safe process migration and
transactions for programs written in C, Caml, Java, and Pascal.
- OCaml book : Introduction into OCaml, with exercises.
- OMake : 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.
- Config_file : 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.
- A sample configure.in : A sample configure.in to provide configure scripts for OCaml projects.
- A sample Makefile.in : A sample Makefile.in to use with the sample configure.in script.
- bibtex2html : A collection of tools for translating from BibTeX to HTML.
- bitv : A bit vectors library.
- cgi : A small CGI library.
- Coq : A proof assistant.
- Creal : An exact real arithmetic module for OCaml.
- Delaunay triangulation : Code from D. Knuth's "Axioms and Hulls''. O(N log N) on the average. Applies to any CCC system.
- display
- heap : Heaps, imperative and functional implementations.
- ocamlgraph : A graph library. Provides several graph data structures and several graph algorithms. Algorithms are written independently of the graph data structure (using functors).
- ocamlwc : A program to count the lines of code and documentation in ocaml sources.
- Ocamlweb : A literate programming tool for Objective Caml.
- Patricia trees : Efficient sets and maps over integers, from a paper by Chris Okasaki.
- Pentaminos : Solves the Pentaminos puzzle.
- Tries : Implementation of tries (maps over lists)
- Why : A software verification tool.
- yamlpp : Yet another markup language preprocessor.
- otags : An Emacs tag generator for Ocaml source files, working also with syntaxes extended with Camlp4.
- Splay trees : Binary trees where often accessed items tend to be near the root.
- BNC : A lexer/parser for turning files tagged for the British National Corpus into something usefully symbolically manipulated in OCaml.
- Forklift : A program for generating language bindings based on C header files.
- ocalibs : Ocalibs is a collection of libraries for the ocaml programming language, designed to make windows game development easier. It will support DirectX for graphics and ODE for physics.
- CCured : A source-to-source translator for C.
- Dllist : A mutable, circular, doubly linked list library.
- Env : An Environment Interaction module for Objective Caml. It's useful if you need to create a local copy of the current environment for modification.
- LinkedHashtbl : 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.
- Logger module : A logger module for Objective Caml.
- Automli : A .ml to .mli generator using filters to export or hide elements.
- missinglib : A collection of various utilities for OCaml.
- Felix : Felix is an Algol like
strongly typed procedural programming language with a
strong purely functional subsystem, including
first class functions, pattern matching, variants,
recursion, and (currently only) compile time
parametric polymorphism.
- PLAN : A resource-bounded functional programming language that uses a form of remote procedure call to realize active network packet programming.
- MLpcap : Libpcap bindings for OCaml.
- CamlG4 : A library for Objective Caml allowing SIMD parallel processing on PowerPC G4 processor using the Altivec vector processing unit.
- calendar : An OCaml library managing dates and times.
- ocamldefun : Defunctorizer for OCaml.
- ocamlgraph : A graph library. Provides several graph data structures and several graph algorithms. Algorithms are written independently of the graph data structure (using functors).
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- CamlImages : 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.
- nML : A higher-order and typed programming language.
- Calculating with Signatures : An extension to the signature language of ocaml.
The patch is for ocaml-3.08.0 and provides some operations
on signatures. It is still at an experimental state but mostly working.
- Camlserv : A lightweight server written in Ocaml for highly interactive webpages or even online browser based games.
- Galax : A full-featured, fully compliant implementation of <a href="http://www.w3c.org/TR/xquery/">XQuery</a>.
- OCaml-FreeTDS : OCaml-FreeTDS is a binding to the ct-lib component of the FreeTDS library, to access Sybase and Microsoft (or other TDS) database servers.
- OcamlConf : Ocamlconf is like autoconf but much simpler, utterly ocaml-centric, and dependent on findlib.
- Ocurl : An OCam binding for the
<a href="http://curl.sourceforge.net/libcurl/">libcurl</a>
multi-protocol file transfer library.
- datac : The system daTac aims to do automated deduction in first-order logic with equality.
- BDBFS : A portable, user-level NFS fileserver. It implements version 3 of the NFS protocol as defined in RFC 1813.
- Link : A theorem prover for Multiplicative Linear Logics based on PROOF NETS Construction.
- Encore un cours de compilation (2) : Un autre cours (Polytechnique) de compilation, en français, utilisant OCaml pour une maquette complète d'un compilateur de pseudo Pascal vers du code MIPS. Certaines parties sont différentes de celui de Didier Remy.
- Hevea : A quite complete and fast LATEX to HTML translator.
- JoCaml : An experimental extension of the Objective-Caml language with the distributed join-calculus programming model.
- OCamlSDL : OCaml interface to the Simple DirectMedia Layer library. SDL is used for example by 3D games under Linux.
- MLGame : MLGame is a library designed to help developers create 2d games by providing a high level interface for graphics, network, etc.
- OCaml-event : 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.
- OCamlExpat : An ocaml wrapper for the Expat XML parsing library.
- OUnit : Unit test framework for OCaml.
Mark Hayden
- Emrg : A simple OCaml packager.
- Ensemble : A group communication toolkit.
- Ensemble Juke Box : A distributed audio application designed to exchange high-quality audio data bewteen users on local area networks.
- Fresh Objective Caml : An extension of OCaml with facilities for correctly manipulating
object-language syntax involving alpha-convertible names and binding operations.
- AIFAD : Improves decision tree learning by supporting significantly more complex kinds of data.
- CFG : Library for manipulation of context-free grammars (CFGs).
- LACAML : BLAS/LAPACK-interface for OCaml
- ocaml.vim : OCaml syntax file for the VIM-editor.
- OCamlMakefile : Automated compilation of complex OCAML-projects.
- PCRE-OCAML : Perl compatibility regular expressions for OCaml.
- POMAP : Library for maintaining partially ordered maps.
- Practical hints for using OCaml : Hints which might help you get started with OCaml-development (mostly in UNIX environment).
- Purely Functional Data Structures : Okasaki's Purely Functional Datastructures in OCaml.
- RES : Library for automatically resizing contiguous memory (arrays and strings).
- caml2html : A tool to create hilighted html pages from OCaml files (.ml, .mli, .mll and .mly).
- Camlmix : Camlmix is a command-line tool for preprocessing any kind of file using Objective Caml as an embedded language for inline expansion.
- Micmactch : Micmatch is a syntax extension of the pattern matching constructs of OCaml for matching and extracting substrings with regular expressions. Micmatch tries to stay as close as possible to the spirit of OCaml. Named regular expressions can be defined. They use the syntax of ocamllex with some additions.
- sumo : A system for extracting structural and possibly functional
similarities in 3D structures of proteins.
- amalthea : An Io interpreter.
- Ochra : Ochra is a syntax extension for OCaml, extending the
language with explicit support for programming using
an Object-Oriented Reference Attributed Grammar (RAG)
formalism.
- Galax : A full-featured, fully compliant implementation of <a href="http://www.w3c.org/TR/xquery/">XQuery</a>.
- ChartPak : An easy-to-use library for dynamically generating business-oriented data visualizations for the web.
- GD4O : An OCaml interface to the GD graphics library.
- CCured : A source-to-source translator for C.
- saXml : A couple of files for turning basic XML documents (channels) into an XML stream.
- Libml : Machine Learning Library, a library containing structures and
algorithms, simply usable from most of common languages.
Mauhuur
- Cameleon : IDE for OCaml, with an interface builder, a documentation browser, and other tools and libs.
- Caml-get : A tool to distribute and get Objective-Caml code, in a way similar to the apt-get utility.
- Configwin : A library to easily create configuration windows, using LablGtk.
- Epeire : A graphical interface for the OCaml debugger.
- Gpattern
- MLChat : A small chat application written in OCaml with the LablGtk interface.
- MozCaml : A Mozilla sidebar for direct access to Caml ressources.
- Mp3tag : A library containing functions to read or write mp3 tags.
- OCaml-RSS : A library providing functions to parse and print RSS 2.0 files.
- OCaml-TDL : A small OCaml library providing functions to parse and print TODO lists in XML files.
- OCamldoc : A 'Javadoc for OCaml'-wannabe.
- OCamlODBC : Acces to databases through ODBC drivers.
- odoc_check
- odoc_fhtml
- odoc_tdl
- Report : A tool allowing the description of the structure of an XML document and the way to fill it at runtime.
- Share : A collection of various useful functions to manipulate strings, lists, arrays, files, ... Each element can be imported to your own code with caml-get.
- toolpage : A tool to help create and maintain software distribution pages. Comes with a convenient library to create HTML pages from OCaml applications.
- Zoggy : An interface builder generating LablGtk code.
- PLAN : A resource-bounded functional programming language that uses a form of remote procedure call to realize active network packet programming.
- XSPP : XSLT Stylesheet PreProcessor. It can be used to simplify writing XSLT stylesheets.
- automatx : A Caml Light library to manipulate and display trees, graphs and finite automata.
- Numerix : Big integer library.
- parallele : Library for distributed computing in OCaml.
- Jabbr : An OCaml library for the XMPP (better known as Jabber) instant messaging system.
- Yaxpo : A hand-written nonvalidating XML 1.0 + XMLNS processing suite for Objective Caml.
- Ocaml-Sqlite : Bindings for accessing Sqlite databases from ocaml programs.
- Mlfuse : An OCaml binding for the Fuse (File System in User Space) library.
- GikiWiki : GikiWiki is a minimalist wiki in OCaml.
- CamlGL : OpenGL bindings for OCaml.
- CamlMake : An interface to compile OCaml programs under Microsoft Visual C++ IDE.
- DocCHM
- Extlib : A project aiming at providing a complete - yet small - standard
library for the OCaml programming langage.
- JavaLib : JavaLib is a library that can fully parse Java .class file into OCaml data
structure, thus enabling the OCaml programmer to extract informations from
class files, to manipulate and to generate valid class files.
- mtlib : A library with global variable support, mutable lists, mutable binary trees, ...
- OCam'OLE : An OLE binding for OCaml, to control remote COM objects with OCaml.
- OCamake : An automatic compiler for the OCaml language (has special features for integration under MS Visual Studio).
- ODLL : A tool to create a Win32 DLL from an OCaml library, automatically generating the C stubs needed to interface the OCaml code and the C code and the .H interface.
- Osiris : A set of classes to easily build and manage graphical user interfaces under Win32 with Ocaml.
- Visual ML : An OCaml project wizard for Microsoft Visual Studio.
- XML Light : a minimal XML parser & printer for OCaml, also supporting validation
against a DTD.
- DrGeocaml
- morpion : A little program named which tries to solve the 'morpion solitaire' game.
- ML-Postscript : A library to produce PostScript documents using OCaml.
- Text Mode Kit : A text mode widget system in OCaml, still in early stage, not ready to use in real projects yet.
- lightweight records : An extension with camlp4 that allows one to use lightweight records in OCaml.
- C-- : A ``portable assembly language'' that can replace C as a target language used by compiler writers.
- OCamlBurg : Generate a dynamic-programming ocaml code from a pattern matching specification.
- OCamlError : Annotate uncaught exception stack traces in a readable and editor-friendly way.
- Emrg : A simple OCaml packager.
- Ensemble : A group communication toolkit.
- Bindings for ORBit2 : Bindings for ORBit2, the CORBA ORB of the GNOME project. There is a IDL compiler that maps CORBA types to OCaml types, and a runtime library that does the necessary conversions.
- caml-info-look : Automatic look up for documentation in OCaml Info files.
- Gz : A wrapper for the zlib and bzip2 libraries.
- ocamlgsl : A wrapper for GSL, the GNU Scientific Library.
- Ocamlplot : An OCaml interface to the GNU libplot library.
- OCamlSDL : OCaml interface to the Simple DirectMedia Layer library. SDL is used for example by 3D games under Linux.
- pa_records
- Amble : 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).
- Libml : Machine Learning Library, a library containing structures and
algorithms, simply usable from most of common languages.
- nML : A higher-order and typed programming language.
- Ansicolor : O'Caml ANSIColor is an O'Caml library for creating colorful text and other in effects in ANSI-compatible terminals. The code is staggeringly simple and the interface and implementation are both very roughly based on Term::ANSIColor.
- GODIVA : GODIVA, the GODI Verpacken Assistant, is a tool for making GODI packages.
- PLAN : A resource-bounded functional programming language that uses a form of remote procedure call to realize active network packet programming.
- omlib : A small library to demonstrate monadic programming in OCaml.
- Animated 3D rendering : Animated 3D rendering of the Caml bytecode interpreter in action.
- CamlIT : Emacs mode for Ocaml running a toplevel in the background in order to obtain typing information.
- FaCiLe : A Functional Constraint Library over
integer and integer set finite domain written with OCaml.
- Mathplot : A GUI frontend for interactive graphing of functions. It also has a program to generate PostScript output.
- FORT : Framework for Ocaml Regression Testing, an environment for testing programs and Objective Caml modules.
- OCamlnet : A collection of modules for the Objective Caml language which focus on application-level Internet protocols and conventions.
- Mlgrace : A high-level interface to the Grace 2D plotting application.
- Orpie : Orpie is a fullscreen RPN calculator for the console. Its operation is similar to that of modern HP calculators, but data entry has been optimized for efficiency on a PC keyboard. Features include extensive scientific calculator functionality, command completion, and a visible interactive stack.
- Luo : A system written in Caml and Maple to perform average-case complexity analysis of algorithms.
- bmktrans : Bookmark translator.
- MLDoc : Automatic documentation extraction for Objective Caml.
- SPPoC : Symbolic Parameterized Polyhedral Calculator.
- A generic Caml-light Makefile : A generic Makefile for Caml-light projects.
- A generic Makefile : A generic Makefile for OCaml projects.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- CamlImages : 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.
- GraphPS : An OCaml library used to generate PostScript files from Caml graphics drawings.
- htmlc : An HTML files generator.
- OCaml and Caml-Light examples
- Programming style recommandations : A set of reasonable guidelines for formatting Caml programs -- guidelines which reflect the consensus among veteran Caml programmers.
- Recommandations sur le style de programmation : Un ensemble de conseils raisonnables de présentation des programmes Caml, ainsi que des conseils de programmation qui ont recueilli l'assentiment de programmeurs Caml chevronnés.
- Combinator Engine : A collection of the author's projects on combinator-based implementations of functional languages.
- Hlins : Insertion of URLs into HTML documents.
- OCamIL : OCamIL is an experimental OCAML compiler that targets Microsoft .NET.
- Cocanwiki : A wiki in OCaml.
- Dumper : Dumper is a tiny OCaml library for dumping out data
structures. This is very useful when debugging. It's roughly the
OCaml equivalent of Perl's Data::Dumper.
- Gregorian Date : A pure OCaml library for performing calculations based on the Gregorian calendar.
- Learning OCaml, for C, C++, Perl and Java programmers : A practical, detailed tutorial for people who already know an imperative or OO-language and wish to learn OCaml.
- mod_caml : A set of OCaml bindings for the Apache API, allowing you to run CGI scripts written in OCaml directly inside the Apache webserver.
- OCamlDBI : A database independent layer patterned upon Perl DBI.
- OOoWrite : OOowrite lets you write OpenOffice or StarOffice .sxw files from OCaml programs.
- perl4caml : Interface for calling Perl code from OCaml.
- Camouflage : A tool that supports interfacing between C and OCaml. Camouflage reads a .mli file and creates the necessary C interfaces to the given module.
- Ensemble : A group communication toolkit.
- Caml for Scintilla : Caml for Scintilla is a free source and binary package which adds syntax coloring for the Objective Caml language to the multi-platform (Win32 and GTK+) Scintilla editing component and SciTE text editor.
- mail-smtp : An OCaml library implementing part of the SMTP protocol.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- ocaml-glpk : 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.
- ocaml-mad : Bindings for the mad library which provides functions for encoding wave audio files into mp3.
- ocaml-shout : Bindings for the shout library which provides functions for sending mp3 / ogg data to icecast 2 servers which are used to create streamed web-radios.
- ocaml-ssl : Bindings for the openssl library which provides functions to create secure sockets by encrypting communications and using certificates.
- ocaml-vorbis : Bindings for the ogg/vorbis library which provides functions for encoding, decoding and reading tags of ogg/vorbis files.
- Bdd : A binary-decision diagram module.
- CCured : A source-to-source translator for C.
- CIL : Infrastructure for C Program Analysis and Transformation.
- PLAN : A resource-bounded functional programming language that uses a form of remote procedure call to realize active network packet programming.
- Annexlib : Include a variety of random number generators, control over locale, ...
- DBC : Simple design-by-contract support using camlp4.
- dispimg
- Ethread : Useful stuff for multi-threaded programs: Read/write locks,
barriers, ...
- GD4O : An OCaml interface to the GD graphics library.
- Lablgtkspell : Bindings for the GtkSpell spellchecking widget library for use with lablgtk2.
- Mathlib : Useful math, numeric and random number routines, including a lot of the new functions in the C99 standard library.
- OCaml XML-RPC : An implementation of the XML-RPC protocol.
- OCaml-MySQL : A package for Objective Caml that provides access to MySQL databases.
- Servinfo : A little tool for looking up entries from /etc/services.
- CamlFloat : A stylized interface to the Fortran libraries Lapack and Blas for OCaml.
- C-- : A ``portable assembly language'' that can replace C as a target language used by compiler writers.
- PsiLAB : Scientific and numerical research environment
- FFTW-GEL : FFTW-GEL is an architecture-specific version of <a href="http://www.fftw.org">FFTW</a>.
- camlp4 hashtbl syntax extension : Camlp4 hashtbl syntax extension and integrity checks
- OCaml-HTTP : A library inspired from perl's HTTP::Daemon that permits to write simple HTTP daemons in OCaml.
- Vim support for .annot files : 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.
- WOWcamldebug : A front end that permits to use the OCaml debugger with (g)vim.
- FileUtils : A collection of utils to manipulate files following some UNIX convention.
- JoCaml : An experimental extension of the Objective-Caml language with the distributed join-calculus programming model.
- ocamlgraph : A graph library. Provides several graph data structures and several graph algorithms. Algorithms are written independently of the graph data structure (using functors).
- ActiveBuffer : This library is an extension of the standard Buffer module, to allow to read buffers partially.
- caml2html : A tool to create hilighted html pages from OCaml files (.ml, .mli, .mll and .mly).
- CDK : The Caml Development Kit (CDK) is a package containing a set of useful tools and libraries for programming in Objective-Caml.
- Overflow : A module redefining common operations and raising an exception in case of overflow.
- SwiftSurf : Smart web proxy written in OCaml.
- Multiset : A multiset implementation based on the Set module of the standard library.
T. Kurt Bond
- Contfrac : An OCaml module for performing exact arithmetic on real numbers by representing them as continued fractions.
- Timbuk : A library of Objective Caml functions designed to manipulate Tree Automata.
- xhtml : A translation of most XHTML 1.1 modules into a set of phantom types that allow the O'Caml typechecker to validate dynamically generated HTML pages.
- FoC : An environment to develop certified computer algebra libraries.
- Ensemble : A group communication toolkit.
- Confluence : A powerful logic design language that combines the dataflow and component-based methodologies of HDL with the expressiveness of modern functional programming.
- ocamldot : Generation of program dependency graphs for OCaml programs, using dot.
- Unison : A file-synchronization tool for Unix and Windows. 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.
- Timbuk : A library of Objective Caml functions designed to manipulate Tree Automata.
- IceDock : Dockapp support ala WindowMaker/AfterStep for IceWM, TWM, MWM, Sawfish, KWin, ...
- SCaml : A patch against the OCaml compiler which adds module unloading, a workaround for 'mangled' function names, an uninliner for .cmx, ...
- camllets : A web server able to execute caml applets to generate dynamic pages.
- APM : This package provides basic interface to Linux APM driver for Objective Caml programs.
- Flow Caml : A prototype implementation of an information flow analyzer for the
Caml language.
- headache : A simple and lightweight tool for managing headers in source code files.
- MozCaml : A Mozilla sidebar for direct access to Caml ressources.
- OCamlfuse : Multithreaded binding to the fuse api. Alpha version.
- Camllisp : Lisp-like embeddable language for Objective Caml.
- J4 : Simple base to build a Joy-like embedded languages
for Objective Caml programs. Suitable for a research purposes
only.
- MPassing : Simple ConcurrentML-like message passing library with a network transparency, including some common features like threads pools,
consumer queues, logging, notifications.
- Securify : A tool to verify secrecy for cryptographic protocols.
- MetaOCaml : A compiled, type-safe, multi-stage programming language.
- CCured : A source-to-source translator for C.
- CIL : Infrastructure for C Program Analysis and Transformation.
- CocOCaml : CocOCaml is a Cocoa based wrapper for the OCaml toplevel environment.
- GODIVA : GODIVA, the GODI Verpacken Assistant, is a tool for making GODI packages.
- nML : A higher-order and typed programming language.
- Active DVI : A presenter and previewer for texts or slides written in LaTeX.
- CamlIDL : A stub code generator and COM binding for OCaml.
- CamlJava : An OCaml/Java interface.
- CamlZip : An Objective Caml library that provides easy access to compressed files in ZIP and GZIP format, as well as to Java JAR files.
- Cryptokit : A library of cryptographic primitives for OCaml.
- MetaOCaml : A compiled, type-safe, multi-stage programming language.
- Mp3tag : A library containing functions to read or write mp3 tags.
- OCamlAgrep : Implements the Wu-Manber algorithm for string searching with errors (like in agrep).
- OCamlMPI : An interface to the MPI message-passing library.
- SpamOracle : Detection of spam by statistical analysis of e-mail contents.
- SPPoC : Symbolic Parameterized Polyhedral Calculator.
- Camomile : A collection of modules for multi-lingual text handling.
- Extlib : A project aiming at providing a complete - yet small - standard
library for the OCaml programming langage.
- Surreal : An exact real arithmetic library for objective caml.
- bdb : A Berkeley DB wrapper.
- Planets : A simple interactive program for playing with simulations of planetary systems.
- SKS : A new OpenPGP keyserver whose goal is to provide easy to deploy, decentralized, and highly reliable synchronization.
- BioCaml : An OCaml library of useful functions for bioinformatics.
- Regexp-OCaml : Convenient syntax sugar for regular expression match for strings using PCRE/OCaml library.
- OCamlBDB : A Berkeley DB wrapper for OCaml.
- OCamlGettext : GNU gettext binding for OCaml.
- OCamlSpread : A wrapper for a <a href="http://www.spread.org/">Spread</a> group communication toolkit.
- Syndex : A graphical interactive software implementing the <a href="http://www-rocq.inria.fr/syndex/#A3Metho">AAA methodology</a>, to find the best matching between an algorithm and an architecture.
- MLDonkey : A linux client developed in OCaml for the peer-to-peer file sharing network edonkey 2000.