Skip to content

briskml/brisk-reconciler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2701ca7 · Feb 28, 2025
Nov 22, 2019
Dec 18, 2019
Feb 28, 2025
Dec 2, 2020
Feb 26, 2025
Jul 11, 2020
Dec 2, 2020
Dec 2, 2020
Dec 2, 2020
Jul 11, 2020
Feb 26, 2025
Feb 25, 2025
Feb 9, 2019
Feb 25, 2025
Feb 24, 2025
Feb 10, 2019
Feb 28, 2025
Feb 28, 2025
Apr 5, 2020
Feb 28, 2025
Feb 28, 2025
Feb 28, 2025
Dec 15, 2019
Dec 15, 2019
Dec 15, 2019
Apr 5, 2020
Dec 2, 2020

Repository files navigation

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.

Projects which use brisk-reconciler

Examples

Contributing

Install esy

npm install -g esy

Installation using opam

Create local opam switch (optional):

opam switch create ./ --deps-only
opam install . --with-dev-setup --with-test --with-doc

Development workflow

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

  • build: make
  • test: make test

Community

Join us on reason native ui discord server here.

License

This project is provided under the MIT License.