# Feature catalog — reduxjs/redux

> Canonical page: https://codevetter.com/unpack/redux/feature-catalog

# Feature catalog — reduxjs/redux

Scanned commit 56abca4749921d68f40cda20afd2043af9751f72 (2026-09-29). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Redux exposes state-management APIs rather than an application router or hosted backend. Users can create stores, subscribe to changes, compose reducers, bind action creators, customize dispatch, replace reducers, and consume observable state. Teaching applications demonstrate counters, todos, shopping carts, and normalized trees. The website adds multi-library navigation, search, production error explanations, and opt-in live examples.
- Stores expose dispatch, subscribe, getState, replaceReducer, and an observable interoperability method; createStore initializes reducers before returning this interface. — [src/createStore.ts#L382-L394](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/createStore.ts#L382-L394)
- combineReducers creates a root reducer from function-valued map entries, producing one state slice per accepted key and rejecting undefined slice outputs. — [src/combineReducers.ts#L126-L141](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/combineReducers.ts#L126-L141) [src/combineReducers.ts#L177-L199](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/combineReducers.ts#L177-L199)
- bindActionCreators accepts a single function or a function map, preserves invocation arguments and this, dispatches each result, and skips non-function map values. — [src/bindActionCreators.ts#L9-L15](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/bindActionCreators.ts#L9-L15) [src/bindActionCreators.ts#L58-L82](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/bindActionCreators.ts#L58-L82)
- applyMiddleware customizes dispatch through composable wrappers; compose supports right-to-left composition, an identity function for zero inputs, and unchanged return of a single function. — [src/applyMiddleware.ts#L56-L75](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/applyMiddleware.ts#L56-L75) [src/compose.ts#L46-L60](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/src/compose.ts#L46-L60)
- The TypeScript counter offers increment, decrement, numeric amount addition, delayed async addition, and conditional addition when the current value satisfies currentValue % 2 === 1. — [examples/counter-ts/src/features/counter/Counter.tsx#L14-L64](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/counter-ts/src/features/counter/Counter.tsx#L14-L64) [examples/counter-ts/src/features/counter/counterSlice.ts#L75-L82](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/counter-ts/src/features/counter/counterSlice.ts#L75-L82)
- The todos example appends and toggles todos and selects all, completed, or active items through its connected visible-list container. — [examples/todos/src/reducers/todos.js#L1-L18](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/todos/src/reducers/todos.js#L1-L18) [examples/todos/src/containers/VisibleTodoList.js#L6-L27](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/todos/src/containers/VisibleTodoList.js#L6-L27)
- The shopping-cart example loads mock products, permits additions only when inventory is positive, and clears the cart on checkout request; the tree example supports node counters, child creation, and descendant deletion. — [examples/shopping-cart/src/actions/index.js#L9-L39](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/shopping-cart/src/actions/index.js#L9-L39) [examples/shopping-cart/src/reducers/cart.js#L39-L49](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/shopping-cart/src/reducers/cart.js#L39-L49) [examples/tree-view/src/containers/Node.js#L6-L26](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/tree-view/src/containers/Node.js#L6-L26) [examples/tree-view/src/reducers/index.js#L44-L70](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/tree-view/src/reducers/index.js#L44-L70)
- The site provides navigation and search tabs for Redux, Toolkit, React Redux, and Reselect, renders error messages selected by ?code=N, and starts StackBlitz examples only after user activation on an isolated page. — [website/docusaurus.config.ts#L27-L104](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/website/docusaurus.config.ts#L27-L104) [website/docusaurus.config.ts#L127-L142](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/website/docusaurus.config.ts#L127-L142) [website/src/components/ErrorCodesPage.tsx#L15-L44](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/website/src/components/ErrorCodesPage.tsx#L15-L44) [website/src/components/LiveExample.tsx#L65-L119](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/website/src/components/LiveExample.tsx#L65-L119)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
