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.
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.
Documentation at https://melpa.org/#/ocaml-ts-mode
This package implements an Ocaml language server implementation.
This package provides an OCaml library for calling OCamlFormat remotely.
This package generates S-expression conversion functions from type definitions.
Mirage-crypto provides symmetric ciphers (DES, AES, RC4, ChaCha20/Poly1305), and hashes (MD5, SHA-1, SHA-2).
These libraries provides access to low-level compiler interfaces and the standard higher-level merlin protocol.
This package provides a way to write bitstrings and matching over bitsrings in Erlang style as primitives to the language.
OCamlFormat is a tool to automatically format OCaml code in a uniform style. This package defines a RPC interface to OCamlFormat.
Ppx_enumerate is a ppx rewriter which generates a definition for the list of all values of a type (for a type which only has finitely many values).
This package simply repackages the OCaml compiler libraries so they don't expose everything at toplevel. For instance, Ast_helper
is now Ocaml_common.Ast_helper
.
The opam monorepo plugin provides a convenient interface to bridge the opam package manager with having a local copy of all the source code required to build a project using the dune build tool.
Optimised functions to read and write int16/32/64 from strings and bigarrays, based on new primitives added in version 4.01. It works on strings, bytes and bigstring (Bigarrys of chars), and provides submodules for big- and little-endian, with their unsafe counter-parts.
Expect-test is a framework for writing tests in OCaml, similar to Cram. Expect-tests mimics the existing inline tests framework with the let%expect_test
construct. The body of an expect-test can contain output-generating code, interleaved with %expect
extension expressions to denote the expected output.
This package provides two library modules:
Stream: imperative streams, with in-place update and memoization of the latest element produced.
Genlex: a small parameterized lexical analyzer producing streams of tokens from streams of characters.
The two modules are designed for use with Camlp4 and Camlp5: The stream patterns and stream expressions of Camlp4/Camlp5 consume and produce data of type 'a Stream.t. The Genlex tokenizer can be used as a simple lexical analyzer for Camlp4/Camlp5-generated parsers.
The Stream module can also be used by hand-written recursive-descent parsers, but is not very convenient for this purpose.
The Stream and Genlex modules have been part of the OCaml standard library for a long time, and have been distributed as part of the core OCaml system. They will be removed from the OCaml standard library at some future point, but will be maintained and distributed separately in the camlpstreams package.
Documentation at https://melpa.org/#/flycheck-ocaml
This package generates JUnit XML reports from ocaml-alcotest test suites.
This package provides a bundle of useful runtime functions for applications built with MirageOS
This package provides string type based on [Bigarray], for use in I/O and C-bindings.
ppx-sexp-value is a ppx rewriter that simplifies building s-expressions from ocaml values.
This module implements purely in OCaml a character width function that follows the prototype of POSIX's wcwidth.
afl-fuzz normally works by repeatedly forking the program being tested. Using this package, you can run afl-fuzz in ``persistent mode'', which avoids repeated forking and is much faster.