{"adoption": {"forks": 662, "observed_at": "2026-08-28T04:11:27.363449+00:00", "stars": 19018}, "canonical_url": "https://ross.abutalabs.com/products/reselect", "card": {"archived": false, "artifact_type": "library", "description": "Selector library for Redux", "domain": ["frontend", "web-development", "developer-tools"], "enriched": true, "function": ["state-management", "caching", "developer-tools"], "health_score": 99, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["reduxjs/reselect"], "name": "reduxjs/reselect", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-22T02:10:49+00:00", "repo": "reduxjs/reselect", "stars": 19018, "tags": ["redux", "memoization", "selectors", "derived-data", "react", "javascript", "typescript", "nodejs"], "topics": ["memoized-selectors", "redux"], "urls": [], "use_cases": ["compute derived data from Redux store state without recomputation", "avoid expensive filtering or mapping operations on every render", "compose selectors that depend on other selectors' outputs", "keep Redux state minimal by deriving values on demand", "memoize calculations over plain JavaScript immutable data outside Redux", "optimize React-Redux connected component performance"], "what_it_is": "Reselect is a library for creating memoized selector functions, most commonly used with Redux but usable with any plain JavaScript immutable data. It computes derived data efficiently, only recalculating when input values change, and selectors can be composed as inputs to other selectors.", "when_to_avoid": ["your app has no derived state or only trivial computations", "you need state management itself rather than selector utilities", "you work with mutable data structures that defeat memoization"], "when_to_choose": ["you use Redux or Redux Toolkit and need efficient derived state", "your selectors perform expensive computations like filtering large arrays", "you want composable, cacheable selector functions", "you need to prevent unnecessary re-renders caused by recomputed derived data"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/reselect", "repo": "reduxjs/reselect", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.363449+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:00:41.964987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f57d9768b59e0fecdad1d5e794de62b71337c316f23d1e480f4fe6dfd23be566", "fetched_at": "2026-08-28T04:11:27.363449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/reselect"}, {"content_hash": "299dfeca8b5ba28ce702173c6b6bef04ecfc99ab850abb777b92dae97840bac3", "fetched_at": "2026-08-29T07:59:12.240954+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/reselect"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 74}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4081, "days_push": 12, "days_rel": 12, "gap_med": 98, "n_releases_24m": 2}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}