# arximboldi/immer

Postmodern immutable and persistent data structures for C++ — value semantics at scale

Repository: https://github.com/arximboldi/immer
Canonical: https://ross.abutalabs.com/products/arximboldi-immer
Homepage: https://sinusoid.es/immer
Language: C++
License: BSL-1.0
License Family: other
Topics: immutable, data-structures, modern-cpp, cpp14, rrb-tree, persistent, postmodernism, value-semantics, hamt
Last push: 2026-07-05T07:06:57+00:00

## Health v2 (maintenance only)
Score: 80/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 91, release rhythm 53, longevity 100
- inputs: {"age_days": 3667, "days_push": 59, "days_rel": 232, "gap_med": 34, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2867, forks 204 (observed 2026-08-28T04:07:26.848958+00:00)

## 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.

## 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

## 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++

## When to avoid
- you need mutable in-place performance above all
- you require a very small binary footprint with no structural sharing overhead

## Facets
- artifact type: library
- maturity: stable
- function: data-science
- domain: developer-tools
- platform: cpp, cross-platform
- tags: immutable-data-structures, persistent-data-structures, rrb-tree, hamt, value-semantics, c-plus-plus, algorithms

## Member repositories
- arximboldi/immer (main) score 80

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:26.848958+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:36:05.345649+00:00, confidence not recorded.
  - readme: https://github.com/arximboldi/immer (fetched 2026-08-28T04:07:26.848958+00:00, sha ca3fd8ce8526)
  - homepage: https://sinusoid.es/immer (fetched 2026-08-29T09:51:48.599326+00:00, sha ff6a2a268d98)
  - site_page: https://sinusoid.es/immer/introduction.html (fetched 2026-08-29T09:51:48.601913+00:00, sha 8f34ac1063e3)
  - site_page: https://sinusoid.es/immer/python.html (fetched 2026-08-29T09:51:48.604041+00:00, sha 70b9b482b68b)
  - site_page: https://sinusoid.es/immer/guile.html (fetched 2026-08-29T09:51:48.605879+00:00, sha 16ef63222c18)
- Data as of 2026-08-30T08:39:29.467469+00:00.
