📈 GH Trending Explorer 🎲 Surprise me

← all repos

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)

2026-10-20 · 1,930 ★ 2026-10-22 · 1,931 ★
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

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