Dev tools · alternatives · 2026
24 alternatives to Cppmatch – Rust-Like Pattern Matching and Error Handling for C++
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…
Cppmatch is a header-only C++ library that brings Rust-style pattern matching and error handling to C++. It enables developers to write exception-free code using error-as-value semantics, making error types explicit… Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes.
- 1

A C++ HTML template engine that uses compile time HTML parsing - rep-movsd/see-phit
2017 · github.com · its alternatives →
- 2

A lightweight single-header pattern-matching library for C++17 with macro-free APIs. Try it at https://godbolt.org/z/8YMr8Kz8j
2022 · github.com · its alternatives →
- 3

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 →
- 4

- 5

An implementation of a dynamic programming language in Rust. Includes: Parser/Compiler, REPL, Virtual Machine, Bytecode Disassembler This started out as a learning project to teach myself Rust. It has grown into a decently substantial piece of software and I've learned quite a bit in the process! Some neat things: + A garbage collector that can store dynamically sized types without any double-indirection (i.e. I have my own Box implementation with manual alloc/dealloc) + The smart pointer used to reference GCed data is a thin pointer. The ptr metadata needed for DSTs is stored in…
2022 · github.com · its alternatives →
- 6AI
I built this software to help users who need to do static code analysis for C/C++ codebase. This can help you to explore the ASTs interactively. It can replace the Clang ast dump completely and also you can search the code/ASTs in a structual way. For example you can search a function which matches specific name or number of paremeters.
May 2026 · uvic-aurora.github.io · its alternatives →
- 7

A dbg(…) macro for C++. Contribute to sharkdp/dbg-macro development by creating an account on GitHub.
2019 · github.com · its alternatives →
- 8

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 →
- 9

⛳ Simple, extensible, header-only C++20 argument parser released into the public domain. - sailormoon/flags
2016 · github.com · its alternatives →
- 10

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…
2025 · github.com · its alternatives →
- 11

Tach is a pip package that lets you define module boundaries, automatically detect all cross-module dependencies, and then validate and enforce those dependencies. It also supports strict interfaces for modules by overloading `__all__`. The core static analysis is done in Rust, so all Tach commands run quickly. The goal of Tach is to help eng teams maintain velocity while scaling quickly, something we've seen break down a number of times. Give it a try!
2024 · github.com · its alternatives →
- 12

SIMD-accelerated UTF-8 validation for Rust. Contribute to rusticstuff/simdutf8 development by creating an account on GitHub.
2021 · github.com · its alternatives →
- 13

Meta programming utilities for C++14. Merged in matt-42/lithium - matt-42/iod
2014 · github.com · its alternatives →
- 14

This project is inspired by some of the asserts in Unreal engine. Due to reliance on core_intrinsics it is necessary to develop using nightly Rust, but there are stubs in place so a production build will not require nightly. I recently released version 0.2 which includes no_std support and adds optional log message arguments to the ensure macro.
2024 · github.com · its alternatives →
- 15

The fastest feature-rich C++11/14/17/20/23 single-header testing framework - doctest/doctest
2016 · github.com · its alternatives →
- 16

Minimal Rust-inspired C++20 STL replacement. Contribute to TheNumbat/rpp development by creating an account on GitHub.
2024 · github.com · its alternatives →
- 17

This C library is part of a main project aimed at providing a reactive key-value (KV) database. The data is typed (numbers, strings, dates, or booleans) and can include formulas with references to other entries. Clients connected to this database receive a real-time data stream with updates to the subscribed keys, allowing them to react to changes and their dependencies. Essentially, it’s like building a distributed Excel, where data and formulas dynamically update across the system. I couldn’t find any libraries that offered the full set of features I needed for evaluating expressions, so I…
2024 · github.com · its alternatives →
- 18

Try it on Compiler Explorer: https://godbolt.org/z/91dj5jeGW Check out the source code: https://github.com/RyanJK5/rjk-duck
Jul 2026 · ryanjk5.github.io · its alternatives →
- 19

A simple way to output stack traces when a program crashes in C++, using the new C++23 <stacktrace> header - TylerGlaiel/Crashlogs
2023 · github.com · its alternatives →
- 20

Stack Error is a pragmatic error handling library for Rust that provides helpful messages for debugging, and structured data for runtime error handling. Features: * Informative error messages: stack error messages and optionally add file/line context to your messages. This helps convey not just what went wrong, but also how it went wrong, making debugging faster. * Programmatic error handling: include optional error codes and URIs for robust runtime handling. * Library-Friendly: define custom error types easily while staying compatible with Rust’s error ecosystem. If designing good…
2025 · github.com · its alternatives →
- 21

HNSW implementation in Rust. Reference: https://arxiv.org/ftp/arxiv/papers/1603/1603.09320.pdf - swapneel/hnsw-rust
2024 · github.com · its alternatives →
- 22

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 →
- 23

This is a hobby project of mine that I started a few years ago to learn about programming language implementation. It was created 95% without AI, although a few recent commits include code from Gemini CLI. I started out following Crafting Interpreters, but gradually branched off that until I had almost nothing left in common. Tech stack: Rust, Cranelift (JIT compilation), LALRPOP (parser). Original title: "A small programming language where everything is a value" (edited based on comments)
Jan 2026 · github.com · its alternatives →
- 24

C++14: bringing in those expressions that you wish you had, Lazily evaluated, compossible generators, maps, filters, ranges and more... - GitHub - SaadAttieh/lazyCode: C++14: bringing in those expressions that you wish you had, Lazily evaluated, compossible generators, maps, filters, ranges and more
2018 · github.com · its alternatives →
Also compare
- Compile-time HTML parsing in C++14 alternatives
- Match(it): A C++17 pattern-matching library with lots of good stuffs alternatives
- I built a small browser engine from scratch in C++ alternatives
- Online C/C++ Code Browser alternatives
- I'm making a dynamic language in Rust alternatives
- Anyone interested in a tool helps to explore C++ ASTs alternatives
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 →