Core is an alternative to the OCaml standard library.
Core_kernel is the system-independent part of Core. It is aimed for cases when the full Core is not available, such as in Javascript.
Cstruct is a library and syntax extension to make it easier to access C-like structures directly from OCaml. It supports both reading and writing to these structures, and they are accessed via the Bigarray module.
Uses a Mirage CLOCK
to write timestamped log messages. It can also log only important messages to the console, while writing all received messages to a ring buffer which is displayed if an exception occurs. If tracing is enabled (via mirage-profile), it also writes each log message to the trace buffer.
Generation of fast comparison functions from type expressions and definitions. Ppx_compare is a ppx rewriter that derives comparison functions from type representations. The scaffolded functions are usually much faster than ocaml's Pervasives.compare. Scaffolding functions also gives you more flexibility by allowing you to override them for a specific type and more safety by making sure that you only compare comparable values.
The OCaml compiler has a bunch of intrinsics for Bigstrings, but they're not widely-known, sometimes misused, and so programs that use Bigstrings are slower than they have to be. And even if a library got that part right and exposed the intrinsics properly, the compiler doesn't have any fast blits between Bigstrings and other string-like types. bigstringaf
provides these missing pieces.
Lambda-Term is a cross-platform library for manipulating the terminal. It provides an abstraction for keys, mouse events, colors, as well as a set of widgets to write curses-like applications. The main objective of Lambda-Term is to provide a higher level functional interface to terminal manipulation than, for example, ncurses, by providing a native OCaml interface instead of bindings to a C library.
The "findlib" library provides a scheme to manage reusable software components (packages), and includes tools that support this scheme. Packages are collections of OCaml modules for which metainformation can be stored. The packages are kept in the file system hierarchy, but with strict directory structure. The library contains functions to look the directory up that stores a package, to query metainformation about a package, and to retrieve dependency information about multiple packages. There is also a tool that allows the user to enter queries on the command-line. In order to simplify compilation and linkage, there are new frontends of the various OCaml compilers that can directly deal with packages.
The "findlib" library provides a scheme to manage reusable software components (packages), and includes tools that support this scheme. Packages are collections of OCaml modules for which metainformation can be stored. The packages are kept in the file system hierarchy, but with strict directory structure. The library contains functions to look the directory up that stores a package, to query metainformation about a package, and to retrieve dependency information about multiple packages. There is also a tool that allows the user to enter queries on the command-line. In order to simplify compilation and linkage, there are new frontends of the various OCaml compilers that can directly deal with packages.
This package provides PCRE-based regular expressions support for Mparser.
Generation of binary serialization and deserialization functions from type definitions.
A ppx rewriter that inlines reverse application operators |>
and |!
.
This package backports new language features such as let+
to older OCaml compilers.
ANSITerminal is a module allowing to use the colors and cursor movements on ANSI terminals.
A ppx rewriter that rewrites simple match statements with an if then else expression.
Ppx_deriving provides common infrastructure for generating code based on type definitions, and a set of useful plugins for common tasks.
Contains Async
's core data structures, like Deferred
. Async_kernel
is portable, and so can be used in JavaScript using Async_js
.
This package is a no-op ppx rewriter. It is used as a lint
tool to enforce some coding conventions across all Jane Street packages.
Eio_linux
provides a Linux io-uring backend for Ocaml Eio
APIs, plus a low-level API that can be used directly (in non-portable code).
Output trace data to a file in Chrome's trace_event format. This format is compatible with chrome trace viewer chrome://tracing. This library offers no backwards compatibility guarantees.
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.
This package provides a GLR parser generator for OCaml. It is able to generate self-extensible parsers (also called adaptive parsers) as well as extensible lexers for the parsers it produces.
This package backports some of the new stdlib features to older compilers, such as the Stdlib module. This allows projects that require compatibility with older compiler to use these new features in their code.
React is an OCaml module for functional reactive programming (FRP). It provides support to program with time varying values: declarative events and signals. React doesn't define any primitive event or signal, it lets the client chooses the concrete timeline.
This library implements portable support for an operating system timesource that is compatible with the MirageOS library interfaces. It implements an MCLOCK
module that represents a monotonic timesource since an arbitrary point, and PCLOCK
which counts time since the Unix epoch.