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 -- extremely simple to use -- to sophisticated random generation of test cases.
Ptime offers platform independent POSIX time support in pure OCaml. It provides a type to represent a well-defined range of POSIX timestamps with picosecond precision, conversion with date-time values, conversion with RFC 3339 timestamps and pretty printing to a human-readable, locale-independent representation.
OTOML is a library for parsing, manipulating, and pretty-printing TOML files. * Fully 1.0.0-compliant. * No extra dependencies: default implementation uses native numbers and represents dates as strings. * Provides a functor for building alternative implementations: plug your own bignum and calendar libraries if required. * Informative parse error reporting. * Pretty-printer offers flexible indentation options.
Uuseg is an OCaml library for segmenting Unicode text. It implements the locale independent Unicode text segmentation algorithms to detect grapheme cluster, word and sentence boundaries and the Unicode line breaking algorithm to detect line break opportunities.
The library is independent from any IO mechanism or Unicode text data structure and it can process text without a complete in-memory representation.
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 such as monitoring package evolutions, correct and complete dependency resolution and repository-wide uninstallability checks.
TyXML provides a set of convenient combinators that uses the OCaml type system to ensure the validity of the generated documents. TyXML can be used with any representation of HTML and SVG: the textual one, provided directly by this package, or DOM trees (js_of_ocaml-tyxml
) virtual DOM (virtual-dom
) and reactive or replicated trees (eliom
). You can also create your own representation and use it to instantiate a new set of combinators.
Timed references for imperative state. This module provides an alternative type for references (or mutable cells) supporting undo/redo operations. In particular, an abstract notion of time is used to capture the state of the references at any given point, so that it can be restored. Note that usual reference operations only have a constant time / memory overhead (compared to those of the standard library).
Moreover, we provide an alternative implementation based on the references of the standard library (Pervasives module). However, it is less efficient than the first one.
This library provides minimal support for Canonical S-expressions. Canonical S-expressions are a binary encoding of S-expressions that is super simple and well suited for communication between programs.
This library only provides a few helpers for simple applications. If you need more advanced support, such as parsing from more fancy input sources, you should consider copying the code of this library given how simple parsing S-expressions in canonical form is.
To avoid a dependency on a particular S-expression library, the only module of this library is parameterised by the type of S-expressions.
Spawn is a small library exposing only one functionality: spawning sub-process.
It has three main goals:
provide missing features of Unix.create_process such as providing a working directory,
provide better errors when a system call fails in the sub-process. For instance if a command is not found, you get a proper
Unix.Unix_error
exception,improve performances by using vfork when available. It is often claimed that nowadays fork is as fast as vfork, however in practice fork takes time proportional to the process memory while vfork is constant time. In application using a lot of memory, vfork can be thousands of times faster than fork.
Lexer generator for Unicode and OCaml.
Lexer generator for Unicode and OCaml.
This package provides the utility library included with Dune.
This module provides a vi-like modal editing engine generator.
IP address types with serialization, supporting a wide range of RFCs.
This package provides an effect-based IO API for multicore OCaml with fibers.
This library is a compatibility module for the Either module defined in OCaml 4.12.0.
OUnit2 is a unit testing framework for OCaml. It is similar to JUnit and other XUnit testing frameworks.
Cohttp is an OCaml library for creating HTTP daemons. It has a portable HTTP parser, and implementations using various asynchronous programming libraries.
This package provides utilities for building unitary testing of interactive program. You can match the question using a regular expression or a timeout.
Lacaml interfaces the BLAS-library (Basic Linear Algebra Subroutines) and LAPACK-library (Linear Algebra routines). It also contains many additional convenience functions for vectors and matrices.
Uses the new result type defined in OCaml >= 4.03 while staying compatible with older version of OCaml should use the Result module defined in this library.