lager is a C++ library to assist value-oriented design by implementing the unidirectional data-flow architecture. It is heavily inspired by Elm and Redux, and enables composable designs by promoting the use of simple value types and testable application logic via pure functions. And you get time-travel for free!
Documentation (Contents)
Code (GitHub)
CppRussia-Piter 2019 Talk: Squaring the circle (YouTube, Slides)
CppCon 2018 Talk: The most valuable values (YouTube, Slides)
C++ on Sea 2019 Talk: Postmodern immutable data-structures (YouTube, Slides)
![]()
This project is part of a long-term vision helping interactive and concurrent C++ programs become easier to write. Help this project’s long term sustainability by becoming a patron or buying a sponsorship package: juanpe@sinusoid.al
User Manual
Reference