nowfound

Dev tools · alternatives · 2026

24 alternatives to CXXStateTree – A modern C++ library for hierarchical state machines

Hi HN! I've built [CXXStateTree](https://github.com/ZigRazor/CXXStateTree), a modern C++ header-only library to create hierarchical state machines with clean, intuitive APIs. It supports: - Deeply nested states - Entry/exit handlers - State transitions with guards and actions - Asynchronous transitions with `co_await` (C++20 coroutines) - Optional runtime type identification for flexibility It's ideal for complex control logic, embedded systems, games, robotics, and anywhere you'd use a finite state machine. I’d love feedback, use cases, or contributions from the…

CXXStateTree is a header-only C++ library for building hierarchical state machines with clean APIs. It enables developers to create deeply nested states with entry and exit handlers, transitions guarded by conditions… Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes.

  1. 1

    An OpenGL RTS game engine written in C. Contribute to eduard-permyakov/permafrost-engine development by creating an account on GitHub.

    2021 · github.com · its alternatives →

  2. 2

    Long-simmering side project that is finally ready to see the light. HAMTs are a cool persistent data structure and implementing one has been a lot of fun. Beyond the code, there is likely some value in the extensive and largely complete implementation docs; basic benchmarks are linked in the README, too. Kind of aiming to be "the libavl for HAMTs". That is obviously a high and aspirational bar but a distinct possibility if it stirs up a little interest and/or contribution. Anyways, it's time for this to go out, collect feedback and maybe even some use outside of toy projects. Let me…

    2023 · github.com · its alternatives →

  3. 3

    Hello Hacker News. I’m Martin, a graduate student from Prague, and I’ve been working on Coros, a C++ library for task-based parallelism. After spending some time with OpenMP and oneTBB, I wanted to try building a library using modern features from the C++ standard library. I’ve used coroutines for task encapsulation and C++23 expected for exception handling, while trying to maintain good performance. Additionally, I’ve implemented monadic-like behavior to allow easy chaining of tasks, similar to the monadic operations in std::expected. You can check out the project here:…

    2024 · github.com · its alternatives →

  4. 4

    A C++ HTML template engine that uses compile time HTML parsing - rep-movsd/see-phit

    2017 · github.com · its alternatives →

  5. 5

    I love C and C++, but setting up projects can sometimes be a pain. Every time I wanted to start something new I'd spend the first hour writing CMakeLists.txt, figuring out find_package, copying boilerplate from my last project, and googling why my library isn't linking. By the time the project was actually set up I'd lost all momentum. So, I built Craft - a lightweight build and workflow tool for C and C++. Instead of writing CMake, your project configuration goes in a simple craft.toml: [project] name = "my_app" version = "0.1.0" language = "c" c_standard = 99 [build] type = "executable"…

    Apr 2026 · github.com · its alternatives →

  6. 6

    Hi HN! Korean high school senior here, about to start CS in college. I built a browser engine from scratch in C++ to understand how browsers work. First time using C++, 8 weeks of development, lots of debugging—but it works! Features: - HTML parsing with error correction - CSS cascade and inheritance - Block/inline layout engine - Async image loading + caching - Link navigation + history Hardest parts: - String parsing(html, css) - Rendering - Image Caching & Layout Reflowing What I learned (beyond code): - Systematic debugging is crucial - Ship with known bugs rather than chase…

    Jan 2026 · github.com · its alternatives →

  7. 7

    Morning HN. Random number generation feels is a somewhat underrepresented topic in the C++ realm. There is a lot of questionable info about it found online and even the standard library is quite behind the times in terms of it's algorithms. It suffers from trying to accommodate sometimes impractical standard requirements and has several ways of getting significantly bad statistical results. This leaves a lot easily achievable performance & quality on the table. So, being a mathematician who mostly works with stochastic models and wants these models to run fast and well, I embarked on a…

    2025 · github.com · its alternatives →

  8. 8

    A little help for programmers, who wants to run C/C++ code in the browser. (This is my second attempt to show it, first time I got banned bcoz of my personal page domain, I don't really understand it why is is suspicious.)

    2022 · github.com · its alternatives →

  9. 9

    Hey HN, this is Will and David from Fortress (https://news.ycombinator.com/item?id=41426998). We use a lot of async Rust internally, and created this library out of a need for an async-aware concurrent hashmap since there weren’t many available in the Rust ecosystem. Whirlwind is a sharded HashMap with a fully asynchronous API. Just as dashmap is a replacement for std::sync::RwLock, whirlwind aims to be a replacement for tokio::sync::RwLock. It has a similar design and performance characteristics to dashmap, but seems to perform better in read-heavy workloads with tokio's…

    2024 · github.com · its alternatives →

  10. 10

    Statechart library and editor. Contribute to jonasblixt/ufsm development by creating an account on GitHub.

    2018 · github.com · its alternatives →

  11. 11MP

    I have been working on this game somewhat sparsely for the past three years or so. However, it is still in a very early stage, and there is a lot of work to do. One of my friends encouraged me to post about it here, since he felt people might find interesting how I don’t use any libraries for it. The game can be played on a browser by virtue of WebAssembly. There are native ports using either MiniFB or SDL2, but you have to build those yourself. I decided to write the game in C because I feel like it is a simple language that a lot of people can understand well enough, and I didn’t think I…

    2023 · zamfofex.neocities.org · its alternatives →

  12. 12

    Codebrowser homepage

    2016 · code.woboq.org · its alternatives →

  13. 13

    I've come to prefer modeling state machines with nested states, but implementing them by hand requires a large amount of error-prone boilerplate that obscures the important logic of the state machine. I found that the existing offerings in the Rust ecosystem - while inspiring - lacked a number of features that I was looking for, so I spent the last few months building moku. Feedback is welcome!

    2025 · docs.rs · its alternatives →

  14. 14

    Hi HN, Over the past few months, I've been building `dsc`, a tensor library from scratch in C++/CUDA. My main focus has been on getting the basics right, prioritizing a clean API, simplicity, and clear observability for running small LLMs locally. The key features are: - C++ core with CUDA support written from scratch. - A familiar, PyTorch-like Python API. - Runs real models: it's complete enough to load a model like Qwen from HuggingFace and run inference on both CUDA and CPU with a single line change[1]. - Simple, built-in observability for both Python and C++. Next on the roadmap is…

    2025 · github.com · its alternatives →

  15. 15

    A high performance, middleware oriented C++14 http web framework please use matt-42/lithium instead - matt-42/silicon

    2015 · github.com · its alternatives →

  16. 16

    An approach for runtime detection inside a constexpr function - SaadAhmad/in_constexpr

    2017 · github.com · its alternatives →

  17. 17

    I've created cppmatch, a lightweight, header-only C++ library that brings Rust-inspired pattern matching and error handling to C++. It tries to imitate the functionality of the questionmark (?) operator in C++ by using a macro that uses the gcc extension https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html This allows to create exceptionless code with non-intrusive error-as-value that unlike Exceptions, makes it clear which kinds of error a function can generate and forces you to handle (or ignore) them. The ? operator translates to *expect* To handle the errors I…

    2025 · github.com · its alternatives →

  18. 18

    Meta programming utilities for C++14. Merged in matt-42/lithium - matt-42/iod

    2014 · github.com · its alternatives →

  19. 19

    Non-preemptive Thread Hierarchy Manager. Contribute to gueststar/nthm development by creating an account on GitHub.

    2020 · github.com · its alternatives →

  20. 20

    CCState is a semantic, strict, and flexible state management library suitable for medium to large single-page applications with complex state management needs. The name of CCState comes from three basic data types: computed, command, and state.

    2024 · github.com · its alternatives →

  21. 21

    Brisk is an open-source C++ GUI framework with a declarative approach, offering powerful data bindings, GPU-accelerated graphics, and dynamic widget management. It supports macOS, Linux, Windows, and simplifies UI creation with modern paradigms and CSS-like layouts. Initially developed for a graphics-intensive project with a complex and dynamic GUI, the framework is currently under active development.

    2024 · github.com · its alternatives →

  22. 22

    A C++11 Hierarchical State Machine Library. Contribute to akiscode/roost_hsm development by creating an account on GitHub.

    2023 · github.com · its alternatives →

  23. 23

    Modified C++ Inspired by the paper "Some Were Meant for C" by Stephen Kell, I decided to show that it's possible to iterate C++ to be safer, more explicit, and less error-prone. Here's a possible starting point: I didn't invent a new language or compiler, but took the world's best compiler, clang, and modified it to begin iterating towards a new furture of C++. Naming things is hard, so I call this 'Modified C++'. Some of the following could be implemented as tooling in a linter or checker, but the idea is to update the compiler directly. I also wanted to learn more about clang. This…

    2022 · github.com · its alternatives →

  24. 24

    Header-Only C++ Library for Graphs Manipulation & Algorithms

    2021 · github.com · its alternatives →

Also compare

Ranked by how close each launch is in meaning, then by votes. Prices were read from each product’s own site when checked and can change. Refine with your own description →