OCaml Documentation Hub
OCaml Documentation Hub is a comprehensive documentation generated for a large set of Opam packages. It provides inter-package links in the documentation, and access to the corresponding sources.
2,165 packages | 2,714 libraries | 3,279 metas | 17,299 modules |
Entry Points
- Documentation indexed by:
- Browsable Sources indexed by Opam Packages
- Reference Manual of the OCaml Language
Screenshots
![]() |
![]() |
![]() |
![]() |
About Digodoc
digodoc
. digodoc
generates documentation for all the packages installed in a switch, indexed by opam packages, libraries, metas and modules. It is also able to transform package sources into browsable html pages.
Roadmap
- Provide full text and types of expressions global search
- Fix documentation generation for some packages (ocamlgraph, ...)
- Add typing information in sources
- Add cross-packages links in sources
- Link documentation and sources
- Improve odoc style
- Manage multiple versions of packages
Frequently Asked Questions
1. Can I contribute to this site ?
Yes, all contributions are welcome! The easiest way is to submit ideas and issues on the bug tracker of the digodoc
project on Github. You can also directly modify the tools we use to improve them: beside digodoc
, the odoc
tool is also a good candidate for such work. Finally, if you are a student, OCamlPro usually takes interns during the summer, it's a great way to have a direct impact on the website from within the team that built it!
2. Why some opam
packages are not listed ?
Currently, the documentation is generated by installing all the packages in a single opam
switch for OCaml 4.10.0 on a Linux/Debian amd64 computer. So, only co-installable packages in this system are present.
3. Why the version of package X is not the most recent one ?
There are two main reasons: first, we regenerate the documentation from time to time, we don't follow closely the state of the opam
repository; second, we try to maximize the number of packages in an opam
switch, it sometimes requires to downgrade some package versions to increase the number of packages compatible with it.
4. Why are the modules of some packages not documented ?
The most frequent reason for a missing module documentation is the lack of installation of .cmt
files. This usually happens for packages that use Makefiles
for example (ocamlgraph
). We are currently working on a way to solve this issue by patching the OCaml compiler. Note that we are interested in listing all such packages, so if you notice one, notify us!
5. Are there links between the documentation pages and the sources pages ?
Not yet. However, we plan to work on adding such a feature in the next version. We will probably need to dive deeper into odoc
for that.
6. Isn't the modules index slow to load ?
Yes, it includes more than 17000 modules, and takes some time to load. We plan to create a dynamic version of the site soon, that will load the index incrementally.
7. Is it possible to do a text search in the documentation ?
Not yet. However, we plan to add several search features when we will move to a dynamic website. For example, we will allow users to perform type-driven queries alongside standard full-text searches.