Q1 2021 State Of JavaScript Libraries and Tools: State Management
2020-04-21 Update: Added Security information from Snyk. Made ThoughtWorks Technology Radar values clickable.
2020-04-20 Update: I've published reports for other categories as well and recommend checking them out: Frontend Frameworks, Testing Frameworks, Build Tools and Module Bundlers, Static Sites Generators (JAMStack), and End-to-End Testing Frameworks.
Intro
This is a second report in the series "Q1 2021 State Of JavaScript Libraries and Tools". The previous report was dedicated to UI Frameworks. The current report covers State Management libraries and provides insights into how the libraries performed in Q1 2021. Multiple data sources and metrics are used to provide a more complete picture.
I used Moiva to collect all the interesting data and presented it in a table as well as in charts.
I'm going to prepare a few more similar reports dedicated to other categories - CSS Frameworks, End-to-End Testing Libraries, Node.js frameworks, Build Tools and Bundlers, Testing Frameworks and Static Site Generators.
Data Sources
Data for the report came from:
- NPM - libraries downloads, releases, types, and dependencies.
- Google - search interest data.
- GitHub - stars, commits, contributors, license, and age.
- Bundlephobia - bundle sizes.
- State of JavaScript Survey - libraries usage amongst developers.
- ThoughtWorks's Technology Radar data
- Snyk - security information.
Metrics
- Stars - the total number of GitHub stars as of April 1, 2021.
- New Stars - a number of new stars in Q1 2021.
- New Stars, % - (100 * New Stars) / (Stars - New Stars)
- NPM Downloads monthly - an average monthly npm downloads number in Q1 2021.
- NPM Downloads monthly % (incr.) - an increase of the average monthly npm downloads number compared to Q4 2020.
- Search Interest, % - Google search interest average number compared to other libraries in the 01.10.2020-31.03.2021 period.
- Developer Usage, % - percentage of developers using a library according to the latest StateOfJS 2020 survey.
- ThoughtWorks Tech Radar - a "ring" where a library was put. ThoughtWorks distinguishes four rings - "Adopt", "Trial", "Assess", and "Hold". You can learn more about the Radar here.
- NPM Releases - a number of NPM releases in Q1 2021.
- Commits - a number of commits in Q1 2021.
- Contributors - a number of contributors in Q1 2021.
- Dependencies - a number of NPM packages a library has in its dependencies list.
- Types - the way typings are provided, either bundled with the package (
BUNDLED
) or published to the @types organization on npm (SEPARATE
). - Bundle Size - gzipped bundle size of an npm package.
- Security - calculated by Snyk a level of security (from
A
toF
) of Npm packages based on the number of vulnerabilities and their severity.A
- no vulnerabilities,F
- the least secure level. - Age
- License
Awards
- Redux with 56K stars stays unbeatable in a "Total Amount Of Stars" category.
- React Query got the largest amount of new stars in Q1 2021 - 2.7K. Zustand is second with 1.7K stars.
- Zustand and React Query are winners also in a "GitHub Stars Relative Growth" category. Zustand grew by 29%, React Query - by 17%.
- RxJS is an absolute leader in "NPM Downloads" category. It has been downloaded a hefty 97M times on average every month.
- Zustand and React Query grew fast not only in terms of GitHub stars, they are also leaders in NPM Downloads growth. Their downloads grew by 78% and 71% respectively.
- Effector got 237 commits in Q1 2021 and is a leader in "Number of Commits" category.
- React Query had the biggest number of contributors in Q1 2021 - 40 contributors.
- React Query made more NPM releases than any other library - 38 releases in total.
Report
Hint: scroll horizontally to see values for all the libraries.
Each library has two links - Moiva and GitHub links. Use Moiva link to see more data about a particular library, to see historical data and trends.
Criteria | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Stars | 56K | 24K | 25K | 12K | 16K | 26K | 6.7K | 19K | 7.6K | 3K | 3K | 6K | 4.2K | 3.1K | 1.7K | 3.2K | 17K | 1.3K |
New Stars | 817 | 542 | 831 | 1.3K | 1.3K | 612 | 188 | 2.7K | 1.7K | 210 | 87 | 156 | 169 | 175 | 69 | 204 | 1.6K | 53 |
New Stars, % | 1.5% | 2.4% | 3.5% | 11% | 9.4% | 2.4% | 2.9% | 17% | 29% | 7.6% | 3% | 2.7% | 4.3% | 6% | 4.4% | 6.8% | 11% | 4.4% |
Monthly | 22M | 2.6M | 97M | 265K | 3.4M | 6.3M | 1.6M | 1.2M | 204K | 151K | 222K | 198K | 131K | 43K | 71K | 217K | 1.1M | 41K |
Monthly % (incr.) | 10% | 18% | 5% | 49% | 23% | 11% | 16% | 71% | 78% | 12% | 12% | 8% | 25% | 18% | 36% | 43% | 37% | 36% |
Search Interest, % | 36% | 4% | 13% | - | - | 9% | - | - | - | - | - | - | - | - | - | - | - | - |
Developer Usage, % | 66.8% | 13.2% | - | - | 4.9% | 30.1% | - | - | - | - | - | - | - | - | - | - | - | - |
Tech Radar | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ||||
Releases | 0 | 10 | 3 | 2 | 6 | 3 | 3 | 38 | 4 | 6 | 0 | 3 | 4 | 12 | 2 | 1 | 9 | 1 |
Commits | 54 | 52 | 157 | 67 | 187 | 12 | 63 | 119 | 30 | 30 | 3 | 31 | 8 | 237 | 2 | 3 | 84 | 68 |
Contributors | 7 | 16 | 11 | 16 | 17 | 4 | 12 | 40 | 12 | 13 | 1 | 12 | 1 | 13 | 1 | 2 | 13 | 4 |
Dependencies | 2 | 0 | 1 | 1 | 0 | 0 | 1 | 3 | 0 | 1 | 1 | 0 | 5 | 0 | 0 | 0 | 1 | 5 |
Types | BUNDLED | BUNDLED | BUNDLED | SEPARATE | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED | BUNDLED |
Security | ||||||||||||||||||
Bundle Size | 2.6 kB | 16 kB | 11.1 kB | 19.3 kB | 16.8 kB | 3.9 kB | 5.1 kB | 11.5 kB | 0.8 kB | 15 kB | 9.2 kB | 21.7 kB | 10.2 kB | 10.4 kB | 0.4 kB | 0.5 kB | 5.1 kB | 10.4 kB |
Age | 6 years | 6 years | 6 years | 12 months | 6 years | 6 years | 4 years | 2 years | 2 years | 3 years | 3 years | 5 years | 2 years | 3 years | 2 years | 3 years | 1 year | 3 years |
License | MIT | MIT | Apache-2.0 | MIT | MIT | MIT | MIT | MIT | MIT | Apache-2.0 | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT |