OCamlPro/drom
drom is a wrapper over opam/dune in an attempt to provide a cargo-like user experience. It can be used to create full OCaml projects with sphinx and odoc documentation. It has specific knowledge of Github and will generate files for Github Actions CI and Github pages.
{ "createdAt": "2020-08-27T08:57:36Z", "defaultBranch": "master", "description": "drom is a wrapper over opam/dune in an attempt to provide a cargo-like user experience. It can be used to create full OCaml projects with sphinx and odoc documentation. It has specific knowledge of Github and will generate files for Github Actions CI and Github pages.", "fullName": "OCamlPro/drom", "homepage": "https://ocamlpro.github.io/drom", "language": "OCaml", "name": "drom", "pushedAt": "2025-10-27T21:08:56Z", "stargazersCount": 196, "topics": [], "updatedAt": "2025-11-11T15:50:20Z", "url": "https://github.com/OCamlPro/drom"}The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience. It can be used to create full OCaml projects with sphinx and odoc documentation. It has specific knowledge of Github and will generate files for Github Actions CI and Github pages.
- Website: https://ocamlpro.github.io/drom
- General Documentation: https://ocamlpro.github.io/drom/sphinx
- API Documentation: https://ocamlpro.github.io/drom/doc
- Sources: https://github.com/ocamlpro/drom
Simple Example
Section titled “Simple Example”You can create a new OCaml project with:
$ drom new my-client --skeleton mini_prgCreating project "my-client" with skeleton "mini_prg", license "LGPL2" and sources in src/my-client:Creating directory my-clientUsing skeleton "program" for package "my-client"[master (root-commit) 8d83262] Initial commit
└── my-client/ ├── .drom (drom state, do not edit) ├── .github/ │ └── workflows/ │ └── workflow.yml ├── .gitignore ├── CHANGES.md ├── LICENSE.md ├── Makefile ├── README.md ├── drom.toml <────────── project config EDIT ! ├── dune ├── dune-project ├── opam/ │ └── my-client.opam ├── scripts/ │ ├── after.sh │ ├── before.sh │ └── copy-bin.sh └── src/ └── my-client/ ├── dune ├── main.ml ├── package.toml <────────── package config EDIT ! └── version.mltThis project uses the minimalist mini_prg skeleton, but other skeletons
like program or library have more files.