Humpopaedia - centralize tips, opinion, use cases and general discussion about Ocaml libraries and tools registered in the Caml Hump, which serves as a catalog.
Note: The sections below are not meant to replace the multi-dimensional categorization on the Caml Hump but to collect items by their most popular usage.
For general Ocaml development
Package management
It is recommended to use Godi, the ports-like, source-based package management system for Ocaml.
Standard library extensions and replacements
Serialization/unserialization
- Sexplib: Type-safe serialization and deserialization with automatic generation of converters in S-expression format. A must.
- json-wheel: Similar, but uses JSON format.
Useful syntax extensions
- micmatch: Easy regular expression submatching
- open_in: Open modules locally
- Bitmatch: A syntax extension for pattern-matching and encoding binary data, such as network packets.
String processing
Unicode
Regular expressions and lexing
XML-related
Important
- Cduce: Type-safe XML transduction language
- Xmlm: XML streaming input/output
Comparisons
Network-related
Libraries
- Ocamlnet: Complete network suite (including MIME parsers, HTTP client and servers, charset encoders/decoders)
Applications
Comparisons
Numerical computation
Status
The core Ocaml distribution does not include any library of numerical algorithms. However the following standard modules are relevant:
- The Complex module provides basic operation over complex numbers in rectangular representation.
- For arbitrary-precision arithmetic, there is the Num module
- The Bigarray module is useful for manipulating arrays with any number of dimensions in their native representation (as floats, doubles, signed or unsigned integers, shorts and bytes).
Comparisons of numerical packages