macOS
brew install dunelocal Homebrew formula metadata
sudo port install duneMacPorts ports tree · shells/dune/Portfile · source: api.github.com
brew
Composable build system for OCaml. Version 3.24.0 via Homebrew; verified 2026-06-22.
install
brew install dunelocal Homebrew formula metadata
sudo port install duneMacPorts ports tree · shells/dune/Portfile · source: api.github.com
sudo apk add duneAlpine Linux edge package indexes · dune · source: dl-cdn.alpinelinux.org
sudo dnf install ocaml-duneFedora Rawhide package metadata · ocaml-dune · source: dl.fedoraproject.org
nix profile install nixpkgs#dunenixpkgs package indexes · pkgs/by-name/du/dune/package.nix · source: api.github.com
sudo pacman -S duneArch Linux sync databases · dune · source: geo.mirror.pkgbuild.com
overview
Composable build system for OCaml
history
Dune is the dominant build system for OCaml projects, with support for OCaml, Reason, and Coq workflows. Its significance is that it standardized a large part of OCaml package building around declarative `dune`, `dune-project`, and `dune-workspace` files rather than per-project build scripts.
Dune began as jbuilder, a build system derived from ideas used inside Jane Street and adapted for open-source OCaml projects. The upstream README still frames Dune as inspired by Jane Street's internal build scheme and matured through daily use by hundreds of developers.
The project was renamed from jbuilder to Dune during the 1.x era. The Dune project documented a staged deprecation of the `jbuilder` binary and `jbuild` files, with automatic `dune upgrade` support to migrate projects to `dune` files and `dune-project` metadata.
Dune's public repository is maintained under the OCaml GitHub organization. GitHub metadata records the repository as created in 2016, with OCaml as the main language, MIT licensing, and ongoing 3.x releases through 2026.
Dune adoption spread through the OCaml packaging ecosystem because opam packages could use a common build invocation, and Dune itself documents recommended package builds such as `dune build -p name -j jobs` and `dune runtest -p name -j jobs`.
The package is distributed across Homebrew, Alpine, Fedora, MacPorts, Nix, and Arch, reflecting its role as a workstation and CI prerequisite for building many OCaml packages outside opam-only environments.
Typical users write `dune` files with S-expression stanzas and let Dune generate build rules, installation metadata, and editor-tool configuration. Dune also supports workspaces, multi-package repositories, multiple build contexts, tests, documentation targets, and cross-compilation workflows.
For package managers, the important interface is the `dune` executable plus the conventional project files it understands. The installed tool is often needed not because users run Dune directly as an application, but because downstream OCaml packages declare Dune as their build system.
Dune is package-nerd important because it turned OCaml builds from a patchwork of ocamlbuild, oasis, makefiles, and custom scripts into a largely uniform package-manager target. A formula for Dune unlocks many other formulae.
Its jbuilder-to-dune migration is also a useful packaging case study: upstream kept compatibility for old names, emitted warnings, and shipped an upgrader, giving distributions and opam packages a path away from historical build files without a flag day.
security posture
generalized runtime or code generation signal.
yellow risk · medium confidence · runtime
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
dunedune-projectdune-workspaceexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
dune | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:dune |
|---|---|
| Version | 3.24.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/dune |
| Homepage | https://dune.build/ |
| Repository | https://github.com/ocaml/dune |
| Upstream docs | https://dune.readthedocs.io/en/stable |
| License | MIT |
| Source archive | https://github.com/ocaml/dune/releases/download/3.24.0/dune-3.24.0.tbz |
| Last updated | 2026-06-22T01:48:19Z |
| Pulse | updated |
| Build dependencies | ocaml |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | dune |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
dune
nix profile install nixpkgs#dunedune 3.22.2-r0
Composable build system for OCaml (formerly Jbuilder)
sudo apk add dunedune-configurator 3.22.2-r0
System config helper for the Dune OCaml build system
sudo apk add dune-configuratordune-doc 3.22.2-r0
Composable build system for OCaml (formerly Jbuilder) (documentation)
sudo apk add dune-docdune-emacs 3.22.2-r0
Emacs plugins for dune
sudo apk add dune-emacsocaml-dune 3.23.1-1.fc45
Composable build system for OCaml and Reason
sudo dnf install ocaml-dunedune 3.22.2-1
A composable build system for OCaml (formerly jbuilder)
sudo pacman -S dunedune
sudo port install dunesource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.