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
-
4470
Packages
-
30
New packages this month
-
95
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
nats-client-async
Lean OCaml Async NATS client
nats-client
Lean OCaml NATS protocol client
azure-cosmos-db-eio
Eio backend for azure-cosmos-db
azure-cosmos-db-lwt
Lwt backend for azure-cosmos-db
atd-jsonlike
Generic JSON-like AST for use with ATD code generators
Recently Updated
jasmin
Compiler for High-Assurance and High-Speed Cryptography
alt-ergo-lib
The Alt-Ergo SMT prover library
alt-ergo-parsers
The Alt-Ergo SMT prover parser library
alt-ergo-plugin-ab-why3
An experimental Why3 frontend for Alt-Ergo
alt-ergo
The Alt-Ergo SMT prover
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.