modern-cpp

Open-source projects categorized as modern-cpp
Language: + C++ + C

Top 23 modern-cpp Open-Source Projects

  • modern-cpp-tutorial

    📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly | https://changkun.de/modern-cpp/

  • 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.

  • JetBrains Dev Survey

    What’s up with the C++ ecosystem in 2023? JetBrains Developer Ecosystem Survey 2023 has given us many interesting insights. The Embedded (37%) and Games (39%) industries are already working with C++20, developers are incorporating static analysis in their CI, and ChatGPT usage among coders is flourishing. Read on for more!

  • EA Standard Template Library

    EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

    Project mention: Sane C++ Libraries | news.ycombinator.com | 2024-01-27

    > you can still use it with smart pointers provided by any other library

    Is the point of having a kitchen-sink library like this not that you dont have to reach for a 3rdparty library for things that you need 'all the time'?

    Certainly, not everyone needs it.

    ...but, not everyone needs threads either. Not everyone needs an http server; and yet, if you have an application framework that provides them, when you do need them, it saves you reaching for yet-another-dependency.

    Was that no the point from the beginning?

    unique_ptr is a fundamental primitive for many, as you see from some other frameworks (1), and implementation is not always either a) trivial, or b) as simple as 'just use std::unique_ptr'.

    This does seem like a very opinionated decision with reasonably unclear justification.

    [1] - eg. https://github.com/EpicGames/UnrealEngine/blob/release/Engin..., https://github.com/electronicarts/EASTL/blob/master/include/...

  • flecs

    A fast entity component system (ECS) for C & C++

    Project mention: ECS, Finally | news.ycombinator.com | 2023-12-30

    I've also been enjoying building My First Game™ in Bevy using ECS. The community around Bevy really shines, but Flecs (https://github.com/SanderMertens/flecs) is arguably a more mature, open-source ECS implementation. You don't get to write in Rust, though, which makes it less cool in my book :)

    I'm not very proud of the code I've written because I've found writing a game to be much more confusing than building websites + backends, but, as the author notes, it certainly feels more elegant than OOP or globals given the context.

    I'm building for WASM and Bevy's parallelism isn't supported in that context (yet? https://github.com/bevyengine/bevy/issues/4078), so the performance wins are just so-so. Sharing a thread with UI rendering suuucks.

    If anyone wants to browse some code or ask questions, feel free! https://github.com/MeoMix/symbiants

  • LeetCode-Solutions

    🏋️ Python / Modern C++ Solutions of All 3036 LeetCode Problems (Weekly Update)

  • sol2

    Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:

    Project mention: Any tips for how to make moddable games? | /r/gamedev | 2023-05-20

    As someone said, make the game data-driven is a good first step but I will say, also have some sort of way to add additional game logic. For C++ games, lua is really easy to embed the interpreter in your C++ binary, read in the files from a directory (like /mods) with the C++ filesystem api new in C++17, and it's very easy to use SoL to write an API for lua specific to your game. Many games use lua in this way and it's probably the most common mod path setup.

  • awesome-hpp

    A curated list of awesome header-only C++ libraries

  • Onboard AI

    ChatGPT with full context of any GitHub repo. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at app.getonboardai.com.

  • Elements C++ GUI library

    Elements C++ GUI library

    Project mention: declarative GUI libraries | /r/cpp | 2023-06-23
  • immer

    Postmodern immutable and persistent data structures for C++ — value semantics at scale (by arximboldi)

    Project mention: Text Editor Data Structures: Rethinking Undo | news.ycombinator.com | 2023-12-11

    I've been working on an editor (not text) in C++ and pretty early got into undo/redo. I went down the route of doIt/undoIt for commands but that quickly got old. There was both the extra work needed to implement undo separately for every operation, but also the nagging feeling that the undo operation for some operation wasn't implemented correctly.

    In the end, I switched to representing the entire document state using persistent data structures (using the immer library). This vastly simplified things and implementing undo/redo becomes absolutely trivial when using persistent data structures. It's probably not something that is suitable for all domains, but worth checking out.

    https://github.com/arximboldi/immer

  • nana

    a modern C++ GUI library

  • sqlite_orm

    ❤️ SQLite ORM light header only library for modern C++

    Project mention: Introducing ZXORM - A C++20 ORM for SQLite with Compile Time Type Safety | /r/cpp | 2023-03-30

    Obligatory "how does it compare to" https://github.com/fnc12/sqlite_orm ?

  • eos

    A lightweight 3D Morphable Face Model library in modern C++ (by patrikhuber)

  • uvw

    Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!

  • managarm

    Pragmatic microkernel-based OS with fully asynchronous I/O

    Project mention: RISC-V support (super-duper ultra WIP) by ElectrodeYT · Pull Request #534 · managarm/managarm | /r/RISCV | 2023-07-09
  • q

    C++ Library for Audio Digital Signal Processing (by cycfi)

  • stdgpu

    stdgpu: Efficient STL-like Data Structures on the GPU

  • butano

    Modern C++ high level GBA engine

    Project mention: Can you make a gba game in c++? | /r/gamedev | 2023-03-09
  • RigelEngine

    A modern re-implementation of the classic DOS game Duke Nukem II

    Project mention: Commander Keen: Can we get some love? | /r/retrogaming | 2023-07-04

    Duke Nukem 2 has a source port called Rigel Engine: https://github.com/lethal-guitar/RigelEngine/tags

  • liblava

    Modern and easy-to-use library for Vulkan

    Project mention: Vulkan all the way: Transitioning to a modern low-level graphics API in academia | /r/programming | 2023-03-07

    Sorry for late response! The one I like most is LibLava https://github.com/liblava/liblava I contributed a few features that it was missing for me, and a few other people have done the same, so it's somewhat battle tested. At least two people have used it in academic projects. I like that it gives you full access to the low level parts of Vulkan while still providing high level abstractions over a lot, especially the render loop. The biggest issue imo is lackluster documentation, but it's fairly well organized and readable source code. Build times are also pretty long due to its many dependencies.

  • cuda-api-wrappers

    Thin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX.

    Project mention: VUDA: A Vulkan Implementation of CUDA | news.ycombinator.com | 2023-07-01

    1. This implements the clunky C-ish API; there's also the Modern-C++ API wrappers, with automatic error checking, RAII resource control etc.; see: https://github.com/eyalroz/cuda-api-wrappers (due disclosure: I'm the author)

    2. Implementing the _runtime_ API is not the right choice; it's important to implement the _driver_ API, otherwise you can't isolate contexts, dynamically add newly-compiled JIT kernels via modules etc.

    3. This is less than 3000 lines of code. Wrapping all of the core CUDA APIs (driver, runtime, NVTX, JIT compilation of CUDA-C++ and of PTX) took me > 14,000 LoC.

  • Mudlet

    ⚔️ A cross-platform, open source, and super fast MUD client with scripting in Lua

    Project mention: Path to becoming a desktop applications software developer? | /r/cpp | 2023-04-29

    Mudlet is a crossplatform (Windows, macOS, Linux) C++ application that embeds Lua - could be a good way to get started with this kind of development in a safe environment and get some experience under your sleeve.

  • cccl

    CUDA C++ Core Libraries

    Project mention: GDlog: A GPU-Accelerated Deductive Engine | news.ycombinator.com | 2023-12-03

    https://github.com/topics/datalog?l=rust ... Cozo, Crepe

    Crepe: https://github.com/ekzhang/crepe :

    > Crepe is a library that allows you to write declarative logic programs in Rust, with a Datalog-like syntax. It provides a procedural macro that generates efficient, safe code and interoperates seamlessly with Rust programs.

    Looks like there's not yet a Python grammar for the treeedb tree-sitter: https://github.com/langston-barrett/treeedb :

    > Generate Soufflé Datalog types, relations, and facts that represent ASTs from a variety of programming languages.

    Looks like roxi supports n3, which adds `=>` "implies" to the Turtle lightweight RDF representation: https://github.com/pbonte/roxi

    FWIW rdflib/owl-rl: https://owl-rl.readthedocs.io/en/latest/owlrl.html :

    > simple forward chaining rules are used to extend (recursively) the incoming graph with all triples that the rule sets permit (ie, the “deductive closure” of the graph is computed).

    ForwardChainingStore and BackwardChainingStore implementations w/ rdflib in Python: https://github.com/RDFLib/FuXi/issues/15

    Fast CUDA hashmaps

    Gdlog is built on CuCollections.

    GPU HashMap libs to benchmark: Warpcore, CuCollections,

    https://github.com/NVIDIA/cuCollections

    https://github.com/NVIDIA/cccl

    https://github.com/sleeepyjack/warpcore

    /? Rocm HashMap

    DeMoriarty/DOKsparse:

  • csv2

    Fast CSV parser and writer for Modern C++

  • 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.

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-01-27.

modern-cpp related posts

Index

What are some of the best open-source modern-cpp projects? This list will help you:

Project Stars
1 modern-cpp-tutorial 22,741
2 entt 9,221
3 EA Standard Template Library 7,575
4 flecs 5,322
5 LeetCode-Solutions 4,420
6 sol2 3,807
7 awesome-hpp 3,077
8 Elements C++ GUI library 2,858
9 immer 2,400
10 nana 2,203
11 sqlite_orm 2,073
12 eos 1,864
13 uvw 1,729
14 managarm 1,267
15 q 1,048
16 stdgpu 1,043
17 butano 951
18 RigelEngine 869
19 liblava 730
20 cuda-api-wrappers 704
21 Mudlet 681
22 cccl 586
23 csv2 499
The modern API for authentication & user identity.
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
workos.com