Reason native compilation starter project
Switch branches/tags
Nothing to show
Clone or download


Reason project for native compilation:

More info on the workflow.

Build Status

Develop With OPAM


Clone the repo and run these commands from within the project:

opam update # get the latest opam packages data. Skip this optionally
# opam will read into the `opam` file and add the other dependencies
opam install reason
opam install merlin
opam install re
make build    # build/rebuild your files




  • Make sure you have merlin globally installed (via opam, not reason-cli!)
  • See the ReasonML docs about setting up your editor. Just remember to not install reason-cli when using opam.

Preliminary Esy Support

You may alternatively use esy to build and develop this project. (esy is like "npm for native"). This is preferable for people who want to build native Reason projects using existing opam packages, but with a more familiar and sandboxed workflow. This is experimental and not stable yet. Please report any issues to the esy repo.


npm install -g esy@latest
esy install
esy build


Use esy x ("esy execute") command to run the binary.

esy x reason-native-bin


  • See the ReasonML docs about setting up your editor.
  • Start your editor from the root of this project via esy vim or esy atom etc. (Note VSCode has special esy support so that you don't need to start it this way from the command line).
  • Add dependencies by adding entries to the package.json, running esy install then esy build.

Developing Your Project

The entrypoint of this project is the ./bin/ file. Make a simple change to it and then rerun the build.

ReasonNativeProject is meant to be the starting point of your own project. You'll want to make use of existing libraries in your app, so browse the growing set of opam packages in the opam repository.


In general, if something goes wrong, try upgrading your install of the project by running opam upgrade ReasonNativeProject, or if it failed to install and you later fixed it, opam install ReasonNativeProject.