Lambda Soup is an HTML scraping library inspired by Python's Beautiful Soup. It provides lazy traversals from HTML nodes to their parents, children, siblings, etc., and to nodes matching CSS selectors. The traversals can be manipulated using standard functional combinators such as fold, filter, and map. The DOM tree is mutable. You can use Lambda Soup for automatic HTML rewriting in scripts. Lambda Soup rewrites its own ocamldoc page this way. A major goal of Lambda Soup is to be easy to use, including in interactive sessions, and to have a minimal learning curve. It is a very simple 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.
Documentation at https://melpa.org/#/ocamlformat
JUnit XML reports generation for OUnit tests
Documentation at https://melpa.org/#/ocaml-eglot
Documentation at https://melpa.org/#/learn-ocaml
Defines the signature for time-related operations for MirageOS.
The Core suite of libraries is an alternative to OCaml's standard library.
This package provides OCaml (.ml and .mli) grammars for the Tree-sitter library.
Library for pretty-printing s-expressions, using better indentation rules than the default pretty printer in Sexplib.
This package provides the MirageOS `OS` library for Unix targets, which handles the main loop and timers.
Easy-format is a high-level and functional interface to the Format module of the OCaml standard library.
This package allows you to produce, from a set of bibliography files in BibTeX format, a bibliography in HTML format.
Parses and constructs RFC compliant domain names. The invariants on the length of domain names are preserved throughout the module.
Eio_main
selects an appropriate backend (e.g. eio_linux or eio_luv), depending on your platform.
This package provides a library for parsing the contents of OCaml documentation comments, formatted using Odoc syntax, an extension of the language understood by ocamldoc.
Ppx_optcomp stands for Optional Compilation. It is a tool used to handle optional compilations of pieces of code depending of the word size, the version of the compiler, ...
Ocb-stubblr is about ten lines of code that you need to repeat over, over, over and over again if you are using ocamlbuild to build OCaml projects that contain C stubs.
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.