awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
https://github.com/fffaraz/awesome-cpp
Last synced: 12 days ago
JSON representation
-
Database
- TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] [website](https://tiledb.io/)
- TinyORM - Modern C++ ORM library. [MIT] [website](https://www.tinyorm.org/)
- UnQLite - A self-contained, serverless, zero-configuration, transactional NoSQL engine. [BSD-2-Clause] [website](https://unqlite.symisc.net/)
- TigerBeetleDB C++ client (Community) - TigerBeetle is a financial accounting database designed for mission critical safety and performance to power the future of financial services. [BSL-1.0]
- Trilogy - a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding. [MIT]
- UStore - Multi-Modal database for BLOBs, JSON, and graphs. [Apache2]
- Velox - A C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems. [Apache-2.0] [website](https://velox-lib.io/)
- LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
- Kvrocks - A distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol. [Apache2]
- Ladybug - an embedded graph database built for query speed and scalability. [MIT] [website](https://ladybugdb.com/)
- constexpr-sql - A compile-time SQL query parser and executor in C++17. [MIT]
- NuDB - A fast, append-only key/value store for SSD drives. [Boost]
- sqlpp23 - A type safe SQL library for C++. [BSD-2-Clause]
-
Data visualization
- gplot++ - Cross-platform header-only C++ plotting library that interfaces with Gnuplot. [MIT]
- matplotplusplus - C++ Graphics Library for Data Visualization. [MIT] [website](https://alandefreitas.github.io/matplotplusplus/)
- mathplot - C++ header-only graphing and data visualization with modern OpenGL. [Apache-2.0] [website](https://sebsjames.github.io/mathplot/)
- Plotly++ - A C++ interface to the Plotly.js figure spec, for creating interactive data visualizations. [MIT]
- matplotlib-cpp - A C++ wrapper around the matplotlib Python plotting library. [MIT]
-
Debug
- CUTE - C++ Unit Testing Easier. [LGPL3]
- CMocka - unit testing framework for C with support for mock objects. [Apache2]
- CppUnit - C++ port of JUnit. [LGPL2]
- CTest - The CMake test driver program. [BSD]
- Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks.
- Google Mock - A library for writing and using C++ mock classes. [BSD]
- Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects.
- Bencher - A suite of continuous benchmarking tools designed to catch performance regressions in CI. [MIT]/[Apache2]
- backward-cpp - A beautiful stack trace pretty printer for C++. [MIT]
- benchmark - Google provided small microbenchmark support library. [Apache2]
- Boost.Test - Boost Test Library. [Boost] [website](https://boost.org/libs/test)
- check - Check is a unit testing framework for C. [LGPL-2.1] [website](https://libcheck.github.io/check/)
- Catch2 - A modern, C++-native, test framework for unit-tests, TDD and BDD. [Boost]
- Celero - C++ Benchmarking Framework. [Apache2]
- cpp-dump - A C++ library for debugging purposes that can print any variable, even user-defined types. [MIT]
- CppUTest - Unit testing and mocking framework for C/C++. [BSD-3-clause]
- CppBenchmark - Performance benchmark framework for C++ with nanoseconds measure precision. [MIT]
- Cpptrace - A simple, portable, and self-contained C++ stacktrace library supporting C++11 and greater. [MIT]
- CrashCatch - Single-header crash reporting for C++ that logs stack traces and creates `.dmp` and `.txt` crash dumps. [MIT] [website](https://keithpotz.github.io/CrashCatch)
- dbg-macro - A dbg(…) macro for C++. [MIT]
- DebugViewPP - Debug logging viewer. [Boost]
- FakeIt - Simple mocking framework for C++. [MIT]
- fff - A micro-framework for creating fake C functions. [MIT]
- Google Test - Google C++ Testing Framework. [BSD]
- Hippomocks - Single-header mocking framework. [LGPL-2.1]
- IceCream-Cpp - Never use cout/printf to debug again [MIT]
- ig-debugheap - Multiplatform debug heap useful for tracking down memory errors. [BSD]
- libassert - The most over-engineered C++ assertion library. [MIT]
- libtap - Write tests in C. [GPL2]
- microprofile - Profiler with web-view for multiple platforms. [Unlicense]
- MinUnit - A minimal unit testing framework for C self-contained in a single header file. [MIT]
- nanobench - Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. [MIT] [website](https://nanobench.ankerl.com)
- Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] [website](http://www.plflib.org/nanotimer.htm)
- Nonius - A C++ micro-benchmarking framework. [CC]
- Remotery - Single C File Profiler with Web Viewer. [Apache2]
- Touca - Open-source regression testing system that you can self-host. [Apache2] [website](https://touca.io/)
- UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]
- Unity - Simple Unit Testing for C. [MIT]
- utest.h - Single header unit testing framework for C and C++. [Unlicense]
- utl::profiler - Singe-header profiler for C++17. [MIT]
- VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
- Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks.
- CppUnit - C++ port of JUnit. [LGPL2]
- snitch - Lightweight C++20 testing framework. [Boost]
- μt - C++20 single header/single module, macro-free μ(micro)/Unit Testing Framework. [Boost]
- Attest - Cross-platform, heap-free C test framework with parameterized and lifecycle-aware tests and assertions with ad-hoc formatted messages. [MIT]
- MTuner - A C/C++ memory profiler and memory leak finder for Windows, PlayStation, and other platforms. [BSD-2-Clause]
- heaptrack - A heap memory profiler for Linux. [LGPL-2.1]
- doctest - The lightest feature rich C++ single header testing framework. [MIT]
- Google Mock - A library for writing and using C++ mock classes. [BSD]
- VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
-
Debugger
- Comparison of debuggers - A list of Debuggers from Wikipedia.
- GDB - GNU Debugger.
- Metashell - An interactive template metaprogramming shell which includes the MDB metadebugger.
- x64dbg - An open-source x64/x32 debugger for windows.
- Valgrind - A tool for memory debugging, memory leak detection, and profiling.
-
Documentation
- Doxide - Modern documentation for modern C++, configure with YAML, output Markdown. [Apache 2.0] [website](https://doxide.org)
- doxygen - The de facto standard tool for generating documentation from annotated C++ sources. [GPL2] [website](https://www.doxygen.org)
- doxyrest - A compiler from Doxygen XML to reStructuredText for Sphinx. [MIT]
- hdoc - The modern documentation tool for C++. [AGPL/Proprietary] [website](https://hdoc.io)
- Natural Docs - Natural Docs is an open source documentation generator for multiple programming languages. [AGPL/Proprietary] [website](https://www.naturaldocs.org)
- Sphinx - Sphinx makes it easy to create intelligent and beautiful documentation. [BSD-2-Clause] [website](https://www.sphinx-doc.org)
-
DSP
- DSPFilters - A collection of useful C++ classes for digital signal processing. [MIT]
- iir1 - IIR Realtime C++ filter library. [MIT]
- kissfft - A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid. [BSD-3-Clause]
- pocketfft - FFT implementation based on FFTPack, but with several improvements. [BSD-3-Clause]
- wavelib - C implementation of 1D and 2D wavelet transforms. [BSD-3-Clause]
- fCWT - The fast Continuous Wavelet Transform (fCWT) is a library for fast calculation of CWT. [Apache-2.0]
-
Font
- FreeType - FreeType is a freely available software library to render fonts. [FTL & GPLv2]
- Fontconfig - Font configuration and customization library. [MIT] [website](https://www.freedesktop.org/wiki/Software/fontconfig/)
- otfcc - A C library and utility used for parsing and writing OpenType font files. [Apache-2.0]
- harfbuzz - A text shaping engine. [Old MIT]
- libschrift - A lightweight TrueType font rendering library. [ISC]
- SheenBidi - A sophisticated implementation of Unicode Bidirectional Algorithm. [Apache-2.0]
-
Frameworks
- Apache C++ Standard Library - STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [retired] [Apache2]
- APR - Apache Portable Runtime. Another library of cross-platform utility functions. [Apache2]
- ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
- Boost - A large collection of generic C++ libraries. [Boost] [website](https://www.boost.org)
- Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
- Cxxomfort - A small, header-only library that backports various facilities from more recent C++ Standards to C++03 and later. [MIT]
- GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
- Loki - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
- Qt - A cross-platform application and UI framework. [GPL/LGPL/Proprietary] [website](https://www.qt.io)
- Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
- ROOT - A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
- STLport - An exemplary version of STL. [Free]
- STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
- Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
- Windows Template Library - A C++ library for developing Windows applications and UI components. [Public]
- abseil-cpp - Abseil C++ Common Libraries. [Apache2]
- ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
- AUI - Declarative UI toolkit for C++20. [MPL2]
- BDE - The BDE Development Environment from Bloomberg Labs. [Apache2]
- C++ Workflow - C++ Parallel Computing and Asynchronous Networking Engine. [Apache2]
- CGraph - A cross-platform DAG framework based on C++ without any 3rd-party. [MIT]
- Coost - A tiny boost library in C++11. [MIT]
- Dlib - A toolkit for making real world machine learning and data analysis applications in C++. [Boost] [website](http://dlib.net/)
- EASTL - Electronic Arts Standard Template Library. [BSD]
- ETL - Embedded Template Library. [MIT]
- ffead-cpp - Framework for Enterprise Application Development. [Apache2]
- Folly - An open-source C++ library developed and used at Facebook. [Apache2]
- FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT]
- itlib - A collection of std-like single-header C++ libraries [MIT]
- JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Proprietary] [website](http://www.juce.com/)
- Kigs framework - A free and open source C++ modular multi-purpose cross platform RAD framework. [MIT] [website](https://kigs-framework.org/)
- libPhenom - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
- LibSourcey - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
- LibU - A multiplatform utility library written in C. [BSD]
- libxutils - Simple and yet powerful cross-platform C library providing data structures, algorithms and much more. [MIT]
- MiLi - Minimal headers-only C++ Library. [Boost]
- OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] [website](http://www.openframeworks.cc/)
- PhotonLibOS - A comprehensive C++ framework featuring efficient user-space threading (coroutine with work-stealing), I/O, networking, RPC, HTTP, etc., and used extensively in Alibaba. It is compatible with C++ 14/17/20/23, Linux, MacOS, x86-64, ARM64, gcc and clang. [Apache2] [website](https://photonlibos.github.io/)
- rpp - Minimal Rust-inspired C++20 STL replacement. [MIT]
- SaneCppLibraries - a set of C++ platform abstraction libraries for macOS, Windows and Linux. [MIT] [website](https://pagghiu.github.io/SaneCppLibraries/)
- Seastar - An advanced, open-source C++ framework for high-performance server applications on modern hardware. [Apache-2.0 License] [seastar.io](http://seastar.io/)
- Siv3D - Siv3D (OpenSiv3D) is a C++20 framework for creative coding (2D/3D games, media art, visualizers, and simulators). [MIT] [website](https://siv3d.github.io/)
- STLport - An exemplary version of STL. [Free]
- tbox - A glib-like multi-platform c library. [Apache2] [website](http://tboox.org/)
- xtd - Modern C++20 framework to create console (CLI), forms (GUI) and unit tests (xUnit) applications on Windows, macOS, Linux, iOS, Android, FreeBSD and Haiku. [MIT]
- Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes [Yomm11](https://github.com/jll63/yomm11) [Boost]
- Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
- Cxxomfort - A small, header-only library that backports various facilities from more recent C++ Standards to C++03 and later. [MIT]
- Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
- sfl library - a header-only C++11 library that provides several new or lesser-known containers, some of which can be used in C++20 constant expressions. [zlib]
- STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
- WUI - WUI (Window User Interface Library) is a cross-platform library for creating graphical user interfaces in C++17+ [Boost][website](https://libwui.org)
- Loki - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
-
Game Engine
- delta3d - A robust simulation platform. [LGPL2]
- Oxygine - A cross-platform 2D C++ game engine. [MIT]
- Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
- Axmol Engine - A cross-platform game engine for desktop, mobile, and XBOX (UWP), derived from Cocos2d-x-4.0. [MIT] [website](https://axmol.dev/)
- Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
- Corange - A game engine written in pure C, SDL and OpenGL. [BSD]
- crown - Crown is a general purpose data-driven game engine, written from scratch in orthodox C++ with a minimalistic and data-oriented design philosophy in mind. [MIT]
- EnTT - Gaming meets modern C++. [MIT]
- GamePlay - A cross-platform native C++ game framework for creating 2D/3D mobile and desktop games. [Apache2]
- Godot - A fully featured, open source, MIT licensed, game engine. [MIT]
- Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
- Halley - A lightweight game engine written in C++14 with a "true" entity-component system. [Apache 2.0]
- Hazel Game Engine - Hazel is primarily an early-stage interactive application and rendering engine for Windows. [Apache-2.0 license]
- IX-Ray Platform - Fork of X-Ray 1.6 engine that aims to improve gaming experience and simplify development of modifications. [Modified MIT/non-commercial only]
- KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] [website](http://www.klayge.org/)
- nCine - A cross-platform 2D game engine with an emphasis on performance, written in C++11 and optionally scriptable in Lua. [MIT] [website](https://ncine.github.io/)
- o3de - An open-source, real-time, multi-platform 3D engine based on Amazon Lumberyard. [Apache2] [website](https://o3de.org/)
- OpenXRay - a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only]
- Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] [website](https://www.panda3d.org/)
- PixelGameEngine - The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. [OLC3]
- Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] [website](http://polycode.org/)
- quakeforge - Actively maintained branch of the original Quake engine code with 20+ years of development. [GPL-2.0]
- raylib - A simple and easy-to-use library to enjoy videogames programming. [zlib/libpng] [website](http://www.raylib.com/)
- Spring - A powerful free cross-platform RTS game engine. [GPLv2/GPLv3] [website](https://springrts.com/)
- Torque2D - An open-source and cross-platform C++ engine built for 2D game development. [MIT] [website](https://torque3d.org/torque2d)
- Torque3D - An open-source C++ engine built for 3D game development. [MIT] [website](https://torque3d.org/torque3d)
- toy engine - toy is a thin and modular c++ game engine and offers simple expressive c++ idioms to design full featured 2D or 3D games in fast iterations.
- ezEngine - Is a free, open-source game engine written in C++. Its philosophy is to be modular and flexible, such that it can be adapted to many different use cases. [MIT] [website](https://ezengine.net/)
-
Graph
-
Graphics
- Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
- Ogre 3D - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT] [website](https://www.ogre3d.org)
- OpenVDB - Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
- assimp - Open Asset Import Library (assimp) is a cross-platform 3D model import library which aims to provide a common API for different 3D asset file formats. [BSD-3-Clause] [website](http://www.assimp.org)
- bgfx - A cross-platform rendering library. [BSD]
- Blend2D - 2D vector graphics engine powered by a JIT compiler. [Zlib] [website](https://blend2d.com/)
- C-Turtle - A C++11 header-only turtle graphics library acting as a CImg wrapper. [MIT]
- Diligent Engine - A modern cross-platform low-level 3D graphics library. [Apache2]
- DirectXTK - A collection of helper classes for writing DirectX 11.x code in C++. [MIT]
- GLFW - A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
- GLFWPP - A thin modern C++17 header-only wrapper for GLFW. [MIT]
- Harfang 3D
- herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/)
- Horde3D - A small 3D rendering and animation engine. [EPL]
- Ion - A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] [website](https://google.github.io/ion/)
- libigl - Simple C++ geometry processing library. [MPL2]
- LLGL - Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs. [BSD-3-Clause]
- LunaSVG - a standalone SVG rendering library in C++. [MIT]
- magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] [website](http://magnum.graphics)
- micro-gl - Realtime, Embeddable, Headers Only C++11 CPU vector graphics. no STD lib, no FPU and no GPU required. [CUSTOM] [website](https://micro-gl.github.io/docs/microgl)
- NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
- OpenSubdiv - Pixar's library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
- Partio - Library for wrangling particle data, with support for most common file formats. [Modified BSD]
- Skia - A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] [website](https://skia.org/)
- ThorVG - a platform-independent portable library that allows for drawing vector-based scenes and animations, including SVG and Lottie. [MIT] [website](https://www.thorvg.org/)
Programming Languages
Categories
Miscellaneous
107
Networking
70
Math
61
Websites
61
Frameworks
53
Debug
51
Concurrency
47
Database
44
JSON
43
Image Processing
41
Compression
37
Scripting
35
GUI
35
CLI
35
Graphics
32
Cryptography
31
Articles
31
Containers
28
Game Engine
28
Build Systems
27
Audio
27
Machine Learning
25
Other Awesome Projects
24
Logging
22
Serialization
21
Integrated Development Environment
20
Web Application Framework
20
Inter-process communication
19
Reflection
19
Artificial Intelligence
18
Physics
17
Online Compiler
17
Static Code Analysis
16
Memory Allocation
15
XML
15
Regular Expression
14
Compiler
14
Weblogs
13
Videos
13
PDF
13
Configuration
12
Multimedia
12
CSV
10
Asynchronous Event Loop
10
Robotics
10
Video
9
Biology
8
Scientific Computing
8
Chemistry
7
Internationalization
7
Yaml
7
Office Open XML
7
Coding Style
7
Font
6
DSP
6
Standard Libraries
6
Coding Style Tools
6
Documentation
6
Coding Standards
5
Debugger
5
Data visualization
5
Sorting
4
Talks
4
BitTorrent
4
Serial Port
3
Virtual Machines
3
Books
3
API Design
2
Graph
2
Podcasts
2
Sub Categories
Keywords
cpp
193
c-plus-plus
109
c
89
cpp17
64
header-only
62
cross-platform
42
cpp11
38
json
37
cplusplus
36
cpp20
35
library
34
python
31
cpp14
30
linux
24
windows
23
machine-learning
22
serialization
22
simd
21
opengl
20
cmake
20
http
18
game-engine
18
cpp-library
18
parser
17
modern-cpp
17
gamedev
17
game-development
17
reflection
16
deep-learning
14
embedded
14
http-server
14
graphics
13
audio
13
javascript
12
java
12
clang
12
logging
11
database
11
performance
11
cuda
11
c-plus-plus-11
11
no-dependencies
11
scientific-computing
11
high-performance
11
data-structures
11
csv
10
networking
10
compression
10
neon
10
gui
10