December 27, 2025
Frozen data, hot drama
immer – a library of persistent and immutable data structures written in C++
C++ goes “hands-off” and devs bring popcorn
TLDR: Immer brings “immutable” data to C++, making programs safer and easier to run in busy, interactive settings. The community is split between praise, questions about ties to the JS library named Immer, and debates over using garbage collection in C++, making this a surprisingly spicy upgrade.
The C++ world just got a “don’t touch that!” button. immer is a library that keeps your data frozen in place—no surprise edits, no midnight bugs—aimed at making interactive and concurrent (lots happening at once) programs easier. With a talk, a paper, and code to boot, the project flexes serious research. But the real show? The comments. One camp is full-on hype—“Very good stuff”—like it’s a power-up for C++. Another camp squints at the branding: “Is this related to the JS library called Immer… and why don’t they acknowledge each other?” Cue the identity crisis memes. Then there’s the spicy subplot: garbage collection in C++ (a system that automatically cleans up memory). A commenter points out immer offers both garbage-collected heaps and old-school reference counting. That sparked the classic culture clash: performance purists vs “please, fewer memory nightmares.” Fans dredged up past fame too, linking to big 2016 and 2019 threads—this isn’t its first rodeo. The funniest bit? One user bragged they “religiously” scrolled 490 packages to make sure they weren’t missing a gem. Between sponsorship pitches and Redux-for-C++ vibes, the mood is: freeze your data, unfreeze the drama.
Key Points
- •Immer is a C++ library providing persistent, immutable data structures for interactive and concurrent programs.
- •The library offers an idiomatic C++ API, performance-focused implementations, and customization via templates and policy-based design.
- •Benefits highlighted include efficient change reasoning, safe concurrency with pass-by-value, and parallelism features like O(log n) concatenation.
- •Immer is header-only, requires a C++14-compliant compiler, is tested with Clang 3.8 and GCC 6, and can be installed via Nix, CMake, and vcpkg.
- •Example projects (Ewig and Lager) demonstrate usage; documentation, GitHub code, a CppCon talk, and an ICFP paper are provided, with sponsorship invited.