Skip to content
JS
Package category

State management

Application state containers and stores for UI frameworks.

415 packages5 comparisons

Packages compared

415 packages
PackageWeekly downloads12-month change52 weeksGzipLast releaseModuleTypesCategories
immer
Create your next immutable state by mutating the current one
46m+202%-1 month ago
11.1.18
ESM + CommonJSBundledState management
zustand
🐻 Bear necessities for state management in React
40.1m+295%-1 month ago
5.0.15
ESM + CommonJSBundledState management, React
reselect
Selectors for Redux.
36.9m+228%-1 month ago
5.3.0
ESM + CommonJSBundledState management
redux
Predictable state container for JavaScript apps
32.1m+125%-2 years ago
5.0.1
ESM + CommonJSBundledState management
react-redux
Official React bindings for Redux
27.3m+171%-4 months ago
9.3.0
ESM + CommonJSBundledState management, React
@tanstack/store
Framework agnostic type-safe store w/ reactive framework adapters
22.7m+1572%-1 month ago
0.11.1
ESM + CommonJSBundledTypeScript tooling, State management
@tanstack/react-store
Framework agnostic type-safe store w/ reactive framework adapters
21.8m+1517%-1 month ago
0.11.1
ESM + CommonJSBundledTypeScript tooling, State management
@reduxjs/toolkit
The official, opinionated, batteries-included toolset for efficient Redux development
21.6m+277%-4 months ago
2.12.0
ESM + CommonJSBundledState management, React
cache-base
Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.
9.5m-12%-4 years ago
4.0.2
CommonJSNoneCaching, State management
nanostores
A tiny (372 bytes) state manager for React/Preact/Vue/Svelte with many atomic tree-shakable stores
6.5m+1241%-22 days ago
1.5.3
ESM onlyBundledState management, React
state-local
Tiny, simple, and robust technique for defining and acting with local states
4.7m+230%-5 years ago
1.0.7
ESM + CommonJSBundledState management
jotai
👻 Primitive and flexible state management for React
4.2m+119%-16 days ago
3.0.0
ESM onlyBundledState management, React
@xstate/fsm
XState for finite state machines
4m+218%-3 years ago
2.1.0
ESM + CommonJSBundledState management
xstate
Finite State Machines and Statecharts for the Modern Web.
3.7m+88%-9 days ago
5.33.2
ESM + CommonJSBundledState management
pinia
Intuitive, type safe and flexible Store for Vue
3.6m+80%-1 month ago
4.0.3
ESM onlyBundledState management, Vue
mobx
Simple, scalable state management.
2.7m+51%-2 days ago
7.0.4
ESM + CommonJSBundledState management
mobx-react-lite
Lightweight React bindings for MobX based on function components and Hooks
2.7m+68%-today
5.1.0
ESM + CommonJSBundledState management, TypeScript tooling
@earendil-works/pi-agent-core
General-purpose agent with transport abstraction, state management, and attachment support
2.4m--2 days ago
0.87.1
ESM onlyBundledState management
@xstate/react
XState tools for React
2.2m+90%-6 months ago
6.1.0
ESM + CommonJSBundledState management, React
mobx-react
React bindings for MobX. Create fully reactive components.
1.8m+58%-1 month ago
10.0.2
ESM + CommonJSBundledState management, TypeScript tooling
valtio
🧙 Valtio makes proxy-state simple for React and Vanilla
1.5m+68%-4 months ago
2.3.2
--State management, React
notistack
Highly customizable notification snackbars (toasts) that can be stacked on top of each other
1.4m+39%-1 year ago
3.0.2
--State management, React
vuex
state management for Vue.js
1.3m+1%-3 years ago
4.1.0
ESM + CommonJSBundledState management, Vue
@assistant-ui/tap
Reactive state management inspired by React hooks
1.3m---1 day ago
0.9.19
--State management
@assistant-ui/store
Tap-based state management for @assistant-ui
1.2m---1 day ago
0.3.15
--State management
@hapi/statehood
HTTP State Management Utilities
981.7k---10 months ago
8.2.1
CommonJSBundledState management
@redux-saga/symbols
Redux-saga internal symbol "registry".
946.1k---11 months ago
1.2.1
ESM + CommonJSBundledState management
@redux-saga/delay-p
Promisified setTimeout
925.2k---11 months ago
1.3.1
ESM + CommonJSBundledPromises and async control flow, State management
@redux-saga/deferred
Helper for creating "exposed" promise object (with resolve & reject methods).
916.2k---11 months ago
1.3.1
ESM + CommonJSBundledPromises and async control flow, State management
@zag-js/combobox
Core logic for the combobox widget implemented as a state machine
853.5k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/menu
Core logic for the menu widget implemented as a state machine
837.3k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/tags-input
Core logic for the tags-input widget implemented as a state machine
823.2k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/number-input
Core logic for the number-input widget implemented as a state machine
819.6k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/popover
Core logic for the popover widget implemented as a state machine
818.6k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/date-picker
Core logic for the date-picker widget implemented as a state machine
816.7k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, Date pickers
@zag-js/radio-group
Core logic for the radio group widget implemented as a state machine
816.5k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/collapsible
Core logic for the collapsible widget implemented as a state machine
815.5k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/presence
Core logic for the presence widget implemented as a state machine
814.7k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/switch
Core logic for the switch widget implemented as a state machine
814.3k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/file-upload
Core logic for the file-upload widget implemented as a state machine
810.8k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/pagination
Core logic for the pagination widget implemented as a state machine
810.5k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/avatar
Core logic for the avatar widget implemented as a state machine
807.6k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/rating-group
Core logic for the rating-group widget implemented as a state machine
807.2k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/tree-view
Core logic for the tree-view widget implemented as a state machine
804.3k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/toggle-group
Core logic for the toggle widget implemented as a state machine
801k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/progress
Core logic for the progress widget implemented as a state machine
797.4k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/pin-input
Core logic for the pin-input widget implemented as a state machine
796.9k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/hover-card
Core logic for the hover-card widget implemented as a state machine
791.7k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/color-picker
Core logic for the color-picker widget implemented as a state machine
790.4k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management
@zag-js/select
Core logic for the select widget implemented as a state machine
789.5k---11 days ago
1.44.0
ESM + CommonJSBundledUI component libraries, State management

