RxJS and ImmutableJs powered nested state management for Angular 2+ applications inspired by @ngrx/store. It is simple, fast, reliable with no boilerplate. | It is a modern alternative to Redux, Mobx, Formik without boilerplate. It is simple to learn but very flexible to use. It has got impressive performance and predictable behavior. |
Developers do not need to remember long nested paths to access stores;Decouples / Hides paths to state from components;Uses Redux like pure functions - actions to interact with state;No boilerplate;It is highly performant because of rxjs and ImmutableJS or Immer;Because of immutable data structure nobody can mutate state;Keeps state manipulation class close to component Actions but separated which reduces boiler plate and enables cleaner unit testing;Uses Redux like messages for communication between not related components Dispatcher;Easy to test Test actions;Has Redux DevTools integration and Time Travel functionality;Can restore state from server Server Side Rendering (SSR) | Concise, pragmatic but flexible API. Very easy to learn. See Getting Started and other code samples to learn it in minutes;
Incredible performance based on unique method for tracking of used/rendered and updated state segments. Ideal solution for huge states and very frequent updates;
Small core library packed with features: global states, local states, asynchronously loaded states, partial state updates, deeply nested state updates, and a lot more;
Complete type inferrence for any complexity of structures of managed state data. Full intellisense support tested in VS Code;
Extend or customize your state hooks. There are several standard plugins available: initial state value, touched fields tracking, modified fields tracking, state validation, persistence, and a lot more;
Develop like a pro. Browser's extension to trace and set state values, to set breakpoints on state changes, to identify components using a segment of a state, and a lot more |
Statistics | |
GitHub Stars 14 | GitHub Stars 1.7K |
GitHub Forks 2 | GitHub Forks 108 |
Stacks 4 | Stacks 1 |
Followers 11 | Followers 1 |
Votes 0 | Votes 0 |
Integrations | |

It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. t provides a great experience, such as live code editing combined with a time traveling debugger.

MobX is a battle tested library that makes state management simple and scalable by transparently applying functional reactive programming (TFRP). React and MobX together are a powerful combination. React renders the application state by providing mechanisms to translate it into a tree of renderable components. MobX provides the mechanism to store and update the application state that React then uses.

Small, fast and scaleable bearbones state-management solution. Has a comfy api based on hooks, that isn't boilerplatey or opinionated, but still just enough to be explicit and flux-like.

It is an effective multi-store state manager for Javascript apps, that allows you to manage data in complex applications.

An alternative side effect model for Redux apps

Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official devtools extension to provide advanced features such as zero-config time-travel debugging and state snapshot export / import.

Redux Thunk middleware allows you to write action creators that return a function instead of an action. The thunk can be used to delay the dispatch of an action, or to dispatch only if a certain condition is met. The inner function receives the store methods dispatch and getState as parameters.

State so simple, it goes without saying

Simple “selector” library for Redux (and others) inspired by getters in NuclearJS, subscriptions in re-frame and this proposal from speedskater.

It allows developers to dispatch a function that returns an observable, promise or iterable of action(s). Compose and cancel async actions to create side effects and more.