{"adoption": {"forks": 204, "observed_at": "2026-08-28T04:07:26.848958+00:00", "stars": 2867}, "canonical_url": "https://ross.abutalabs.com/products/arximboldi-immer", "card": {"archived": false, "artifact_type": "library", "description": "Postmodern immutable and persistent data structures for C++ — value semantics at scale", "domain": ["developer-tools"], "enriched": true, "function": ["data-science"], "health_score": 92, "homepage": "https://sinusoid.es/immer", "language": "C++", "license": "BSL-1.0", "license_family": "other", "maturity": "stable", "member_repos": ["arximboldi/immer"], "name": "arximboldi/immer", "platform": ["cpp", "cross-platform"], "pushed_at": "2026-07-05T07:06:57+00:00", "repo": "arximboldi/immer", "stars": 2867, "tags": ["immutable-data-structures", "persistent-data-structures", "rrb-tree", "hamt", "value-semantics", "c-plus-plus", "algorithms"], "topics": ["immutable", "data-structures", "modern-cpp", "cpp14", "rrb-tree", "persistent", "postmodernism", "value-semantics", "hamt"], "urls": [], "use_cases": ["immutable vectors in C++", "persistent data structures for concurrent programs", "value semantics for undo/redo or Redux-like state", "efficient structural sharing for large collections", "immutable maps and sets in C++14"], "what_it_is": "Immer is a C++ library of persistent and immutable data structures such as vectors, maps, and sets built on RRB-trees and HAMTs. It enables value-oriented architectures for interactive and concurrent programs with efficient structural sharing.", "when_to_avoid": ["you need mutable in-place performance above all", "you require a very small binary footprint with no structural sharing overhead"], "when_to_choose": ["you need cheap copies and safe sharing of collections across threads", "you are building interactive apps with value-oriented state management", "you want Clojure-style persistent data structures in C++"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/arximboldi-immer", "repo": "arximboldi/immer", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "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:07:26.848958+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:26.848958+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:36:05.345649+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca3fd8ce8526aa04e2c371cb49dcd08f929a7de3c4bc1a131173313208cac3cb", "fetched_at": "2026-08-28T04:07:26.848958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arximboldi/immer"}, {"content_hash": "ff6a2a268d9865e01984467f81785e2742b776f13adb0af2cc23933bc96d5375", "fetched_at": "2026-08-29T09:51:48.599326+00:00", "kind": "homepage", "missing": false, "url": "https://sinusoid.es/immer"}, {"content_hash": "8f34ac1063e37ced31a1b252e7e11577f3f9f91e1c309fefd55f3449fc6d93fc", "fetched_at": "2026-08-29T09:51:48.601913+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/introduction.html"}, {"content_hash": "70b9b482b68b9997e50ecfd242630fbe3b1cb60b34677e6ecfa39359aa68d05a", "fetched_at": "2026-08-29T09:51:48.604041+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/python.html"}, {"content_hash": "16ef63222c1889e99315c2d8f853f0088bf4d6316d2e3c9337a432fa98e32082", "fetched_at": "2026-08-29T09:51:48.605879+00:00", "kind": "site_page", "missing": false, "url": "https://sinusoid.es/immer/guile.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 53}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3667, "days_push": 59, "days_rel": 232, "gap_med": 34, "n_releases_24m": 2}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}