ocaml / dune
git clone https://github.com/ocaml/dune.git
3.24.2 · 2mo ago
🔥 on GitHub Trending today
A composable build system for OCaml.
+0
stars, 24h · #15,481
+~0
stars, 7 days · #15,986
+15
stars, 30 days · #22,168
1.9k
★ total
505
forks · 1.0k open issues
Star history (as recorded here)
LanguageOCaml
LicenseMIT
Created2016-10-30 (9y ago)
Last pushtoday
Watchers41
OwnerOrganization
Seen on GitHub Trending
- 2026-10-22 — #4 daily in ocaml · +1 ★
- 2026-10-22 — #9 monthly in ocaml · +14 ★
- 2026-10-21 — #3 daily in ocaml · +1 ★
- 2026-10-21 — #9 monthly in ocaml · +15 ★
- 2026-10-20 — #3 daily in ocaml · +2 ★
- 2026-10-20 — #9 monthly in ocaml · +14 ★
GitHub topics
Links
- GitHub: github.com/ocaml/dune
- Homepage: https://dune.build/
- Releases · Issues · Hacker News mentions
README excerpt
![Dune][logo] # A Composable Build System for OCaml [![Main Workflow][workflow-badge]][workflow] [![Release][release-badge]][release] [![License][license-badge]][license] [![Contributors][contributors-badge]][contributors] [logo]: doc/assets/imgs/dune_logo_459x116.png [workflow]: https://github.com/ocaml/dune/actions/workflows/workflow.yml [workflow-badge]: https://img.shields.io/github/actions/workflow/status/ocaml/dune/workflow.yml?label=CI&logo=github [release]: https://github.com/ocaml/dune/releases/latest [release-badge]: https://img.shields.io/github/v/release/ocaml/dune?label=release [license]: https://github.com/ocaml/dune/blob/main/LICENSE.md [license-badge]: https://img.shields.io/github/license/ocaml/dune [contributors]: https://github.com/ocaml/dune/graphs/contributors [contributors-badge]: https://img.shields.io/github/contributors-anon/ocaml/dune Dune is a build system for OCaml. It provides a consistent experience and takes care of the low-level details of OCaml compilation. You need only to provide a description of your project, and Dune will do the rest. Dune implements a scheme that's inspired from the one used inside Jane Street and adapted to the open source world. It has matured over a long time and is used daily by hundreds of developers, meaning it's highly tested and productive. Dune comes with a [manual][manual]. If you want to get started without reading too much, look at the [quick start guide][quick-start] or watch [this introduction video][video]. The [example][example] directory contains examples of projects using Dune. [manual]: https://dune.readthedocs.io/en/latest/ [quick-start]: https://dune.readthedocs.io/en/latest/quick-start.html [example]: https://github.com/ocaml/dune/tree/main/example [merlin]: https://github.com/ocaml/merlin [opam]: https://opam.ocaml.org [issues]: https://github.com/ocaml/dune/issues [discussions]: https://github.com/ocaml/dune/discussions [dune-release]: https://github.com/ocamllabs/dune-release [video]: https://youtu.be/BNZhmMAJarw # How does it work? Dune reads project metadata from `dune` files, which are static files with a simple S-expression syntax. It uses this information to setup build rules, generate configuration files for development tools such as [Merlin][merlin], handle installation, etc. Dune itself is fast, has very little overhead, and supports parallel builds on all platforms. It has no system dependencies. OCaml is all you need to build Dune and packages using Dune. In particular, one can install OCaml on Windows with a binary installer and then use only the Windows Console to build Dune and packages using Dune. # Strengths ## Composable Dune is composable, meaning that multiple Dune projects can be arranged together, leading to a single build that Dune knows how to execute. This allows for monorepos of projects. Dune makes simultaneous development on multiple packages a trivial task. ## Gracefully Handles Multi-Package Repositories Dune knows how to handle repositorie