A small, hook-based state-management library for React with no providers required.
reduxjs/redux
A JavaScript library for predictable, maintainable global state management, usable with React or any other view library.
- Stars
- 61,448
- Forks
- 15,093
- Open issues
- 15
- Last commit
- yesterday
What is it?
Redux is a JavaScript library for managing application-wide state in a predictable way. All state lives in a single store, and changes happen only by dispatching actions that are processed by pure reducer functions. This makes application behavior consistent across client, server, and React Native environments and keeps state changes easy to test and trace.
The core library is small, around 2 kB including dependencies, and works with React through the react-redux bindings or with any other view layer. An ecosystem of addons extends it, and the project provides a time-travel debugger through Redux DevTools.
Redux Toolkit is the officially recommended way to write Redux logic. It wraps the core with utilities such as createSlice and configureStore, uses Immer so reducers can be written with direct mutations, and reduces boilerplate and common mistakes.
Key features
- 01Single store with state changes driven by dispatched actions and pure reducers
- 02Works with React via react-redux or with any other view library
- 03Core library is about 2 kB including dependencies
- 04Time-travel debugging through Redux DevTools
- 05Redux Toolkit provides utilities like createSlice and configureStore
Use cases
- Managing shared application state across many React components
- Building apps that need consistent state logic across client, server, and React Native
- Creating a state layer that is easy to unit test and trace
Quick start
- 1
Install the Redux core library with npm
npm install redux - 2
Install Redux Toolkit and React-Redux for React apps (recommended)
npm install @reduxjs/toolkit react-redux - 3
Or create a new Vite project with the official Redux+TS template
npx tiged reduxjs/redux-templates/packages/vite-template-redux my-app
Topics
FAQ
- What is redux?
- A JavaScript library for predictable, maintainable global state management, usable with React or any other view library. Redux is a JavaScript library for managing application-wide state in a predictable way. All state lives in a single store, and changes happen only by dispatching actions that are processed by pure reducer functions. This makes application behavior consistent across client, server, and React Native environments and keeps state changes easy to test and trace.
- Is redux free to use? What license does it have?
- redux is open source under the MIT license. Check the license terms before using it in commercial products.
- Is redux still maintained?
- Actively maintained. The last commit to redux was on Oct 20, 2026.
- What can I use redux for?
- Managing shared application state across many React components Building apps that need consistent state logic across client, server, and React Native Creating a state layer that is easy to unit test and trace
- How do I install redux?
- Install the Redux core library with npm: npm install redux Install Redux Toolkit and React-Redux for React apps (recommended): npm install @reduxjs/toolkit react-redux Or create a new Vite project with the official Redux+TS template: npx tiged reduxjs/redux-templates/packages/vite-template-redux my-app
- Where can I get redux?
- The source code and installation instructions are on GitHub: https://github.com/reduxjs/redux
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Official React bindings for Redux, connecting Redux stores to React components via hooks and a Provider.
A JavaScript library that lets you write immutable state updates by mutating a draft copy of the current state.
A TypeScript library for creating memoized selector functions that derive data from Redux or other plain JavaScript state.
A long-running list of ReactJS interview questions with answers, covering core React, Router, Redux, testing and React Native.
A React framework for building full-stack web applications, with Rust-based tooling for fast builds.