🏗️ This page is under heavy development. It may change or be broken at any moment until it is stable.

Dune Developer Preview

Setup OCaml in under a minute

The Dune Developer Preview is an experimental nightly release of Dune that lets you develop, test, run, and manage dependencies for OCaml projects – all with just Dune - following the OCaml Platform Roadmap.

Install Dune

curl -fsSL https://get.dune.build/install | bash

If you wish to install the binary distribution manually, please follow the manual installation instructions.

Getting Started

You can create and run your first hello-world program using Dune like this:

$ dune init proj hello_world
$ cd hello_world
$ dune pkg lock
$ dune exec hello_world

For more information on Dune and Package Management, check the latest dune docs.

Share Feedback

We are excited to learn from your experience with the Dune Developer Preview, so feel encouraged to tell us what you think:

Frequently Asked Questions

Is it stable?

No. For a stable release of OCaml, please follow the installation guide on OCaml.org. The Developer Preview is an unstable distribution of Dune and, by nature, will always be unstable. However, its features will stabilise over time and move to a stable release of Dune. If you use the Developer Preview, expect bugs and please report them to ocaml/dune

Does it support Windows?

No, not yet. Watch this space for news!

Can I build the Developer Preview of Dune from sources?

Yes. the only difference from a regular build from source is in a few configuration flags. Please look in the Dune repository for complete instructions on how to do a source build of Dune.

When configuring the build you'll want to enable the following flags:

--enable-toolchains
--enable-pkg-build-progress
--enable-lock-dev-tool

Can I access these features from a version of Dune managed by opam?

Yes, but we can't guarantee they will work correctly since the Dune Developer Preview makes some assumptions for package management that aren't supported by opam.

To enable these features make sure you are pinning dune to the development version, and export the following environment variables:

$ opam pin add dune --dev
$ export DUNE_CONFIG__TOOLCHAINS=enabled
$ export DUNE_CONFIG__PKG_BUILD_PROGRESS=enabled
$ export DUNE_CONFIG__LOCK_DEV_TOOL=enabled

Manual Installation

In this section you'll find instructions to manually install the Dune Developer Preview, and verify the installation. This is recommended for advanced users, or if you want so understand where the binaries come from.

Featured Downloads

This is the latest release of the Dune Developer Preview. See the release history section for all past releases.

Installing the binary

After downloading a binary release of Dune, make it executable and place it somewhere reachable by your PATH:

$ chmod u+x ./dune
$ sudo mv ./dune /usr/local/bin/dune
You can verify your installation by running:
$ dune --version
"Dune Developer Preview: build , git revision cc260345db57ab639db6363b2dc89072a1492832"

Verifying the Dune binary

To ensure trust in the binary distribution, we generate a build certificate associated with the Github Actions pipeline where the binaries are built. Once you download this certificate, you can use the gh tool to verify it with the following command:

$ gh attestation verify ./dune -R ocaml-dune/binary-distribution --bundle attestation.jsonl

Release History

Here is a list of the 10 releases of the Dune Developer Preview so far.

dune nightly-2024-10-06
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch645c752b8a149ab106462011e2b275185e52ec4e73Certificate
dune-x86_64-apple-darwinmacOSx86-645c752b8a149ab106462011e2b275185e52ec4e73Certificate
dune-x86_64-unknown-linux-muslLinuxx86-645c752b8a149ab106462011e2b275185e52ec4e73Certificate
dune nightly-2024-10-05
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch645286edcb988ae31b7da01a4a8592e8aac142139bCertificate
dune-x86_64-apple-darwinmacOSx86-645286edcb988ae31b7da01a4a8592e8aac142139bCertificate
dune-x86_64-unknown-linux-muslLinuxx86-645286edcb988ae31b7da01a4a8592e8aac142139bCertificate
dune nightly-2024-10-04
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch6457f435d02f2c01568fea9c3a7b11f74642a33322Certificate
dune-x86_64-apple-darwinmacOSx86-6457f435d02f2c01568fea9c3a7b11f74642a33322Certificate
dune-x86_64-unknown-linux-muslLinuxx86-6457f435d02f2c01568fea9c3a7b11f74642a33322Certificate
dune nightly-2024-10-03
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch648ff0a8998cec369c2e37fb17b08b84da0872bf0cCertificate
dune-x86_64-apple-darwinmacOSx86-648ff0a8998cec369c2e37fb17b08b84da0872bf0cCertificate
dune-x86_64-unknown-linux-muslLinuxx86-648ff0a8998cec369c2e37fb17b08b84da0872bf0cCertificate
dune nightly-2024-10-02
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch64451e5b4463c4fe5b4f5427c0a40a5962c38ccc0fCertificate
dune-x86_64-apple-darwinmacOSx86-64451e5b4463c4fe5b4f5427c0a40a5962c38ccc0fCertificate
dune-x86_64-unknown-linux-muslLinuxx86-64451e5b4463c4fe5b4f5427c0a40a5962c38ccc0fCertificate
dune nightly-2024-10-01
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch6463fac22cfeabeb665f714361f8da1dcd7281f300Certificate
dune-x86_64-apple-darwinmacOSx86-6463fac22cfeabeb665f714361f8da1dcd7281f300Certificate
dune-x86_64-unknown-linux-muslLinuxx86-6463fac22cfeabeb665f714361f8da1dcd7281f300Certificate
dune nightly-2024-09-30
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch649f3cda70d29982105171e1435bf4caafce07866dCertificate
dune-x86_64-apple-darwinmacOSx86-649f3cda70d29982105171e1435bf4caafce07866dCertificate
dune-x86_64-unknown-linux-muslLinuxx86-649f3cda70d29982105171e1435bf4caafce07866dCertificate
dune nightly-2024-09-29
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch6471db2d47fad82865c8035ef3553e0136cb08e337Certificate
dune-x86_64-apple-darwinmacOSx86-6471db2d47fad82865c8035ef3553e0136cb08e337Certificate
dune-x86_64-unknown-linux-muslLinuxx86-6471db2d47fad82865c8035ef3553e0136cb08e337Certificate
dune nightly-2024-09-28
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch6417071ec30d10390badcb6cb1f6a43984b1be54a6Certificate
dune-x86_64-apple-darwinmacOSx86-6417071ec30d10390badcb6cb1f6a43984b1be54a6Certificate
dune-x86_64-unknown-linux-muslLinuxx86-6417071ec30d10390badcb6cb1f6a43984b1be54a6Certificate
dune nightly-2024-09-27
File nameOSArchCommitCertificate
dune-aarch64-apple-darwinmacOSaarch6417071ec30d10390badcb6cb1f6a43984b1be54a6Certificate
dune-x86_64-apple-darwinmacOSx86-6417071ec30d10390badcb6cb1f6a43984b1be54a6Certificate
dune-x86_64-unknown-linux-muslLinuxx86-6417071ec30d10390badcb6cb1f6a43984b1be54a6Certificate