A native Reason test runner that is heavily inspired by Jest

reason, facebook, jest, runner, test, testing, snapshot, rely, reason-native, native
npm install @reason-native/rely@3.2.1


Reason Native

Build Status Supported Platforms

Testing, printing, coloring, and other tools to effectively write native Reason code.


rely esy package on npm pastel esy package on npm console esy package on npm refmterr esy package on npm

@reason-native/rely: Native Jest style API.

@reason-native/console: A web-influenced polymorphic console API for native Console.log(anything) with runtime printing.

@reason-native/pastel: Terminal highlighting with support for nesting and style propagation.

refmterr: Utility for extracting structure from unstructured ocaml compiler errors, and displaying them.

@reason-native/file-context-printer: Utility for displaying snippets of files on the command line.

@reason-native/pastel-console: To be used in devDependencies. Enhances console with colors (not yet released)


Inside of this repo, there are several packages inside the src directory that are to be individually released when their APIs are sufficiently stable. Consult the docs for getting started with each package.


  • install esy (https://esy.sh/)
  • run esy install and esy build
  • test executables are currently defined in the respective .json files for each repository, to run them run esy x ExecutableName.exe
  • Look for Github issues tagged "good first issue".

Breaking changes

The packages in reason-native adhere to semantic versioning. Notably we do not consider changes that may induce warning 9 errors (such as adding new fields to records) to be breaking changes. Consequently minor version upgrades may cause warning 9 errors.


reason-native is MIT licensed, as found in the LICENSE file.