cerebral alternatives and similar libraries
Based on the "Data Store" category.
Alternatively, view cerebral alternatives based on common mentions on social networks and blogs.
-
reflux
A simple library for uni-directional dataflow application architecture with React extensions inspired by Flux -
redux-batched-actions
redux higher order reducer + action to reduce actions under a single subscriber notification -
redux-batched-subscribe
store enhancer for https://github.com/reactjs/redux which allows batching subscribe notifications. -
fluorine-lib
DISCONTINUED. Reactive state and side effect management for React using a single stream of actions. -
fireproof
Realtime database, runs anywhere. Install Fireproof in your front-end app or edge function, and sync data via any backend. -
react-redux-provide
DISCONTINUED. Bridges the gap between Redux and the declarative nature of GraphQL/Relay. Share, manipulate, and replicate application state across any number of components. -
synergies
Create a performant distributed context state for React by composing reusable state logic.
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
Do you think we are missing an alternative of cerebral or a related project?
README
Cerebral
A declarative state and side effects management solution for popular JavaScript frameworks
Maintainer needed
https://gist.github.com/christianalfoni/f1c4bfe320dcb24c403635d9bca3fa40
Documentation
Contribute
The entire Cerebral codebase has been rewritten to encourage contributions. The code is cleaned up, commented and all code is in a "monorepo". That means you can run tests across projects and general management of the code is simplified a lot.
- Clone the monorepo:
git clone https://github.com/cerebral/cerebral.git
- In root:
npm install
The packages are located under packages
folder and there is no need to run npm install
for each package.
Using monorepo for your own apps
If you want to use Cerebral 2 directly from your cloned repo, you can create a symlinks for following
directories into the node_modules
directory of your app:
packages/node_modules/cerebral
packages/node_modules/function-tree
packages/node_modules/@cerebral
If your app and the cerebral monorepo are in the same folder you can do from inside your app directory:
$ ln -s ../../cerebral/packages/node_modules/cerebral/ node_modules/
# ...
Just remember to unlink the package before installing it from npm:
$ unlink node_modules/cerebral
# ...
Running demos
Go to the respective packages/demos/some-demo-folder
and run npm start
Testing
You can run all tests in all packages from root:
npm test
Or you can run tests for specific packages by going to package root and do the same:
npm test
Changing the code
When you make a code change you should create a branch first. When the code is changed and backed up by a test you can commit it from the root using:
npm run commit
This will give you a guide to creating a commit message. Then you just push and create a pull request as normal on Github.
Release process
- Review and merge PRs into
next
branch. It is safe to use "Update branch", the commit created by Github will not be part ofnext
history - If changes to
repo-cooker
, clean Travis NPM cache - From command line:
$ git checkout next
$ git pull
$ npm install # make sure any new dependencies are installed
$ npm install --no-save repo-cooker # needed to test release, make sure you have latest
$ npm run release # and check release notes
$ git checkout master
$ git pull
$ git merge --ff-only next
$ git push