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.
This package is a line-reading library for OCaml that aims to replace readline.
Library to provide pure OCaml functions to manipulate real file (POSIX like) and filename.
This package includes only the ocp-index library and command-line tool.
Ppx_tools provides tools for authors of ppx rewriters and other syntactic tools.
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.
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.
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..
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.
Xml-Light provides functions to parse an XML document into an OCaml data structure, work with it, and print it back to an XML document. It also supports DTD parsing and checking, and is entirely written in OCaml, hence it does not require additional C libraries.
Adds Erlang-style bitstrings and matching over bitstrings as a syntax extension and library for OCaml. 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.