Dune is a build system for OCaml projects. Using it, you can build executables, libraries, run tests, and much more.
Dune knows OCaml and its ecosystem
Dune has rules that precisely capture how the OCaml toolchain works.
It is able to interoperate with most of the existing tools like OPAM, merlin,
Dune is fast
Dune works hard to do things once and in parallel, so both cold and incremental builds are way faster than traditional build systems.
Dune is widely used
Dune is used in both large projects and small libraries. About 40% of OPAM packages are built using Dune.
(lang dune 3.6)
(executable (name hello_world) (libraries lwt.unix))
Lwt_main.run (Lwt_io.printf "Hello, world!\n")
$ dune exec ./hello_world.exe Hello, world!
Note: Dune uniformly uses the
.exe extension to build native executables, even on Unix where programs don’t usually have a