10 C++ open source projects welcoming contributions
When you contribute to an open source project, you’re not simply fixing a bug. Instead, you are giving something valuable to a community of developers. This can give you an incredible feeling of belonging and purpose. Plus, there is probably no better way to learn and grow as a developer than to contribute to open source projects.
However, we know it’s not an easy task to choose from so many different options available out there! That’s why we’ve listed 10 C++ open source projects on GitHub that you can contribute to. Let’s dive in!
C++ open source projects
C++ is a versatile and powerful general-purpose programming language. It is highly flexible and used to create some of the fastest high-performance software, from operating systems to games and everything in between. It is the predominant programming in game development.
Since it’s a powerful and continuously-evolving programming language, you can learn a lot by engaging in C++ open source projects. However, before contributing to any of the projects we list here, first learn good practices on how to contribute to open source.
💡 Check out this project if you want a curated list of C++ frameworks, libraries, and resources.
GoogleTest is Google’s C++ testing and mocking framework. If you write C++ code, GoogleTest can help you since it supports any kind of tests, not just unit tests. The features include test discovery, death tests, fatal and non-fatal failures, value- and type-parametrized tests, and XML test report generation.
ClickHouse is an open-source analytics database management system for big data. It allows for the generation of data reports in real-time. It’s incredibly fast, processing tens of gigabytes of data per server per second. Plus, it is hardware efficient, supports async replications, and you can deploy it across multiple data centers.
Dlib is a modern C++ toolkit for solving real-world problems using machine learning algorithms and data analysis applications. This open source project is used in various domains, including robotics, embedded devices, mobile phones, and large high-performance computing environments.
SFML is an acronym for Simple and Fast Multimedia Library. As the name suggests, this open source project is a simple, fast, cross-platform, and object-oriented multimedia API. It comprises five modules: system, window, graphics, audio, and network, to ease the development of games and multimedia applications.
If you like movies and TV shows, you’ve probably already heard about Kodi (XBMC). This open source project gained popularity due to its beautifully designed interface and powerful skinning engine. It works as an entertainment center and home theater and is available for multiple operating systems.
Beast is a C++ header-only library serving as a foundation for writing interoperable networking libraries by providing low-level HTTP/1, WebSocket, and networking protocol vocabulary types and algorithms using the consistent asynchronous model of Boost.Asio.
JSON for modern C++
JSON for modern C++ is an open source project with an intuitive syntax and trivial integration that allows you to read JSON from a file quickly, create JSON objects from JSON literals, and treat JSON as a first-class data type, among many others!
RapidJSON is a JSON parser for C++ with both SAX and DOM style API. This open source project might seem small initially, but it has everything you need. Plus, it’s really fast, and you can compare the performance of this entire framework to a strlen() function. It’s also memory- and Unicode-friendly.
IncludeOS is a minimal unikernel operating system that allows you to run apps in the cloud without an OS. Instead, it adds the operating system’s functionality to your application, allowing you to create resource-efficient virtual machines.
SerenityOS is an interesting open source project if you’re a fan of Unix-like operating systems. It has an old-school user interface from the 1990s, so it’s great if you feel nostalgic. But don’t get deceived by its look because this operating system has contemporary power-user accessibility.