Check melange.re to get started.
Melange is released to OPAM. Install it with:
$ opam install melange
Melange has good support for Nix:
github:melange-re/melangecan be added as a flake input
the melange flake provides a
melange.overlays.defaultoverlay that adds melange to
melcbinary can be run with
nix run github:melange-re/melange, e.g.
nix run github:melange-re/melange/2.0.0 -- --help
OCaml version compatibility
Melange v2.0 works on OCaml 5.1 only.
Melange v1.0 can build projects with OCaml >= 4.13 (including OCaml 5.x).
Editor integration only works on OCaml 4.14, because Melange emits
.cmtartifacts targeting the OCaml 4.14 binary format.
How does this project relate to other tools?
This project is forked from an earlier version of the ReScript compiler, focused on a deeper integration with the OCaml ecosystem. Such integration makes it easy to share code between backend and frontend using e.g. Dune's virtual libraries.
Melange 1.0 includes a ReScript compatibility layer to maintain compatibility with ReScript syntax - preserving access to ReScript's package ecosystem. Both ReScript and Melange have diverged significantly since then, and this compatibility layer was removed in Melange 2.0.
Below is a quick comparison between Melange and other tools:
|Obtaining dependencies such as
|Installed with e.g.
|Composable build tool for OCaml; supports composing custom rules to build any project
|Installed with e.g.
|Alternative syntax to OCaml
|Compiler that emits Script
|OPAM (to install), Dune (to build)
|Supports OCaml and Reason; derived from ReScript, focused on deeper integration with OCaml
|Distributed via NPM as prebuilt binaries; previously called BuckleScript
Thanks to the OCaml team, obviously, without such a beautiful yet practical language, this project would not exist.
Thanks to Bloomberg and Facebook. The ReScript project began at Bloomberg and was published in 2016; without the support of Bloomberg, it would not have happened. ReScript was funded by Facebook since July 2017.
See also Credits.md concerning some individual components of Melange.
See Credits for more details.