An open API service indexing awesome lists of open source software.

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

    • CXXGraph - free C++(17) graph header-only library for representation and algorithms execution. [AGPL-3.0]
    • Graaf - A general-purpose lightweight C++20 graph library. [MIT] [website](https://bobluppes.github.io/graaf/)
  • 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/)
Sub Categories