Back to Explore

reduxjs/reselect

GitHub
1 updates · last 90 days1 watchersOpen source

Last release: 3 weeks ago

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

  • The repository (reduxjs/reselect) appears actively maintained, with an upstream push on 2026-05-18 and a recent update v5.2.0 on 2026-05-15.
  • Update cadence looks intermittent, with changes in 2024-01 (v5.1.0), 2024-06 (v5.1.1), and then again in 2026-05 (v5.2.0), suggesting an ongoing but not rapid release cycle.

AI summary generated Today

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

Recent updates

  • v5.2.0

    3 weeks ago

    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

    6/1/2024

    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

    1/5/2024

    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

    12/4/2023

    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

    12/2/2023

    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

    12/1/2023

    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

    11/17/2023

    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

    10/28/2023

    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

    5/14/2023

    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

    5/10/2023

    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