SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 C++ no-dependency Projects
-
Catch
A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
To add unit tests into my CLI tool I used Catch2, a modern C++ unit testing framework that makes writing tests easy and quick. It has a nice single-header option that you can drop into a repo, simple REQUIRE / CHECK macros, and flexible test naming and tagging. Also, Catch2 was the library I found interesting when I was looking at open-source projects during the first week of OSD600 cource, so I already liked it.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
Magic Enum C++
Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
Project mention: Magic Enum C++: Header-only C++17 library provides static reflection for enums | news.ycombinator.com | 2026-06-04 -
CLI11
CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
-
Nameof C++
Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum
-
I found that this repository had no pull request yet so I contacted the owner to get permission to work on it after filing an issue, then I got to work researching how to approach this using C++. My C++ is rusty, so it took me some time to work my way through the code. Finally, with a little research, I worked out that I could use the existing CMake file in this project to set up the tomlplusplus implementation which would allow me to parse a config.toml file and load default options into the tool. I added a new function, loadFromConfig, that reads the TOML file and populates the CLI options struct with values like output, include, exclude, and recent. This way, users can define their preferences once and avoid repeating long command-line arguments.
-
unordered_dense
A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion
Shoutout to unordered_dense, a drop-in replacement for C++ unordered_map that uses this:
https://github.com/martinus/unordered_dense
-
refl-cpp
Static reflection for C++17 (compile-time enumeration, attributes, proxies, overloads, template functions, metaprogramming).
-
Project mention: FUSE is All You Need – Giving agents access to anything via filesystems | news.ycombinator.com | 2026-01-11
I recently had a question about what AI sandboxes use and I think Modal uses gvisor under the hood and I think others use firecracker/generally favour it as well
Firecracker kind of ends up being in the VM categories and I would place gvisor in a similar category too under the VM
So in my opinion, VM's are sandboxes.
Of course there is also libriscv https://github.com/libriscv/libriscv which is a sandbox (The fastest RISC-V sandbox)
There is also https://github.com/Zouuup/landrun Run any Linux process in a secure, unprivileged sandbox using Landlock. Think firejail, but lightweight, user-friendly, and baked into the kernel.
Your mileage may vary but I consider firecracker to be the AI sandbox usually. Othertimes it can be that they abstract on a cloud provider and open up servers in that or similar (I feel E2B does this on top of gcp)
-
UNITS
a compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.
-
-
-
expected-lite
expected lite - C++23 expected objects for C++11 and later in a single-file header-only library
-
span-lite
span lite - A C++20-like span for C++98, C++11 and later in a single-file header-only library
-
string-view-lite
string_view lite - A C++17-like string_view for C++98, C++11 and later in a single-file header-only library
-
au
A C++14-compatible physical units library with no dependencies and a single-file delivery option. Emphasis on safety, accessibility, performance, and developer experience. (by aurora-opensource)
-
-
-
Project mention: Show HN: Utl:parallel – Work-stealing concurrency library for C++17 | news.ycombinator.com | 2025-08-03
-
-
-
-
C++ no-dependencies discussion
C++ no-dependencies related posts
-
Writing your own C++ standard library part 2
-
`DestroyJavaVM()` failing on OpenJ9?
-
[Cpp] Comment testez-vous la couverture du code C ++? Y a-t-il des solutions multiplateforme viables?
-
Is there a std::string::split or something similar?
-
If you limit an std::string in a class to be < 15 characters, can you assume that any time the string is read it will stay on the stack due to SSO?
-
std::expected (with monadic interface) implementation in C++20 (P0323, P2505)
-
GitHub - martinus/svector: Small Vector optimization
-
A note from our sponsor - SaaSHub
www.saashub.com | 6 Jun 2026
Index
What are some of the best open-source no-dependency projects in C++? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | Catch | 20,426 |
| 2 | entt | 12,753 |
| 3 | Magic Enum C++ | 6,100 |
| 4 | CLI11 | 4,313 |
| 5 | Nameof C++ | 2,320 |
| 6 | tomlplusplus | 2,073 |
| 7 | unordered_dense | 1,403 |
| 8 | refl-cpp | 1,201 |
| 9 | libriscv | 1,071 |
| 10 | UNITS | 1,047 |
| 11 | nanoprintf | 824 |
| 12 | SaneCppLibraries | 621 |
| 13 | expected-lite | 551 |
| 14 | span-lite | 514 |
| 15 | string-view-lite | 469 |
| 16 | au | 425 |
| 17 | semver | 352 |
| 18 | leaf | 339 |
| 19 | UTL | 334 |
| 20 | uni-algo | 316 |
| 21 | result | 311 |
| 22 | eventbus | 207 |
| 23 | scope_guard | 203 |