Redux Toolkit

The official, opinionated, batteries-included toolset for efficient Redux state management

Library
npm
v2.13.0
11,229 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
90 /100 Excellent
Development Activity 88
Maintenance 96
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
92 /100 Excellent
Architecture 90
Code Quality 93
Innovation 95
Learning Curve 85

Redux Toolkit (RTK) is the official, recommended way to write Redux logic. It wraps the Redux core with sensible defaults and a set of higher-level APIs that eliminate the boilerplate traditionally associated with Redux: store configuration, immutable update logic, action creators, and reducer definitions all collapse into a few concise function calls.

Beyond core state management, RTK ships RTK Query, a powerful data-fetching and caching layer that generates hooks for your API endpoints and manages loading, caching, and invalidation automatically. Together they let teams manage global application state and server state with a single, type-safe, well-documented toolset.

What You Get

  • configureStore() with good defaults, DevTools integration, and redux-thunk preconfigured
  • createSlice() that generates action creators and reducers from a single declarative object
  • createAsyncThunk() and createEntityAdapter() for async flows and normalized data
  • RTK Query for declarative data fetching, caching, and auto-generated React hooks
  • End-to-end TypeScript types with strong inference across slices, thunks, and selectors

Common Use Cases

  • Managing global client state in React single-page applications
  • Fetching, caching, and synchronizing server data with RTK Query
  • Modeling normalized collections of entities with generated reducers and selectors
  • Migrating legacy hand-written Redux code to a leaner, standardized structure

Under The Hood

Architecture

Redux Toolkit is a layered wrapper over the Redux core. configureStore.ts composes applyMiddleware, createStore, and combineReducers from the redux package, layering in getDefaultMiddleware (redux-thunk, serializability and immutability dev checks) and getDefaultEnhancers (auto-batching, DevTools). createSlice.ts builds on createReducer.ts and createAction.ts, running reducer logic through Immer so mutative-looking code yields immutable state; matchers, listenerMiddleware, dynamicMiddleware, and the entities adapter round out the core. RTK Query lives in a separate src/query entry point that builds an API slice, cache reducer, and middleware on top of the same core, with a src/query/react layer generating endpoint hooks.

Tech Stack

Written in TypeScript (5.9) and shipping ~97% TypeScript source. Runtime dependencies are immer 11, redux 5, redux-thunk 3, reselect 5, and @standard-schema for validation; React and react-redux are optional peer dependencies. Bundled with tsup into ESM, CJS, and browser builds, and tested with Vitest (including type-level tests via —typecheck).

Code Quality

Coverage is thorough: 25+ runtime test files under src/tests plus a dedicated RTK Query test suite, alongside numerous .test-d.ts type-level tests that assert the public API’s inferred types. The codebase is strictly typed with dedicated tsHelpers.ts utilities, clear module boundaries per API, and consistent naming.

API Design The public API is deliberately compact and ergonomic — configureStore, createSlice, createAsyncThunk, and createApi cover the vast majority of use cases with minimal boilerplate. Documentation is excellent (a full docs site, extensive guides, and examples directory), and the APIs are designed to make the correct patterns the path of least resistance.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers