reduxjs/reselect

Selector library for Redux

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 48 minutes ago
Added to GitGenius on September 3rd, 2026
Created on July 1st, 2015
Open Issues & Pull Requests: 49 (+0)
GitHub issues: Enabled
Number of forks: 662
Total Stargazers: 19,015 (+0)
Total Subscribers: 163 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.0 hours
Mean response time: 53.2 days
90th percentile: 89.3 days
Tracked items: 40

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 90% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 2% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 21
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,256 days
Stale 30+ days: 20
Stale 90+ days: 19

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • TypeScript (9)
  • Caching (3)
  • Documentation (3)
  • Awaiting Response (1)
  • Dependencies (1)
  • Maintenance (1)
  • Question (1)
  • Tooling (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Reselect is a selector library for Redux that creates memoized functions to compute derived data from application state.

The problem Reselect solves is the need to efficiently compute derived values from Redux state without unnecessary recalculations. It works by accepting input selectors that extract values from state and a result function that transforms those values. When the output selector is called, it only recalculates if its input values have changed, returning the same reference when no recalculation occurs. This reference stability is particularly important for libraries like React that rely on reference equality to optimize rendering.

Reselect is useful for any Redux application where you need to derive computed values from state, though it works with any plain JavaScript immutable data structure. It is already included by default in Redux Toolkit, so no separate installation is needed for projects using that package. The library provides multiple APIs including createSelector for basic memoized selectors, createSelectorCreator for custom memoization strategies, createStructuredSelector for object-shaped selectors, and alternative memoization options like lruMemoize and weakMapMemoize. Developers should adopt it when they want to avoid redundant computations and ensure that derived data maintains reference equality across renders.

The project maintains rapid responsiveness to user reports and contributions, with maintainers typically addressing new issues and pull requests within hours. Nearly all open issues originate from outside users rather than the core team, reflecting a substantial base of real-world adopters. Development work concentrates on TypeScript improvements, caching enhancements, and documentation refinements.