All Projects → briskml → Brisk Reconciler

briskml / Brisk Reconciler

Licence: mit
React.js-like reconciler implemented in OCaml/Reason

Programming Languages

ocaml
1615 projects
reason
219 projects

Projects that are alternatives of or similar to Brisk Reconciler

Reductive
Redux in Reason
Stars: ✭ 405 (+226.61%)
Mutual labels:  reason-react, reasonml
Verified React
Automated reasoning for React/ReasonML
Stars: ✭ 104 (-16.13%)
Mutual labels:  reason-react, reasonml
Reason React Hacker News
hacker news mobile app made with reason react
Stars: ✭ 591 (+376.61%)
Mutual labels:  reason-react, reasonml
Reason Calculator
A calculator built with Reason and reason-react.
Stars: ✭ 110 (-11.29%)
Mutual labels:  reason-react, reasonml
Rescript React Update
useReducer with updates and side effects!
Stars: ✭ 79 (-36.29%)
Mutual labels:  reason-react, reasonml
React Recomponent
🥫 Reason-style reducer components for React using ES6 classes.
Stars: ✭ 272 (+119.35%)
Mutual labels:  reason-react, reasonml
Reroute
a fast, declarative microrouter for reason-react
Stars: ✭ 120 (-3.23%)
Mutual labels:  reason-react, reasonml
bs-react-is-visible
A small library that lets you know whether a component is visible on screen or not.
Stars: ✭ 15 (-87.9%)
Mutual labels:  reasonml, reason-react
Recontainers
[DEPRECATED] ReasonReact utilitary high order components
Stars: ✭ 54 (-56.45%)
Mutual labels:  reason-react, reasonml
Pragma
Pragma is a self-hosted, open-source, personal note taking app.
Stars: ✭ 39 (-68.55%)
Mutual labels:  reason-react, reasonml
bs-react-native-vector-icons
ReasonML bindings for react-native-vector-icons
Stars: ✭ 16 (-87.1%)
Mutual labels:  reasonml, reason-react
Timerlab
⏰ A simple and customizable timer
Stars: ✭ 84 (-32.26%)
Mutual labels:  reason-react, reasonml
rescript-react-compat
An alternative upgrade path for ReasonReact
Stars: ✭ 17 (-86.29%)
Mutual labels:  reasonml, reason-react
Isolate
Lightweight image browser
Stars: ✭ 284 (+129.03%)
Mutual labels:  reason-react, reasonml
credt
CRDT-like data structures for building distributed, offline-first applications
Stars: ✭ 32 (-74.19%)
Mutual labels:  reasonml, reason-react
Rescript React Native
ReScript bindings for React Native
Stars: ✭ 802 (+546.77%)
Mutual labels:  reason-react, reasonml
onetricks.net
(WIP) kayn-powered (typescript node.js) ReasonReact app presenting you a dashboard of high ELO one trick ponies in League of Legends
Stars: ✭ 13 (-89.52%)
Mutual labels:  reasonml, reason-react
react-multiversal
React components that works everywhere (iOS, Android, Web, Node)
Stars: ✭ 43 (-65.32%)
Mutual labels:  reasonml, reason-react
Cra Template Rescript Lukin
🐪 Lukin CRA and ReScript Template
Stars: ✭ 18 (-85.48%)
Mutual labels:  reason-react, reasonml
Introduce Reason Example
An example app made with Create React App which introduces a Reason component
Stars: ✭ 82 (-33.87%)
Mutual labels:  reason-react, reasonml

Build Status

brisk-reconciler

An easy way to model any tree-shaped state with simple stateful functions

Definitions:

  • tree-shaped state: Any tree shaped-state like the DOM tree, app navigation state, or even rich text document!
  • stateful functions: Functions that maintain state over time. Imagine that you can take any variable in your function and manage its value over the function's invocation. Now, imagine that any function invocation really creates its own "instance" of the function which will track this state separately from other invocations of this function.

Why?

We want to provide expressive and powerful abstractions to build and update trees of dynamic data. We built it with UIs in mind but this library is generally applicable.

We encourage you to experiment with this abstraction for different types of outputs. Thanks to OutputTree-agnostic Hooks (the mechanism which makes functions stateful), different types of outputs can use the same internal logic for updates or side effects.

One example of this is Brisk and Revery, where we have two vastly different approaches to building UIs. However, thanks to the shared layer, we envision that it'll be very simple to use the two at the same time.

We are building it in Reason. It's a very fast, scalable, and extremely expressive language with an amazing FFI. It has an incredibly powerful type system. Reason is a bridge between the world of mainstream programming and great ideas born in academia. It is an alternative syntax to OCaml so you can use (or even convert between) the two at the same time.

Projects which use brisk-reconciler

Examples

  • Lambda_term

    • cd examples/lambda-term
    • esy
    • esy run
  • DOM

    • cd examples/dom
    • esy
    • open index.html

Contributing

Install esy

npm install -g esy

Installation using opam

We currently don't have an opam workflow ready. We're open to contributions!

Development workflow

Take a look at our issues if you'd like to get an idea where to start.

  • build: esy
  • test: esy test

Community

Join us on reason native ui discord server here.

License

This project is provided under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].