Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

✨Cross-platform set of tools for building native UIs with Reason/OCaml

License

NotificationsYou must be signed in to change notification settings

briskml/brisk

Repository files navigation

Build Status

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.

🚧NOTE: Brisk is aWork In Progress. 🚧


Requirements

Our development workflow is managed withesy. It's an incredibly fast package manager that provides reproducible, sandboxed environment for your projects and caches builds.

npm -g i esy@latest

We're open to contributions for supportingopam workflow

macOS

Xcode

In order to build the OSX binary you will need to installXcode, as well asCommand Line Tools:

xcode-select --install

Other Platforms

We're looking for contributors who would help us kickstartWindows andAndroid renderers.

Getting Started

Examples

This repository contains the core tooling, platform-specific renderers, and examples.To try the examples, clone the repository and run a project:

git clone git@github.com:briskml/brisk.gitcd brisk/examples/components-macosesyesy run# for esy >= 6.0.0esy run-script run

For thehacker-news example, you might hitesy/esy#943:

error: command failed: 'dune' 'build' '@all' '-p' 'hacker-news' (exited with 127)

In which case, as a stopgap, run the command directly:

esy dune build @all -p hacker-newsesy run

Motivation

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.

We've looked at React Native, Flutter, platform specific libraries, and hybrid frameworks. All of them have different trade-offs: you either give up runtime performance, developer efficiency, or quality. What's more, none of those solutions make it really easy and fast to build native UI apps. React (Native) is the closest one, but as good as it is, JavaScript constrains both runtime performance and developer productivity. React.js itself, our inspiration, is a great framework and Reason gives us tools to improve upon it.

With Brisk, we want to make building great performant apps quick and painless.

Design Decisions

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, andPattern 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. ThemacOS andiOS renderers leverageCocoa;Windows renderer will build uponWPF (orUWP,help us make the choice);Android renderer will interface withAndroid 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 projectRevery's contributors took it upon themselves to rebuild the whole UI infrastructure from scratch to achieve the same UI on all platforms (thinkflutter).

Fortunately for everyone, Brisk's core has been factored out intobrisk-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. 🤯

Contributing

Follow the instructions for the editor pluginshere.

To set up a development workflow, simply run this from the project root:

esy

It will install all dependencies and build the project.

To execute the test suites formacOS renderer, use:

esy test:mac

Check out theGood First Issues list and don't forget to join ourDiscord server if you have any questions.

Community

About

✨Cross-platform set of tools for building native UIs with Reason/OCaml

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors46


[8]ページ先頭

©2009-2025 Movatter.jp