C++ Cpp17

Open-source C++ projects categorized as Cpp17 | Edit details

Top 23 C++ Cpp17 Projects

  • GitHub repo modern-cpp-tutorial

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

    Project mention: Computer science student. Just figured out what I want to do with my degree. Hacking. | reddit.com/r/hacking | 2021-05-01

    Work in this order: (1) -> (2) --> (3) ---> (4) --> (5) Next Steps: Modern C++11/14/17/20:(https://github.com/changkun/modern-cpp-tutorial)

  • GitHub repo entt

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

    Project mention: I wrote a simple Go->C++ compiler to use for gameplay programming. Here's a demo of its use for my game project (along with an editor tool). I show the generated C++ in the end of the video. Compiler source code is ~1500 lines, link in video description. Will do a deeper public release soon! | reddit.com/r/golang | 2021-11-25

    Interop: With this compiler I have direct interop to existing C++ libraries and codebases. For example I use EnTT for the entity-component data storage in the game demo here, and I'm able to call to the C++ including Go's generic syntax translating to template calls. That's not as easy with Cgo (and also Cgo adds huge overhead)

  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo Thrust

    The C++ parallel algorithms library.

  • GitHub repo doctest

    The fastest feature-rich C++11/14/17/20 single-header testing framework

    Project mention: Unit testing and mocking for c++ | reddit.com/r/cpp | 2021-10-19

    I usually use doctest with trompeloeil.

  • GitHub repo 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: Design Issues for Foreign Function Interfaces (2004) | news.ycombinator.com | 2021-11-30

    Very interesting article!

    Unfortunately, it doesn't mention Lua, which in my opinion has one of the most elegant C APIs that I have seen. It is entirely stack based, which means you only need to work with primitive types, such as numbers, C strings and user provided opaque pointers. As a consequence, you never have to care about memory management because Lua doesn't even let you access the actual Lua objects.

    You want to create a table (= Lua's dictionary/array hybrid) and set a field "foo" to 5? lua_newtable() creates a new table and pushes it onto the stack. Then you push "foo" with lua_pushstring() and 5 with lua_pushnumber(). Finally you call lua_settable(), which pops the key and value from the stack, checks if the top of the stack contains a table, and if yes, sets the given field to the given value. The actual table structure is never exposed!

    This kind of stack manipulation might seem unusual and a bit unweildy, but what you get is safety. If you mess up the stack or perform illegal operations, Lua will call an error handler, but the VM should never crash. The stack API can be seen as the fundamental layer upon which people can create nice abstractions for their host language of choice. Examples are "sol2" for C++ (https://github.com/ThePhD/sol2) or "lupa" for Python (https://github.com/scoder/lupa)

    The public API is contained in "lua.h": https://github.com/lua/lua/blob/master/lua.h. "lauxlib.h" offers some useful helper functions: https://github.com/lua/lua/blob/master/lauxlib.h

    For comparison, this is Python's "Limited" C API: https://docs.python.org/3/c-api/stable.html#stable

    If you want to learn more about Lua's C API, have a look at section 4 in https://www.lua.org/manual/5.4/manual.html

  • GitHub repo 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: Circle, the C++ Automation Language | news.ycombinator.com | 2021-10-16
  • GitHub repo Tendis

    Tendis is a high-performance distributed storage system fully compatible with the Redis protocol.

    Project mention: Redis Cluster Re-Implemented in Rust: Scaling Redis Easily in Kubernetes | news.ycombinator.com | 2021-10-15
  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo compile-time-regular-expressions

    A Compile time PCRE (almost) compatible regular expression matcher.

    Project mention: Stringy Templates | reddit.com/r/cpp | 2021-10-23

    On the topic of wild things done with compile time strings, check out /u/hanickadot's compile-time regular expressions if you haven't already, it's mind-blowing

  • GitHub repo Elements C++ GUI library

    Elements C++ GUI library

    Project mention: C++ dev having trouble finding what ui toolkit to use for pet project | reddit.com/r/linuxmasterrace | 2021-11-30

    ### [Elements](https://github.com/cycfi/elements) (Formerly photon)

  • GitHub repo libcudacxx

    The C++ Standard Library for your entire system.

    Project mention: When will CUDA have C++ std libraries out of box in kernel function? | reddit.com/r/CUDA | 2021-10-21

    Checkout https://github.com/NVIDIA/libcudacxx

  • GitHub repo Osiris

    Free open-source game cheat for Counter-Strike: Global Offensive, written in modern C++. GUI powered by Dear ImGui.

    Project mention: How do I download Osiris and what all should I download to start (legit) cheating? | reddit.com/r/Csgohacks | 2021-11-24
  • GitHub repo xray-16

    Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)

    Project mention: If software (OpenXRay-engine in this case) has a BSD-style license, does that automatically mean I can make derivative works (eg a new game, unrelated to S.T.A.L.K.E.R.) and sell them? | reddit.com/r/foss | 2021-11-28
  • GitHub repo PEGTL

    Parsing Expression Grammar Template Library

    Project mention: We Built a C++ Rendering Engine for the Web | news.ycombinator.com | 2021-07-10

    As a professional C++ programmer I feel a lot of the reasons C++ gets this response is because it's simply not "batteries included" like Go or Rust.

    C++ is a very powerful, unopinionated language, that gives you a lot of freedom to attack your problem domain the way you best see fit.

    If you're writing a networked application, don't use POSIX sockets, go and find a higher level library. If you're parsing complex text formats, don't iterate over buffers with char*'s, go pick up PEGTL[0]. If you're working on graphs, or need to properly index in-memory data, go pick up Boost[1][2]. If you need a GUI, go pick up Qt.

    It's extremely common in C++, due to the lack of a universal package management solution, for people to try and "muddle through" and do shit themselves when it's far outside their core competency.

    At one of my last employers, the core product was parsing JSON with std::regex, simply because they couldn't be bothered to integrate a JSON library.

    [0] https://github.com/taocpp/PEGTL

    [1] https://www.boost.org/doc/libs/1_76_0/libs/graph/

    [2] https://www.boost.org/doc/libs/1_76_0/libs/multi_index/doc/i...

  • GitHub repo uvw

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

    Project mention: I hate ASIO and I can't be alone. | reddit.com/r/cpp | 2021-08-14

    Have you tried this wrapper? https://github.com/skypjack/uvw

  • GitHub repo Nameof C++

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

    Project mention: Getting an Unmangled Type Name at Compile Time | reddit.com/r/cpp | 2021-03-10
  • GitHub repo rang

    A Minimal, Header only Modern c++ library for terminal goodies 💄✨

  • GitHub repo Vc

    SIMD Vector Classes for C++

    Project mention: Vc 1.4.2 released: portable SIMD programming for C++ | reddit.com/r/cpp | 2021-06-23
  • GitHub repo CppCon2020

    Slides and other materials from CppCon 2020

  • GitHub repo pfr

    std::tuple like methods for user defined types without any macro or boilerplate code

    Project mention: The Serde Rust Framework | news.ycombinator.com | 2021-10-14

    I wonder if the c++ approach of boost.pfr would be portable to rust ? It allows reflection on aggregates without needing to annotate anything: https://github.com/boostorg/pfr

  • GitHub repo Turbo Vision

    A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.

    Project mention: Any good TUI libraries for Windows in C/C++ (Text User Interface)? | reddit.com/r/cpp | 2021-11-07

    I guess you could use a Turbo Vision clone that goes back to MS-DOS days, question is why bother.

  • GitHub repo lithium

    Easy to use C++17 HTTP Server with no compromise on performances. https://matt-42.github.io/lithium

    Project mention: C or C++ as web app backend? | reddit.com/r/cpp | 2021-10-27


  • GitHub repo filesystem

    An implementation of C++17 std::filesystem for C++11 /C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD.

    Project mention: Retiring boost from my codebase | reddit.com/r/cpp | 2021-07-29

    boost::filesystem -> https://github.com/gulrak/filesystem.git

  • GitHub repo EKA2L1

    An experimental Symbian OS emulator

    Project mention: 2K Wanted BioShock on Phones, Here's How One Dev Team Pulled it Off | reddit.com/r/Games | 2021-09-25

    I'm so happy to prove you wrong! https://github.com/EKA2L1/EKA2L1

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 2021-11-30.

C++ Cpp17 related posts


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

Project Stars
1 modern-cpp-tutorial 15,736
2 entt 5,961
3 Thrust 3,567
4 doctest 3,544
5 sol2 2,766
6 Magic Enum C++ 2,297
7 Tendis 2,278
8 compile-time-regular-expressions 2,112
9 Elements C++ GUI library 1,962
10 libcudacxx 1,853
11 Osiris 1,800
12 xray-16 1,779
13 PEGTL 1,437
14 uvw 1,343
15 Nameof C++ 1,201
16 rang 1,171
17 Vc 1,142
18 CppCon2020 1,125
19 pfr 990
20 Turbo Vision 842
21 lithium 824
22 filesystem 767
23 EKA2L1 762
Find remote jobs at our new job board 99remotejobs.com. There are 33 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives