A reactive programming library for C++14 that enables declarative data dependencies and automatic change propagation.
C++React is a reactive programming library for C++14 that enables the declarative definition of data dependencies between state and event flows. It automatically handles change propagation based on these dependencies, solving the problem of manual update management in complex state-driven applications.
C++ developers building applications with dynamic state management, such as UI frameworks, simulation tools, or data processing systems that require efficient and correct update propagation.
Developers choose C++React for its guaranteed correctness, consistency, and efficiency in automatic change propagation, along with support for parallel updates and live profiling, making it a robust solution for reactive programming in C++.
C++React: A reactive programming library for C++11.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables clear definition of data relationships using functional expressions, as demonstrated with StateVar and State objects, reducing manual update logic.
Automatically propagates changes through a dependency graph to ensure no updates are forgotten and values remain consistent, preventing common errors in state management.
Recalculates values only once per update cycle and stops propagation when values are unchanged, optimizing performance in complex dependency graphs.
Identifies when values can be safely updated from multiple threads and includes live profiling to decide when parallel updates are beneficial for performance.
The library is currently being rewritten from scratch with many features broken or outdated, as admitted in the README, making it unreliable for current use.
With the rewrite in progress, documentation is incomplete or points to a legacy branch, hindering onboarding and troubleshooting for new users.
As a niche C++ library, it lacks the extensive support, examples, and third-party integrations found in more established reactive frameworks.