DmitriyBobrovskiy / store-management-comparison

Comparison of state management libraries

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comparison of frontend state management libraries for Angular

NgRX Akita  ng-state NGXS Redux  MobX  Redux pattern RxJS 
Amount of boilerplate generated files 9 4 1 3 heavy low 0
Tooling
Redux Dev Tools yes yes (limited) yes yes (limited) no info yes no
CLI yes yes yes yes (limited) no info no info no
Schematics yes yes no info no no info no info no
Features
Async Actions yes no yes yes no info no info yes
Offline Persistance 3rd party package yes yes 1st party package no info no info no
Snapshot selection without first() no yes yes yes no info no info no
Forms synchronization 3rd party package yes yes 1st party package no info no info no
Router synchronization 1st party package no yes 1st party package no info no info no
Angular ErrorHandler no no no yes no info no info no
Lazy loading yes yes yes yes no info no info no
Web workers no yes no no no info no info no
Transactions no yes yes no no info no info no
Optimistic updates no partial yes no info no info no info no info
Observables yes no info no info yes no info yes (with tricks) yes
WebSocket 3rd party package no no info 1st party package no info no info no
Memoized selectors yes yes (defferently) no info yes no info no info no
Cancellation no no no info yes no info no info no
Side effects yes no no info yes no info no info no
Performance
Add 1000 rows, seconds 0.66 1.31 0.89 no info no info no info no info
Update 1000 columns 50 times, seconds 5.27 5.11 48.08 no info no info no info no info
State Nesting yes (limited) yes (limited) yes no info no info no info no info
Non Observable State Access no yes (limited) yes no info no info yes yes (with tricks)
Unit testing via angular testbed by mocking service via angular testbed by mocking service via provided testbed via angular testbed by mocking service no info no info via angular testbed
Contributors 232 33 2 121 709 13 no info
Commits 944 779 131 1489 2937 171 no info
Actively supported yes yes yes yes yes yes yes
GitHub Stars 5500 1900 6 2600 51700 369 no info
Link https://github.com/ng-state/store https://github.com/datorama/akita https://github.com/ng-state/store https://github.com/ngxs/store https://github.com/reduxjs/redux https://github.com/mobxjs/mobx-angular no info
My own feeling no info no info no info no info the same as ngrx after while it makes app messed up with two-directional binding like before redux introducing no info

Comparisons what have been used

Comparison of ng-state, ngrx and akita
Comparison of NgRX, NGXS, akita, RxJS

Other

Comments and pull requests are welcome.

About

Comparison of state management libraries

License:MIT License