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. Learn more →
Top 23 Cpp17 Open-Source Projects
-
modern-cpp-tutorial
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly | https://changkun.de/modern-cpp/
-
Just go through this https://github.com/AnthonyCalandra/modern-cpp-features and you should be fine.
If you also like thorough explanations and graphs, there's https://hackingcpp.com/ that could answer many questions you might have.
By the way, just in case, bookmark this online C++ reference https://eel.is/c++draft/ for diving in deep waters.
Good luck!
-
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.
-
-
Posted not so long ago https://github.com/federico-busato/Modern-CPP-Programming
-
Minetest
Minetest is an open source voxel game-creation platform with easy modding and game creation
https://www.minetest.net/ This is a pretty good opensource minecraft clone essentially, with some of it's own features.
-
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.
-
I have never used "tools" for unit-tests, only web sites that show the results of the tests or code coverage. For C++ I prefer https://github.com/doctest/doctest but most companies I worked for use Catch2.
-
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.
-
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
-
PrismLauncher
A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC)
I recommend switching to Prism Launcher.
-
-
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-08I'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
-
sol2
Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
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.
-
-
CTRE (https://github.com/hanickadot/compile-time-regular-expressions) ranges::views (filter, transform, etc.) (C++20) str.find() + str.substr() freopen to stdin + cin >> extraction Parser libraries
-
-
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! ;)
-
Tendis
Tendis is a high-performance distributed storage system fully compatible with the Redis protocol.
-
Thank you! This is exactly the sort of thing I was looking for.
I found the source at https://github.com/andreasfertig/cppinsights
-
-
-
They recently open sourced internal framework: https://github.com/userver-framework/userver
-
Take a look at https://github.com/wjakob/nanobind
> More concretely, benchmarks show up to ~4× faster compile time, ~5× smaller binaries, and ~10× lower runtime overheads compared to pybind11.
-
Nameof C++
Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Cpp17 related posts
- C++20 Idioms for Parameter Packs
- Ask HN: Catching Up on C++?
- Show HN: libremidi, a MIDI 1 & 2 C++20 library
- A proposal for the next version of C [pdf]
- Boost.Scope: collection of scope guard utilities
- Fast RISC-V-based scripting back end for game engines
- [2023 Day 10 (Part 2)] [C#] Visualisation in Console using ASCII
-
A note from our sponsor - InfluxDB
www.influxdata.com | 28 Mar 2024
Index
What are some of the best open-source Cpp17 projects? This list will help you:
Project | Stars | |
---|---|---|
1 | modern-cpp-tutorial | 22,972 |
2 | modern-cpp-features | 18,667 |
3 | awesome-modern-cpp | 11,269 |
4 | Modern-CPP-Programming | 10,577 |
5 | Minetest | 9,973 |
6 | entt | 9,351 |
7 | doctest | 5,523 |
8 | flecs | 5,430 |
9 | PrismLauncher | 4,734 |
10 | R3nzSkin | 4,348 |
11 | Magic Enum C++ | 4,324 |
12 | sol2 | 3,860 |
13 | awesome-hpp | 3,133 |
14 | compile-time-regular-expressions | 3,122 |
15 | Elements C++ GUI library | 2,886 |
16 | xray-16 | 2,816 |
17 | Tendis | 2,796 |
18 | cppinsights | 2,677 |
19 | HPX | 2,405 |
20 | argparse | 2,292 |
21 | userver | 2,172 |
22 | nanobind | 1,987 |
23 | Nameof C++ | 1,919 |