All Projects → lpalmes → Pure

lpalmes / Pure

React in pure Reason that targets native platforms.

Programming Languages

ocaml
1615 projects

Projects that are alternatives of or similar to Pure

Reroute
a fast, declarative microrouter for reason-react
Stars: ✭ 120 (-11.11%)
Mutual labels:  reason-react, reasonml
Brisk Reconciler
React.js-like reconciler implemented in OCaml/Reason
Stars: ✭ 124 (-8.15%)
Mutual labels:  reason-react, reasonml
Rescript React Native
ReScript bindings for React Native
Stars: ✭ 802 (+494.07%)
Mutual labels:  reason-react, reasonml
Isolate
Lightweight image browser
Stars: ✭ 284 (+110.37%)
Mutual labels:  reason-react, reasonml
Verified React
Automated reasoning for React/ReasonML
Stars: ✭ 104 (-22.96%)
Mutual labels:  reason-react, reasonml
Reductive
Redux in Reason
Stars: ✭ 405 (+200%)
Mutual labels:  reason-react, reasonml
Pragma
Pragma is a self-hosted, open-source, personal note taking app.
Stars: ✭ 39 (-71.11%)
Mutual labels:  reason-react, reasonml
credt
CRDT-like data structures for building distributed, offline-first applications
Stars: ✭ 32 (-76.3%)
Mutual labels:  reasonml, reason-react
Introduce Reason Example
An example app made with Create React App which introduces a Reason component
Stars: ✭ 82 (-39.26%)
Mutual labels:  reason-react, reasonml
Rescript React Update
useReducer with updates and side effects!
Stars: ✭ 79 (-41.48%)
Mutual labels:  reason-react, reasonml
React Recomponent
🥫 Reason-style reducer components for React using ES6 classes.
Stars: ✭ 272 (+101.48%)
Mutual labels:  reason-react, reasonml
Reason Calculator
A calculator built with Reason and reason-react.
Stars: ✭ 110 (-18.52%)
Mutual labels:  reason-react, reasonml
bs-react-native-vector-icons
ReasonML bindings for react-native-vector-icons
Stars: ✭ 16 (-88.15%)
Mutual labels:  reasonml, reason-react
Reason React Hacker News
hacker news mobile app made with reason react
Stars: ✭ 591 (+337.78%)
Mutual labels:  reason-react, reasonml
rescript-react-compat
An alternative upgrade path for ReasonReact
Stars: ✭ 17 (-87.41%)
Mutual labels:  reasonml, reason-react
Cra Template Rescript Lukin
🐪 Lukin CRA and ReScript Template
Stars: ✭ 18 (-86.67%)
Mutual labels:  reason-react, reasonml
react-multiversal
React components that works everywhere (iOS, Android, Web, Node)
Stars: ✭ 43 (-68.15%)
Mutual labels:  reasonml, reason-react
bs-react-is-visible
A small library that lets you know whether a component is visible on screen or not.
Stars: ✭ 15 (-88.89%)
Mutual labels:  reasonml, reason-react
Recontainers
[DEPRECATED] ReasonReact utilitary high order components
Stars: ✭ 54 (-60%)
Mutual labels:  reason-react, reasonml
Timerlab
⏰ A simple and customizable timer
Stars: ✭ 84 (-37.78%)
Mutual labels:  reason-react, reasonml

Pure

Pure stands for Pure Reason

The idea of this project is to have cross-platform Reason code for web, desktop, mobile, that's why Pure was named as i wanted to write pure reason code (thanks to cherta for the name).

This is an experiment on some ideas i have, i will write some more in the future, but for now this can be seen as a cross platform ui library using each native platform and always providing a great developer experience like instant and consistent hot code reloading.

Why this exists?

Electron is a successful case of cross platform code between three platforms: MacOS, Linux, Windows and the Web. But such benefits bring costs as high resource usage and most of the time core rewrites in c++ (or another language) to avoid those issues. I believe that React Native has solved this problem by using the platform (iOS and Android for now), and the desktop environments could benefit from this as well. Hence this project, which is an experiment of doing a cross platform ui library to satisfy electron use cases for an lighter alternative using native platform.

Project structure

  • pure: this is the bare bones definiton of pure, similar like the react package is agnostic of the renderer and compiles to all platforms
  • reconciler: this is the fiber-esque reconciler
  • pure-dom: the dom/web render using the reconciler above (not working now, work in progress in using bucklescript + esy, any help is appreciated :) )
  • pure-macos: the native render using the reconciler and flex to layout the views. This has a MacOS render for now, but a Linux and Windows is in the works.
  • pure-noop: a no op reconciler to play around, nothing too important
  • cocoa-ml: cocoa (macos) bindings, silly name but well, naming is definitely the hardest problem in computer sience
  • pure-ppx: a ppx that should work like reason react ppx, but nothing working for now
  • specs: ideas and mechanics of multiple aspects of this project, more than welcome to discuss

Take it for a spin

Before running it

You should have esy installed, and then run esy install, first time installing it might take a while if you haven't played around with esy.

Native

esy x main
or
esy dune exec main

Browser

broken for now :(

If you want to help you are more than welcome to do so. This is an experiment that i hope it turns into a viable route, i believe we deserve a better alternative for the desktop.

Credit and inspirations

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].