A wrapper over opam/dune providing a cargo-like experience for creating and managing OCaml projects with integrated documentation and CI.
drom is a command-line tool that wraps opam and dune to provide a cargo-like user experience for OCaml developers. It automates the creation of full OCaml projects, including documentation with sphinx and odoc, and generates configuration files for GitHub Actions CI and GitHub Pages. It solves the problem of manual project setup and configuration in the OCaml ecosystem.
OCaml developers and teams looking for a streamlined, opinionated tool to bootstrap and manage OCaml projects with minimal boilerplate and integrated CI/CD workflows.
Developers choose drom because it brings the convenience and productivity of Rust's cargo to OCaml, automating repetitive setup tasks, ensuring best practices for documentation and CI, and providing a unified configuration interface.
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.
Generates complete OCaml project skeletons like mini_prg, program, and library with all necessary files, as shown in the README's example output, reducing boilerplate setup time.
Automatically configures sphinx and odoc documentation systems, ensuring projects have comprehensive docs from the start without manual tooling.
Creates ready-to-use GitHub Actions CI and GitHub Pages configuration files, simplifying deployment and continuous integration for OCaml projects on GitHub.
Uses editable TOML files (drom.toml and package.toml) for project and package settings, making customization straightforward and centralized.
Heavily tailored for GitHub, making it less adaptable for projects using other CI/CD platforms or version control systems like GitLab, as admitted in its focus on GitHub-specific features.
As a wrapper over opam and dune, it adds an extra layer that can obscure low-level details and debugging, potentially complicating issues for advanced users.
Pre-defined skeletons may not suit all project structures, forcing manual modifications for complex or non-standard setups, which can negate the automation benefits.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.