A cross-platform set of tools for building native UIs with Reason/OCaml.
The goal of the project is to allow developers efficiently create fast, native apps for all major platforms. It's the best of both worlds: speed and portability, simplicity and great APIs.
Our development workflow is managed with esy. It's an incredibly fast package manager that provides reproducible, sandboxed environment for your projects and caches builds.
npm -g i esy@next
We're open to contributions for supporting
Command Line Tools.
We're looking for contributors who would help us kickstart
This repository contains the core tooling, platform-specific renderers, and examples. To view examples, clone the repository and open an example project.
git clone email@example.com:briskml/brisk.git cd brisk/examples/components-macos
Building and running the example is a breeze:
esy esy run
We consider UI development an unsolved problem which is at the core of many inefficiencies both for creators and users. As a result, businesses lose money, hobbyists can't release their side projects, and users suffer from poor quality.
With Brisk, we want to make building great performant apps quick and painless.
We're building Brisk in Reason, a language with great performance characteristics - low memory footprint, near instant startup, and very fast execution. More importantly, it allows for great expressive APIs and has robust type system features, such as: Algebraic Data Types, Modules, and Pattern matching to name a few. (More about Reason)
All the layout and UI interactions happen on the main thread, leaving all IO/Networking on a secondary, background thread.
We made a deliberate choice to use native widgets to deliver the smoothest and platform-like experience. The
iOS renderers leverage
Windows renderer will build upon
UWP, help us make the choice);
Android renderer will interface with
Android SDK, etc.
This will provide great performance and allow for using both the native system controls, and implementing identical cross-platform components.
If you'd rather have a single cross-platform codebase similar to Electron apps, our sister project Revery's contributors took it upon themselves to rebuild the whole UI infrastructure from scratch to achieve the same UI on all platforms (think
Fortunately for everyone, Brisk's core has been factored out into brisk-reconciler - a separate framework that now powers both projects. In the future, we expect developers to be able to seamlessly switch between Revery and Brisk for different parts of their application. 🤯
Follow the instructions for the editor plugins here.
To set up a development workflow, simply run this from the project root:
It will install all dependencies and build the project.
To execute the test suites for
macOS renderer, use:
- Join our common
Reason Native UIDiscord server: https://discord.gg/TAhzPfF