OCaml Packages
Explore thousands of open-source OCaml packages with their documentation
Publish a Package
opam
The OCaml Package Manager
Opam is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow
-
4455
Packages
-
20
New packages this month
-
70
Updates this week
packages
Most Used
odoc
OCaml Documentation Generator
alcotest
Alcotest is a lightweight and colourful test framework
lwt
Promises and event-driven I/O
fmt
OCaml Format pretty-printer combinators
logs
Logging infrastructure for OCaml
New Packages
jws
Implementation of JWS (RFC7515) with Jsont and mirage-crypto
lunar
A very small date management library
opentelemetry-client-ocurl-lwt
Collector client for opentelemetry, using ezcurl-lwt
opentelemetry-client
Client SDK for https://opentelemetry.io
sm
Pure OCaml Chinese National Cryptographic Algorithm Library (SM2/SM3/SM4/ZUC)
Recently Updated
jws
Implementation of JWS (RFC7515) with Jsont and mirage-crypto
lunar
A very small date management library
ez_cmdliner
Easy interface to Cmdliner à la Arg.parse with sub-commands
google-drive-ocamlfuse
A FUSE filesystem over Google Drive
lambda-term
Terminal manipulation library for OCaml
stable ecosystem
Focus on Your Code, and opam Takes Care of Distributing It
Our users have the highest standards for the OCaml ecosystem to run mission-critical applications across a variety of operating systems, and they expect that a package that compiles today will still work a decade from now
Continuous Integration
Before any package update, we run sandboxed matrix builds for boundaries of the dependencies and for each of the dependent packages. A package publication will never break the rest of the ecosystem.
State of the Art
Opam supports publishing multiple versions of packages simultaneously to specify the version constraints, so only compatible revisions are chosen for a build. It comes with a performant constraint solver, a flexible CLI, a well-specified metadata format, and an easy access to the package manager logic via OCaml libraries.
Package Stability
The opam project and package repository is maintained by a team of developers who ensure that everything is not only running smoothly, but also curated to maintain a high degree of metadata quality. This makes it one of the most stable package repositories available today.
documentation
Automatic Documentation Generation
Every package published to opam gets its documentation built and hosted automatically on this website.
How It Works
Documentation is generated using odoc, the OCaml documentation tool. When you publish a package, a continuous integration pipeline called ocaml-docs-ci automatically picks it up, builds the documentation for all versions, and makes it available here.
The pipeline is built with OCurrent, a workflow specification language written in OCaml that powers much of the OCaml ecosystem's CI infrastructure.
Writing Good Documentation
To make the most of automatic documentation generation, add doc-comments to your .mli files
using the odoc syntax. These comments will be rendered as formatted documentation with cross-references to other modules and packages.
Learn more about writing documentation in the odoc documentation.
community
Start Contributing
Learn how to publish your first Opam package today and make it available to the rest of the community.