C++ no-dependencies

Open-source C++ projects categorized as no-dependencies

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)

    Project mention: C++ Comparison Operator Craziness | news.ycombinator.com | 2024-02-12
  • entt

    Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

    Project mention: Focus: A simple and fast text editor written in Jai | news.ycombinator.com | 2023-09-02

    https://pastebin.com/VPypiitk This is a very small experiment i did to learn the metaprogramming features. its an ECS library using the same model as entt (https://github.com/skypjack/entt). In 200 lines or so it does the equivalent of a few thousand lines of template heavy Cpp while compiling instantly and generating good debug code.

    Some walkthrough:

    Line 8 declares a SparseSet type as a fairly typical template. its just a struct with arrays of type T inside. Next lines implement getters/setters for this data structure

    Line 46 Base_Registry things get interesting. This is a struct that holds a bunch of SparseSet of different types, and providers getters/setters for them by type. It uses code generation to do this. The initial #insert at the start of the class injects codegen that creates structure members from the type list the struct gets on its declaration. Note also how type-lists are a native structure in the lang, no need for variadics.

    Line 99 i decide to do variadic style tail templates anyway for fun. I implement a function that takes a typelist and returns the tail, and the struct is created through recursion as one would do in cpp. Getters and setters for the View struct are also implemented through recursion

    Line 143 has the for expansion. This is how you overload the for loop functionality to create custom iterators.

    The rest of the code is just some basic test code that runs the thing.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • 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: What C++ library do you wish existed but hasn’t been created yet? | /r/cpp | 2023-07-08

    I'm not sure this is quite what you're asking for, but this library has been super helpful to me in the past : https://github.com/Neargye/magic_enum

  • CLI11

    CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.

    Project mention: C++ Game Utility Libraries: for Game Dev Rustaceans | dev.to | 2024-03-13

    Book: CLI11 book

  • Nameof C++

    Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum

  • tomlplusplus

    Header-only TOML config file parser and serializer for C++17.

  • refl-cpp

    Static reflection for C++17 (compile-time enumeration, attributes, proxies, overloads, template functions, metaprogramming).

    Project mention: Out of bounds memory access in V8 in Google Chrome prior to 120.0.6099.224 | news.ycombinator.com | 2024-01-25

    You'd be surprised how much friction you'd have for C++ reflection. First, since it's a custom build step, you can do a mix of custom code gen and C++ constexpr/consteval for static reflection. Here's a header-only implementation for adding compile time reflection purely within the language [1]. And v8 already does dynamic code gen as part of its build process (to generate the snapshot to speedup instantiation of the isolate). Dynamic reflection is a must since JS is a dynamic language with reflection support.

    Now of course, I don't know the specific details of reflection needed for the abstractions you reference and clearly V8 is still doing some amount of manual IR generation, so it's possible it would be a substantial investment to actually retrofit those techniques into v8. One would have to do a careful analysis of historical security exploits & specific techniques and their ability to prevent to figure out if it's worth adding those abstractions (especially since there is a potential performance tradeoff as you mention). As I said, I think there's insufficient research in this area to establish a compelling body of best practices (not to take away from the contributions of the GraalJS team to this space).

    [1] https://github.com/veselink1/refl-cpp

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • UNITS

    a compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.

    Project mention: I want some logically difficult c programs | /r/C_Programming | 2023-12-09

    C++ Version

  • unordered_dense

    A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion

    Project mention: unordered_dense: A Fast & Densely Stored Hashmap And Hashset Based On Robin-Hood Backward Shift Deletion | /r/programming | 2023-07-11
  • nanoprintf

    The smallest public printf implementation for its feature set.

    Project mention: nanoprintf VS callback_printf - a user suggested alternative | libhunt.com/r/nanoprintf | 2023-08-16
  • 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

  • libriscv

    C++20 RISC-V RV32/64/128 userspace emulator library

    Project mention: Ask HN: Looking for a project to volunteer on? (November 2023) | news.ycombinator.com | 2023-11-02

    Seeking: https://github.com/fwsGonzo/libriscv

    This is a C++ RISC-V emulator that focuses on isolating a single process, aka userspace emulation. I am currently working mostly on binary translation, and recently I have made a push to move it from experimental state to fully supported. Another experimental feature is embedding libtcc and using that for binary translation. It is fairly fast to compile, and gives decent speedups. The challenge is what to do now that (perhaps) some low hanging fruits have been picked.

  • expected-lite

    expected lite - Expected objects in C++11 and later in a single-file header-only library

    Project mention: Refactoring with C++17 std::optional | /r/cpp | 2023-05-22

    Or nonstd::expected. Personally, I would rather use output parameters and an enum result or a std::variant over std::optional, because at the very least you have the option for more specific error diagnostics.

  • leaf

    Lightweight Error Augmentation Framework (by boostorg)

  • semver

    Semantic Versioning for modern C++ (by Neargye)

  • 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: I'm a beginner making a library for unit conversion, contributions are welcome | /r/cpp | 2023-04-21

    Be sure to check this one, too https://github.com/aurora-opensource/au

  • result

    A lightweight C++11-compatible error-handling mechanism (by bitwizeshift)

  • uni-algo

    Unicode Algorithms Implementation for C/C++

    Project mention: uni-algo: Unicode Algorithms Implementation for C/C++ | news.ycombinator.com | 2024-03-25
  • scope_guard

    A modern C++ scope guard that is easy to use but hard to misuse.

  • influxdb-cpp

    💜 C++ client for InfluxDB.

  • ring-span-lite

    ring-span lite - A C++yy-like ring_span type for C++98, C++11 and later in a single-file header-only library

  • bredis

    Boost::ASIO low-level redis client (connector)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-03-25.

C++ no-dependencies related posts

Index

What are some of the best open-source no-dependency projects in C++? This list will help you:

Project Stars
1 Catch 17,898
2 entt 9,351
3 Magic Enum C++ 4,324
4 CLI11 3,049
5 Nameof C++ 1,919
6 tomlplusplus 1,380
7 refl-cpp 986
8 UNITS 915
9 unordered_dense 692
10 nanoprintf 563
11 span-lite 485
12 string-view-lite 396
13 libriscv 395
14 expected-lite 342
15 leaf 289
16 semver 278
17 au 273
18 result 265
19 uni-algo 237
20 scope_guard 160
21 influxdb-cpp 149
22 ring-span-lite 147
23 bredis 146
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com