| CARVIEW |
Select Language
HTTP/2 200
server: GitHub.com
content-type: text/html; charset=utf-8
last-modified: Wed, 12 Apr 2023 13:14:35 GMT
access-control-allow-origin: *
etag: W/"6436aebb-18b1"
expires: Mon, 29 Dec 2025 23:35:07 GMT
cache-control: max-age=600
content-encoding: gzip
x-proxy-cache: MISS
x-github-request-id: 2C6C:2D8B9D:962E19:A897F5:69530DD3
accept-ranges: bytes
age: 0
date: Mon, 29 Dec 2025 23:25:07 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210058-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1767050708.691857,VS0,VE204
vary: Accept-Encoding
x-fastly-request-id: 085b1a4517a777518856e66f4d985baf450d3c07
content-length: 1920
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,
reason, and js_of_ocaml.
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.
dune-project
(lang dune 3.6)
dune
(executable
(name hello_world)
(libraries lwt.unix))
hello_world.ml
Lwt_main.run (Lwt_io.printf "Hello, world!\n")
Your shell
$ 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 .exe extension.

