This library contains functionality for reading and writing OCaml-values in a type-safe binary protocol. It is extremely efficient, typically supporting type-safe marshalling and unmarshalling of even highly structured values at speeds sufficient to saturate a gigabit connection. The protocol is also heavily optimized for size, making it ideal for long-term storage of large amounts of data.
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.
Angstrom is a parser-combinator library that makes it easy to write efficient, expressive, and reusable parsers suitable for high-performance applications. It exposes monadic and applicative interfaces for composition, and supports incremental input through buffered and unbuffered interfaces. Both interfaces give the user total control over the blocking behavior of their application, with the unbuffered interface enabling zero-copy IO. Parsers are backtracking by default and support unbounded lookahead.
Alcotest exposes simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks. Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.
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.
Utilities for working with terminal output, such as color printing.
Syntax extension for writing in-line benchmarks in ocaml code.
Ppx_tools provides tools for authors of ppx rewriters and other syntactic tools.
This package is a line-reading library for OCaml that aims to replace readline.
This package includes only the ocp-index
library and command-line tool.
Library to provide pure OCaml functions to manipulate real file (POSIX like) and filename.
Unix-specific extensions to some of the modules defined in core and core_kernel.
Define a standard set of libraries which may be expected on every compliant installation of OCaml and organize these libraries into a hierarchy of modules.
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.
Provides a single module named Stringext that provides a grab bag of often used but missing string functions from the stdlib. E.g, split, full_split, cut, rcut, etc..
DSL to describe a set of modules and functors, their types and how to apply them in order to produce a complete application. The main use case is mirage.
Compatibility module for OCaml standard library allowing programs to use some recent additions to the standard library while preserving the ability to be compiled on former versions of OCaml.
Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values.
This module provides a set of tools to measure the running times of your functions and to easily compare the results. A statistical test is used to determine whether the results truly differ.
Merlin is an editor service that provides modern IDE features for OCaml. Emacs and Vim support is provided out-of-the-box. External contributors added support for Visual Studio Code, Sublime Text and Atom.
Lwt provides typed, composable cooperative threads. These make it easy to run normally-blocking I/O operations concurrently in a single process. Also, in many cases, Lwt threads can interact without the need for locks or other synchronization primitives.
This package provides two union-find data structure implementations for OCaml. Both implementations are based on disjoint sets forests, with path compression and linking-by-rank, so as to guarantee good asymptotic complexity: every operation requires a quasi-constant number of accesses to the store.