Involved Projects and Packages
Haxe is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities.
Benchmark provides functions to measure and compare the run-time of functions.
It is inspired by the Perl module of the same name.
Cmdliner is a module for the declarative definition of command line interfaces.
It provides a simple and compositional mechanism to convert command line
arguments to OCaml values and pass them to your functions. The module
automatically handles syntax errors, help messages and UNIX man page
generation. It supports programs with single or multiple commands and respects
most of the POSIX and GNU conventions.
Dose3 is a framework made of several OCaml libraries for managing distribution
packages and their dependencies.
Though not tied to any particular distribution, dose3 constitutes a pool of
libraries which enable analyzing packages coming from various distributions.
Besides basic functionalities for querying and setting package properties,
dose3 also implements algorithms for solving more complex problems (monitoring
package evolutions, correct and complete dependency resolution, repository-wide
Iterators for OCaml, both restartable and consumable.
The implementation keeps a good balance between simplicity and performance.
Jsonm is an OCaml non-blocking streaming codec to decode and encode the JSON
data format. It can process JSON text without blocking on IO and without a
complete in-memory representation of the data.
The uncut codec also processes whitespace and (non-standard) JSON with
mccs (which stands for Multi Criteria CUDF Solver) is a CUDF problem solver
developed at UNS during the European MANCOOSI project.
This library converts between parsetrees of different OCaml versions.
For each version, there is a snapshot of the parsetree and conversion
functions to the next and/or previous version.
A parallel, incremental and declarative build system for OCaml.
Obuild acts as a building black box: users only declare what they want to
build and with which sources; the build system will consistently build it.
The design is based on Haskell's Cabal and borrows most of the layout and
way of working, adapting parts where necessary to fully support OCaml.
OCamlgraph is a graph library for Objective Caml.
Ppx_derivers is a tiny package whose sole purpose is to allow
ppx_deriving and ppx_type_conv to inter-operate gracefully when
linked as part of the same ocaml-migrate-parsetree driver.
A variant of ppx_tools based on ocaml-migrate-parsetree.
OCaml implementation of an efficient maps over integers,
from a paper by Chris Okasaki.
This module allows to check invariants (properties of some types) over
randomly generated instances of the type. It provides combinators for
generating instances and printing them.
qtest extracts inline unit tests written using a special syntax in
comments. Those tests are then run using the oUnit framework and the
qcheck library. The possibilities range from trivial tests
to sophisticated random generation of test cases.
Pure OCaml regular expressions, with support for Perl and POSIX-style strings.
Ropes ("heavyweight strings") are a scalable string implementation:
they are designed for efficient operation that involve the string as
a whole. Operations such as concatenation, and substring take time
that is nearly independent of the length of the string. Unlike
strings, ropes are a reasonable representation for very long strings
such as edit buffers or mail messages.
A lexer generator for OCaml, similar to ocamllex, but supporting Unicode.
Contrary to ocamllex, lexer specifications for sedlex are embedded in
regular OCaml source files.
A binding for SHA interface code in OCaml. Offering the same interface than
the MD5 digest included in the OCaml standard library.
It's currently providing SHA1, SHA256 and SHA512 hash functions.
Uutf is a non-blocking streaming codec to decode and encode the UTF-8,
UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficiently
work character by character without blocking on IO. Decoders perform
character position tracking and support newline normalization.
Functions are also provided to fold over the characters of UTF encoded
OCaml string values and to directly encode characters in OCaml
OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
This is a parser and a printer for the opam file syntax.