PACKAGE · STATE MANAGEMENT

@reduxjs/toolkit

The official, opinionated, batteries-included toolset for efficient Redux development

WEEKLY DOWNLOADS 10.5M
STARS 11.2K
FORKS 1.3K
OPEN ISSUES 273
GZIP SIZE 14.9 kB
UNPACKED SIZE 6.0 MB
DEPENDENCIES 5
LAST UPDATED 5mo ago
DOWNLOAD TRENDS

@reduxjs/toolkit downloads — last 12 months

Download trends for @reduxjs/toolkit1 download series from Jun 2025 to May 2026. Use left and right arrow keys to inspect monthly values.019.9M39.8M59.7M79.6MJun 2025SepDecMarMay 2026
@reduxjs/toolkit
ABOUT @REDUXJS/TOOLKIT

Redux Toolkit (@reduxjs/toolkit) is the official, opinionated set of utilities designed to simplify and streamline Redux development. It addresses common Redux pain points by providing sensible defaults and abstractions that reduce boilerplate code, making Redux easier to learn and use effectively.

The core philosophy behind Redux Toolkit is to make Redux development more efficient and less error-prone. It aims to provide a development experience that is both powerful and intuitive, catering to developers of all experience levels who need a predictable state container. The package includes utilities for common tasks, enforcing best practices out of the box.

Key API patterns include `configureStore`, which sets up a store with sensible defaults like combining reducers and enabling Redux DevTools, and `createSlice`, a powerful abstraction that generates reducers and action creators from a single definition, often utilizing Immer for immutable state updates. It also provides `createAsyncThunk` for handling asynchronous logic and thunks.

Redux Toolkit integrates seamlessly with modern JavaScript and React applications. It is designed to be framework-agnostic but is extensively used with React via hooks like `useSelector` and `useDispatch` provided by the `react-redux` package. It fits well into build workflows using bundlers like Webpack or Vite and is compatible with TypeScript for enhanced type safety.

With a gzipped bundle size of only 14.9 kB, Redux Toolkit keeps application footprint minimal without sacrificing functionality. Its maturity is reflected in its widespread adoption and active maintenance, with 11.2K GitHub stars and 1.3K forks, indicating a robust and well-supported community. The current version is 2.12.0.

The package's opinionated nature means it guides developers towards a specific way of structuring Redux code. While this promotes consistency, it might require a slight adjustment for those deeply entrenched in older Redux patterns. The 268 open issues suggest ongoing development and community engagement, but also indicate areas where users are encountering or requesting further enhancements.

WHEN TO USE
  • When you need a standardized way to manage application-wide state across complex React applications.
  • To simplify Redux setup and reduce boilerplate with `configureStore` and `createSlice`.
  • When managing asynchronous operations like data fetching and mutations using `createAsyncThunk`.
  • To enable efficient state updates with immutable patterns through Immer integration within `createSlice`.
  • For integrating Redux state management with React applications using `react-redux` hooks like `useSelector` and `useDispatch`.
  • When building applications that benefit from integrated Redux DevTools for debugging and state inspection.
  • To enforce best practices and maintainability in Redux codebases through opinionated utilities.
WHEN NOT TO USE
  • If your state management needs are limited to simple component-level state — React's built-in `useState` or `useReducer` is more appropriate.
  • When you prefer a completely unopinionated state management library with minimal abstractions — a lighter alternative might be more suitable.
  • If the 268 open issues represent blockers for your specific use case — you might consider alternatives until resolved.
  • For applications where the additional 14.9 kB gzipped bundle size is a critical concern and simpler solutions suffice.
  • If your team has a strong preference for manual Redux setup and opposes the abstractions provided by `createSlice` and `configureStore`.

CORRECTIONS

Spot wrong data here?

A short note helps us fix it.

Anonymous · No account · No email back

COMPARISONS 8
@reduxjs/toolkit vs valtio ★ 10.2K · 956.9K/wk @reduxjs/toolkit vs redux ★ 61.5K · 16.6M/wk @reduxjs/toolkit vs xstate ★ 29.7K · 2.2M/wk @reduxjs/toolkit vs jotai ★ 21.2K · 2.3M/wk @reduxjs/toolkit vs recoil ★ 19.5K · 233.6K/wk @reduxjs/toolkit vs nanostores ★ 7.4K · 2.4M/wk @reduxjs/toolkit vs mobx ★ 28.2K · 1.9M/wk @reduxjs/toolkit vs zustand ★ 58.2K · 20.0M/wk