Back to Explore

reduxjs/reselect

GitHub
1 updates · last 90 days2 watchersOpen source

Last release:

Reselect is a JavaScript library for creating memoized selector functions, commonly used with Redux to compute derived data from state efficiently. It avoids recomputing a selector unless its input arguments change, and it supports composing selectors by using one selector as input to another.

Project status

  • Actively maintained: Evidence shows continued work in 2026, with the latest upstream push on 2026-08-22 and a corresponding v5.3.0 update the same day.
  • Update cadence: After a long quiet period (e.g., v5.1.1 in 2024), updates resumed with v5.2.0 on 2026-05-15 and v5.3.0 on 2026-08-22, suggesting a roughly quarterly cadence recently.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v5.3.0

    v5.3.0 adds a new `maxSize` option to `weakMapMemoize` to bound cache growth, plus a new `cacheSizeCheck` dev-mode warning to detect unbounded growth patterns. It also removes the experimental `unstable_autotrackMemoize` export and includes multiple hot-path performance and memoization correctness improvements. Alongside this, it updates dev-mode checks internals and TypeScript docs, including clarifying how to fully clear selector caches.

    BreakingFeatures
  • v5.2.0

    reselect v5.2.0 focuses on better tree-shaking and fixes a rare ref leak in weakMapMemoize, and it also restores npm trusted publishing provenance. The diff also shows several build and packaging changes intended to improve treeshakeability of distributed artifacts.

  • v5.1.1

    v5.1.1 is a patch release focused on correcting memoization edge cases. It fixes `resultEqualityCheck` behavior in `weakMapMemoize`, corrects `lruMemoize` cache sizing when `maxSize` is less than 1, and includes an internal change to the `NOT_FOUND` sentinel value.

  • v5.1.0

    v5.1.0 adds pre-typed selector creator APIs, `createSelector.withTypes<RootState>()` and `createStructuredSelector.withTypes<RootState>()`, to avoid repeating the root state type. It also tightens dev-time `identityFunctionCheck` to reduce false positives, and fixes a `weakMapMemoize` equality-check edge case for primitive results. Most other changes in this diff are documentation, tests, and dependency bumps.

    Features
  • v5.0.1

    Reselect v5.0.1 finalizes the v5.0.0 release wave, with the main documented changes centered on selector memoization behavior, renamed memoizers, and updated TypeScript types. The included code diff (as shown) also touches development-only stability checks infrastructure, TypeScript type exports, and a small runtime fix for WeakRef handling.

    BreakingFeatures
  • v5.0.0-rc.1

    This v5.0.0-rc.1 release candidate renames Reselect's memoization function export from `defaultMemoize` to `lruMemoize`, and updates development-only warning logs to include a stack trace for easier debugging. Internally, it also renames the equality check helper used by the memoizer.

    BreakingFeatures
  • v5.0.0-rc.0

    Release v5.0.0-rc.0 is a release candidate that changes Reselect's selector memoization defaults to use weakMapMemoize. It also restructures development-mode selector checks by adding an identity-function result check (x => x) alongside the existing input stability check, and updates related TypeScript types.

    BreakingFeatures
  • v5.0.0-beta.1

    v5.0.0-beta.1 is primarily a TypeScript-focused beta release intended to improve how hover previews render for generated selectors. Release notes mention only a hover-preview fix, but the diff shows much broader changes, especially in exported/public TypeScript type definitions and some runtime argument validation behavior.

  • v5.0.0-beta.0

    v5.0.0-beta.0 refactors Reselect's selector memoization internals to let you pass memoization functions and options directly to createSelector, including separate memoizers for the overall arguments vs the extracted input values via argsMemoize. It also renames the experimental autotrack memoizer to an unstable, clearer name and drops support for TypeScript 4.6 and earlier.

    BreakingFeatures
  • v5.0.0-alpha.2

    v5.0.0-alpha.2 adds a development-only stability check to createSelector, intended to detect input selectors that return unstable references and can cause unnecessary recomputation. It also updates the build pipeline to produce sourcemapped artifacts, including a browser-ready ESM bundle and improved legacy ESM output for Webpack 4 compatibility.

    Features
  • v5.0.0-alpha.1

    v5.0.0-alpha.1 introduces two experimental memoizers, autotrackMemoize and weakmap-based memoization, intended to be used via createSelectorCreator. It also adjusts createSelector's outer dependency memoization behavior back to using defaultMemoize. The release adds new tests for the memoizers and related selector utilities.

    Features