Your first time on this page? Allow me to give some explanations.
Awesome C/C++
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.
Thank you fffaraz & contributors
View Topic on GitHub:
fffaraz/awesome-cpp
Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.
Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.
Standard Libraries
A collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
The Standard Template Library (STL).
A specification of a C standard library for POSIX systems.
The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
Frameworks
Abseil Common Libraries (C++)
Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.
C++ Programming Paradigm with Asynchronous Networking
A toolkit for making real world machine learning and data analysis applications in C++
EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
Embedded Template Library
Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends
An open-source C++ library developed and used at Facebook.
Functional Programming Library for C++. Write concise and readable C++ code.
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.
Kigs framework is a C++ modular multipurpose cross platform framework.
An eventing framework for building high performance and high scalability systems in C.
C++14 evented IO libraries for high performance networking and media based applications
LibU is a multiplatform utility library written in C, with APIs for handling memory allocation, networking and URI parsing, string manipulation, debugging, and logging in a very compact way, plus many other miscellaneous tasks
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
🎁 A glib-like multi-platform c library
Fast, orthogonal, open multi-methods. Supersedes yomm11.
STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [retired] [Apache2]
Apache Portable Runtime; another library of cross-platform utility functions. Apache 2.0
Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
A community-developed, free and open source library for professional-quality creative coding. [BSD]
A small, header-only library that backports various facilities from more recent C++ Standards to C++03 and later. [MIT]
Library of utility functions and structures, designed to be portable, efficient and powerful. GNU LGPL2.1
A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
zap: - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
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]
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]
A C++ cross-platform rapid application development framework. [BSD]
A C++ library for developing Windows applications and UI components. [Public]
Artificial Intelligence
A GPU (CUDA) based Artificial Neural Network library
Behavior Tree Starter Kit
Header-only library for using Keras models in C++.
simple neural network library in ANSI C
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Navigation-mesh Toolset for Games
An Open Source Machine Learning Framework for Everyone
oneAPI Deep Neural Network Library (oneDNN)
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit
header only, dependency-free deep learning framework in C++14
Distributed machine learning platform
kaldi-asr/kaldi is the official location of the Kaldi project.
A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
Asynchronous Event Loop
Asio C++ Library
An Open Source Implementation of the Actor Model in C++
Like libevent and libuv, libhv provides event-loop with non-blocking IO and timer, but simpler api and richer protocols.
Cross-platform asynchronous I/O
C++ promise/A+ library in Javascript style.
Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!
A cross-platform C++ library for network and low-level I/O programming. [Boost]
A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL]
Audio
A simple C++ library for reading and writing audio files.
A C library for reading and writing sound files containing sampled audio data..
C library for cross-platform real-time audio input and output
C++ Audio and Music DSP Library
Single file audio playback and capture library written in C.
SimplE Lossless Audio
Free, easy, portable audio engine for games
Easy and efficient audio synthesis in C++
Minimalistic MP3 decoder single header library
🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)
Facebook AI Research's Automatic Speech Recognition Toolkit
An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-commercial/Commercial]
Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
LAME is a high quality MPEG Audio Layer III (MP3) encoder. [LGPL]
PortAudio is a free, cross-platform, open-source, audio I/O library. [MIT]
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
Biology
C++ library and cmdline tools for parsing and manipulating VCF files
Structural variant detection and association testing
An open source C++ library for the computational simulation of mathematical models developed for physiology and biology. [BSD]
A C++ library for representing and analyzing population genetics data. [GPL]
Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause]
BitTorrent
BitTorrent DHT library
an efficient feature complete C++ bittorrent implementation
libTorrent BitTorrent library
uTorrent Transport Protocol library
Chemistry
The d-SEAMS C++ core engine
Public/backup repository of the GROMACS molecular simulation toolkit. Please do not mine the metadata blindly; we use https://gitlab.com/gromacs/gromacs for code review and issue tracking.
a unified framework for modeling chemically reactive systems
Public development project of the LAMMPS MD software package
CLI
Argh! A minimalist argument handler.
A simple header-only C++ argument parser library. Supposed to be flexible and powerful, and attempts to be compatible with the functionality of the Python standard argparse library (though not necessarily the API).
A simple to use, composable, command line parser for C++ 11 and beyond
A library for interactive command line interfaces in modern C++
CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
Lightweight C++ command line option parser
C++11 port of docopt
Activity Indicators for Modern C++
A small self-contained alternative to readline and libedit
A small self-contained alternative to readline and libedit that supports UTF-8 and Windows and is BSD licensed.
A simple to use, composable, command line parser for C++ 11 and beyond
PDCurses - a curses library for environments that don't fit the termcap/terminfo model.
A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed.
Table Maker for Modern C++
Library for writing text-based user interfaces
Small header only C++ library for writing multiplatform terminal applications
C++ Functional Terminal User Interface.
ImTui: Immediate Mode Text-based User Interface
A library to obtain program options via conventional methods such as command line and config file. [Boost]
A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
Compression
A C++ static library offering a clean and simple interface to the 7-zip DLLs.
Brotli compression format
New generation entropy codecs : Finite State Entropy and Huff0
Multi-format archive and compression library
Extremely Fast Compression algorithm
LZFSE compression library and command line tool
miniz: Single C source file zlib-replacement library, originally from code.google.com/p/miniz
Fork of the popular zip manipulation library found in the zlib distribution.
Small strings compression library
zlib replacement with optimizations for "next generation" systems.
Zstandard - Fast real-time compression algorithm
A library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem. [zlib]
Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
zap: - The default and general compression method of 7z format. [PublicDomain]
An extremely fast real-time lossless data compression library. [GPL]
Concurrency
The project alpaka has moved to https://github.com/alpaka-group/alpaka
ArrayFire: a general purpose GPU library.
Async++ concurrency framework for C++11
A C++ GPU Computing Library for OpenCL
Bolt is a C++ template library optimized for GPUs. Bolt provides high-performance library implementations for common algorithms such as scan, reduce, transform, and sort.
Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems developed in C99+.
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
A General-purpose Parallel and Heterogeneous Task Programming System
THIS REPOSITORY HAS MOVED TO github.com/nvidia/cub, WHICH IS AUTOMATICALLY MIRRORED HERE.
Thin C++-flavored wrappers for the CUDA Runtime API
The project alpaka has moved to https://github.com/alpaka-group/cupla
C++React: A reactive programming library for C++11.
A library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies.
The C++ Standard Library for Parallelism and Concurrency
A task scheduling framework designed for the needs of game developers.
Concurrent data structures in C++
Kokkos C++ Performance Portability Programming EcoSystem: The Programming Model - Parallel Execution and Memory Abstraction
A C++ library of Concurrent Data Structures
OpenCL based GPU accelerated SPH fluid simulation library
Structured concurrency in C
The libdispatch Project, (a.k.a. Grand Central Dispatch), for concurrency on multicore hardware
Go-style concurrency in C
A hybrid thread / fiber task scheduler written in C++ 11
Patterns and behaviors for GPU computing
Optimized primitives for collective multi-GPU communication
An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. With performance, quality, and stability proved by years in the production.
Powerful multi-threaded coroutine dispatcher and parallel execution engine
A fast single-producer, single-consumer lock-free queue for C++
stdgpu: Efficient STL-like Data Structures on the GPU
A header-only C++ library for task concurrency
VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
Tasks, executors, timers and C++20 coroutines to rule them all
The open standard for parallel programming of heterogeneous systems.
The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators [Apache2]
A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
Configuration
Simple .INI file parser in C, good for embedded systems
This is a header only C++ version of inih.
ini file parser
C/C++ library for processing configuration files
Small configuration file parser library for C.
Cross-platform C++ library providing a simple API to read and write INI-style configuration files
Header-only TOML config file parser and serializer for C++17 (and later!).
Containers
An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures. Provides higher-performance than std:: library containers for high-modification scenarios with unordered data.
Simple Useful Libraries: The C++17 header-only dynamic bitset
Template Library of Tree Data Structures in C++17
Various open addressing hashmap algorithms in C++
C++ implementation of a fast hash map and hash set using hopscotch hashing
A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support python and matlab.
🏅State-of-the-art learned data structure that enables fast lookup, predecessor, range searches and updates in arrays of billions of items using orders of magnitude less space than traditional indexes
A drop-in replacement for std::list with 293% faster insertion, 57% faster erasure, 17% faster iteration and 77% faster sorting on average. 20-24% speed increase in use-case testing.
A C++ data container replicating std::stack functionality but with better performance than standard library containers in a stack context.
ring-span lite - A C++yy-like ring_span type for C++98, C++11 and later in a single-file header-only library
Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20
C++ implementation of a fast hash map and hash set using robin hood hashing
A fast, memory efficient hash map for C++
A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
Cryptography
free C++ class library of cryptographic schemes
C++11 header-only message digest library
A modern, portable, easy to use crypto library.
A lightweight, secure, easy-to-use crypto library suitable for constrained environments.
LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
An open source, portable, easy to use, readable and flexible SSL library
TLS/SSL and crypto library
A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography & security. (project was renamed, libchaos is main)
s2n : an implementation of the TLS/SSL protocols
Library and command line tool to detect SHA-1 collision in a file
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
Small portable AES128/192/256 in C
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD]
A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
CSV
Fast CSV parser and writer for Modern C++
Compile-time CSV parser in C++17
fast-cpp-csv-parser
A modern C++ library for reading, writing, and analyzing CSV (and similar) files.
Database
C++ ORM for SQLite
Minimalistic C client for Redis >= 1.2
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
C++11 wrapper for the LMDB embedded B+ tree database library.
A high-performance MongoDB driver for C
C++ Driver for MongoDB
ARCHIVED - libbson has moved to https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson
A small C++ wrapper for the native C ODBC API | Requires C++14 since v2.12
A C++ Redis client
A library that provides an embeddable, persistent key-value store for fast storage.
A high performance, shared memory, lock free, cross platform, single file, no dependencies, C++11 key-value store
Official repository of the SOCI - The C++ Database Access Library
SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
The C++14 wrapper around sqlite library
❤️ SQLite ORM light header only library for modern C++
A type safe SQL template library for C++
The Universal Storage Engine
An Embedded NoSQL, Transactional Database Engine
An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
An embedded "typed" key/value store with a built-in query interface. [GPLv3]
Debug
A beautiful stack trace pretty printer for C++
A microbenchmark support library
A unit testing framework for C
The fastest feature-rich C++11/14/17/20 single-header testing framework
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
C++ Benchmark Authoring Library/Framework
CppUTest unit testing and mocking framework for C/C++
A dbg(…) macro for C++
A testing micro framework for creating function test doubles
Googletest - Google Testing and Mocking Framework
Debug heap useful for tracking down memory errors.
Write tests in C
microprofile is an embeddable profiler
Minimal unit testing framework for C
A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking. The implementation is as limited and as simple as possible to create the lowest amount of overhead.
A C++ micro-benchmarking framework
Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer
A lightweight unit testing framework for C++
Simple Unit Testing for C
🧪 single header unit testing framework for C and C++
UT: C++20 μ(micro)/Unit Testing Framework
A tool for resource leak detection, including memory, GDI and handle leaks.
Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
Font
Optimized OpenType builder and inspector.
Font configuration and customization library. [MIT] website
FreeType is a freely available software library to render fonts. [FTL & GPLv2]
Game Engine
A high speed C++17 Vulkan game engine
Pure C Game Engine
The flexible game engine.
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Open-source, cross-platform, C++ game engine for creating 2D/3D games.
Godot Engine – Multi-platform 2D and 3D game engine
Grit Game Engine
A lightweight game engine written in modern C++
KlayGE is a cross-platform open source game engine with plugin-based architecture.
A cross-platform 2D game engine
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.
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects
Polycode is a cross-platform framework for creative code.
A simple and easy-to-use library to enjoy videogames programming
A powerful free cross-platform RTS game engine
MIT Licensed Open Source version of Torque 2D game engine from GarageGames
MIT Licensed Open Source version of Torque 3D from GarageGames
the thin c++ game engine
A cross-platform library mainly aimed for video games and multimedia programming. [zlib]
A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
GUI
Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io
Elements C++ GUI library
GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Advanced 2D Plotting for Dear ImGui
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL
A single-header ANSI C immediate mode cross-platform GUI library
RmlUi - The HTML/CSS User Interface library evolved
A library for creating native cross-platform GUI apps
Multi-platform toolkit for building graphical user interfaces. [MIT]
Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of modern desktop applications. [Free/Commercial]
A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]
Graphics
The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
2D Vector Graphics Engine Powered by a JIT Compiler
Modern C++14 library for the development of real-time graphical applications
Port of Python's Turtle to C++
A modern cross-platform low-level graphics library and rendering framework
The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++
A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
A basic 3D scene implemented with various engines, frameworks or APIs.
Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
Ion
Simple C++ geometry processing library.
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
Lightweight and modular C++11 graphics middleware for games and data visualization
Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
An Open-Source subdivision surface library.
C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC. See the discussion group @ http://groups.google.com/group/partio-discuss
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
ANSI C library for NURBS, B-Splines, and Bézier curves with interfaces for C++, C#, D, Go, Java, Lua, Octave, PHP, Python, R, and Ruby.
Cross-platform 2D and 3D game engine.
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
A high performance realtime 3D engine written in C++. [zlib]
zap: - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT]
An open source high performance 3D graphics toolkit. [OSGPL]
Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
A framework for 3D rendering and game development for Python and C++. [BSD]
Image Processing
A toolkit for making real world machine learning and data analysis applications in C++
GD Graphics Library
Leptonica is an open source library containing software that is broadly useful for image processing and image analysis applications. The official github repository for Leptonica is: danbloomberg/leptonica. See leptonica.org for more documentation and recent releases.
An open source library for face detection in images. The face detection speed can reach 1000FPS.
Main libjpeg-turbo repository
A fast image processing library with low memory needs.
Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.
C++ image processing and machine learning library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.
stb single-file public domain libraries for C/C++
Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG.
Video++, a C++14 high performance video and image processing library.
a generic C++ library for image analysis
An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPL2 or GPL3]
An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
ImageMagick program interfaces for C++. [Apache2]
Cross-platform library for high dynamic range imaging. [Modified BSDF]
Open-source, freely available software system for 3D computer graphics, image processing and visualization. [BSD]
Internationalization
📚 single header utf8 string functions for C and C++
a clean C library for processing UTF-8 Unicode data
International Components for Unicode; a library for Unicode support. ICU license
An encoding conversion library between different character encodings. [GPL]
Inter-process communication
Cap'n Proto serialization/RPC system - core tools and C++ library
eCAL - enhanced Communication Abstraction Layer
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more.
C++ framework for json-rpc (json remote procedure call)
nanomsg library
nanomsg-next-generation -- light-weight brokerless messaging
rpclib is a modern C++ msgpack-RPC server and client library
a simple RPC wrapper generator to C/C++ functions
Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developed by Facebook. [Apache2]
Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
JSON
Ultralightweight JSON parser in ANSI C