12-month change compares the average of the last 4 weeks of downloads with the first 4 weeks of the 52-week series. Gzip size is for the whole package, as measured by Bundlephobia. "-" means the value has not been fetched.

  • immerCreate your next immutable state by mutating the current one
  • zustand🐻 Bear necessities for state management in React
  • reselectSelectors for Redux.
  • reduxPredictable state container for JavaScript apps
  • react-reduxOfficial React bindings for Redux
  • @tanstack/storeFramework agnostic type-safe store w/ reactive framework adapters
  • @tanstack/react-storeFramework agnostic type-safe store w/ reactive framework adapters
  • @reduxjs/toolkitThe official, opinionated, batteries-included toolset for efficient Redux development
  • cache-baseBasic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.
  • nanostoresA tiny (372 bytes) state manager for React/Preact/Vue/Svelte with many atomic tree-shakable stores
  • state-localTiny, simple, and robust technique for defining and acting with local states
  • jotai👻 Primitive and flexible state management for React
  • @xstate/fsmXState for finite state machines
  • xstateFinite State Machines and Statecharts for the Modern Web.
  • piniaIntuitive, type safe and flexible Store for Vue
  • mobxSimple, scalable state management.
  • mobx-react-liteLightweight React bindings for MobX based on function components and Hooks
  • @earendil-works/pi-agent-coreGeneral-purpose agent with transport abstraction, state management, and attachment support
  • @xstate/reactXState tools for React
  • mobx-reactReact bindings for MobX. Create fully reactive components.
  • valtio🧙 Valtio makes proxy-state simple for React and Vanilla
  • notistackHighly customizable notification snackbars (toasts) that can be stacked on top of each other
  • vuexstate management for Vue.js
  • @assistant-ui/tapReactive state management inspired by React hooks
  • @assistant-ui/storeTap-based state management for @assistant-ui
  • @hapi/statehoodHTTP State Management Utilities
  • @redux-saga/symbolsRedux-saga internal symbol "registry".
  • @redux-saga/delay-pPromisified setTimeout
  • @redux-saga/deferredHelper for creating "exposed" promise object (with resolve & reject methods).
  • @zag-js/comboboxCore logic for the combobox widget implemented as a state machine
  • @zag-js/menuCore logic for the menu widget implemented as a state machine
  • @zag-js/tags-inputCore logic for the tags-input widget implemented as a state machine
  • @zag-js/number-inputCore logic for the number-input widget implemented as a state machine
  • @zag-js/popoverCore logic for the popover widget implemented as a state machine
  • @zag-js/date-pickerCore logic for the date-picker widget implemented as a state machine
  • @zag-js/radio-groupCore logic for the radio group widget implemented as a state machine
  • @zag-js/collapsibleCore logic for the collapsible widget implemented as a state machine
  • @zag-js/presenceCore logic for the presence widget implemented as a state machine
  • @zag-js/switchCore logic for the switch widget implemented as a state machine
  • @zag-js/file-uploadCore logic for the file-upload widget implemented as a state machine
  • @zag-js/paginationCore logic for the pagination widget implemented as a state machine
  • @zag-js/avatarCore logic for the avatar widget implemented as a state machine
  • @zag-js/rating-groupCore logic for the rating-group widget implemented as a state machine
  • @zag-js/tree-viewCore logic for the tree-view widget implemented as a state machine
  • @zag-js/toggle-groupCore logic for the toggle widget implemented as a state machine
  • @zag-js/progressCore logic for the progress widget implemented as a state machine
  • @zag-js/pin-inputCore logic for the pin-input widget implemented as a state machine
  • @zag-js/hover-cardCore logic for the hover-card widget implemented as a state machine
  • @zag-js/color-pickerCore logic for the color-picker widget implemented as a state machine
  • @zag-js/selectCore logic for the select widget implemented as a state machine