Awesome C - C++
Awesome C - C++
Awesome C - C++
com/fffaraz/awesome-cpp
Star 28,687
Awesome C++
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
Awesome C++
Standard Libraries
Frameworks
Artificial Intelligence
Audio
Biology
BitTorrent
Chemistry
CLI
Compression
Concurrency
Configuration
Containers
Cryptography
CSV
Database
Debug
Font
Game Engine
GUI
Graphics
Image Processing
Internationalization
Inter-process communication
JSON
Logging
Machine Learning
Math
Memory Allocation
Multimedia
Networking
Physics
Reflection
Regular Expression
Robotics
Scientific Computing
Scripting
Serialization
Sorting
Video
Virtual Machines
XML
Miscellaneous
Software
Compiler
Online Compiler
Debugger
Build Systems
Resources
API Design
Articles
Books
Coding Style
Podcasts
Talks
Videos
Websites
Contributing
Standard Libraries
C++ Standard Library - including STL Containers, STL Algorithm, STL Functional, etc.
C++ Standard Library - A collection of classes and functions, which are written in the core language and part of the C++ ISO
Standard itself.
ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. website
The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
Frameworks
C++ generic frameworks and libraries.
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]
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]
Dlib :zap: - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques.
[Boost] website
FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT]
GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest:
GPL2/GPL3/Commercial] website
Kigs framework - A free and open source C++ modular multi-purpose cross platform RAD framework. [MIT] website
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]
OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] website
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]
STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
Windows Template Library - A C++ library for developing Windows applications and UI components. [Public]
Artificial Intelligence
ANNetGPGPU - A GPU (CUDA) based Artificial Neural Network library. [LGPL]
Evolving Objects - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic
optimization algorithms insanely fast. [LGPL]
MXNet - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler;
for Python, R, Julia, Scala, Go, Javascript and more website
PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration. website
Recast/Detour - (3D) Navigation mesh generator and pathfinder, mostly for games. [zlib]
TensorFlow - An open source software library for numerical computation using data flow graphs [Apache]
CNTK - Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit. [Boost]
Veles - Distributed platform for rapid Deep learning application development. [Apache]
Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost]
C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] website
libev - A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and
bugs. [BSD and GPL]
Audio
Audio, Sound, Music, Digitized Voice Libraries
AudioFile - A simple C++ library for reading and writing audio files. [GPL3]
FMOD - An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-
commercial/Commercial]
KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
LAME - LAME is a high quality MPEG Audio Layer III (MP3) encoder. [LGPL]
libsndfile - C library with C++ wrapper for reading and writing files containing sampled sound through one standard library
interface. [LGPL-2.1] website
libsoundio - C library for cross-platform real-time audio input and output. [MIT] website
Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
minimp3 - Public domain, header-only MP3 decoder with clean-room implementation. [CC0]
Verovio - Verovio is a fast and lightweight music notation engraving library. [LGPL] website
Wav2Letter++ - Public domain, a fast open source speech processing toolkit written entirely in C++ and uses the ArrayFire tensor
library and the flashlight machine learning library for maximum efficiency [BSD]
Biology
Bioinformatics, Genomics, Biotech
Chaste - An open source C++ library for the computational simulation of mathematical models developed for physiology and
biology. [BSD]
libsequence - A C++ library for representing and analyzing population genetics data. [GPL]
SeqAn - Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause]
Vcflib - A C++ library for parsing and manipulating VCF files. [MIT]
Wham - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]
BitTorrent
jech/dht - BitTorrent DHT library in C. [MIT]
libtorrent (a.k.a. libtorrent-rasterbar) - An efficient feature complete C++ bittorrent implementation. [BSD]
Chemistry
Chemistry, Geochemistry, Biochemistry
d-SEAMS - A molecular dynamics trajectory analysis engine in C++ and Lua with Nix. It is an acronym for Deferred Structural
Elucidation Analysis for Molecular Simulations. [GPL] website
Reaktoro - A computational framework in C++ and Python for modeling chemically reactive systems. [LGPL] website
LAMMPS - A classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale
Atomic/Molecular Massively Parallel Simulator. [GPL] website
CLI
Console/Terminal User Interface, Command Line Interface
Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file.
[Boost]
Clara - A simple to use, composable, command line parser for C++ 11 and beyond. [BSL-1.0]
cli - A cross-platform header only C++14 library for interactive command line interfaces (Cisco style). [Boost]
CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD]
linenoise-ng - A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8
characters. [BSD]
Lyra - A simple to use, composable, command line parser for C++ 11 and beyond. [Boost]
PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints, works on Unix and Windows. [BSD]
TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
Compression
Compression and Archiving Libraries
bit7z - A C++ static library offering a clean and simple interface to the 7-zip DLLs. [GPLv2]
FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0.
PhysicsFS - 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]
KArchive - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent
compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
LZFSE - LZFSE compression library and command line tool. Developed by Apple.
LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
LZMA :zap: - The default and general compression method of 7z format. [PublicDomain]
miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing.
[MIT]
Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
zlib-ng - zlib for the "next generation" systems. Drop-In replacement with some serious optimizations. [zlib]
Concurrency
Concurrency and Multithreading
Async++ - A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard
proposal. [MIT]
ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
concurrentqueue - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
Cpp-Taskflow - Fast C++ Parallel Programming with Task Dependencies. [MIT]
CUB - CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming mode. [New BSD]
cuda-api-wrappers - Lightweight, Modern-C++ wrappers for the CUDA GPU programming runtime API. [BSD]
cupla - C++ API to run CUDA/C++ on OpenMP, Threads, TBB, ... through Alpaka. [LGPLv3+]
FiberTaskingLib - Task-based multi-threading library that supports task graphs with arbitrary dependencies. [Apache]
HPX - A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
Intel Games Task Scheduler - A task scheduling framework designed for the needs of game developers. [MIT]
Intel Parallel STL - Intel® implementation of C++17 STL for C++11 and above. [Apache2]
Kokkos - A performance portable programming model for parallel execution and memory abstraction. [BSD]
Libclsph - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
libdispatch - Grand Central Dispatch (GCD), developed by Apple Inc., is a task parallelism technology based on the thread pool
pattern. libdispatch is a library that provides the implementation of GCD's services. [Apache-2.0] website
marl - Marl is a hybrid thread / fiber task scheduler written in C++ 11. [Apache-2.0]
moderngpu - moderngpu is a productivity library for general-purpose computing on GPUs. It is a header-only C++ library written
for CUDA. The unique value of the library is in its accelerated primitives for solving irregularly parallel problems. [FreeBSD &
Copyright, Sean Baxter]
NCCL - Optimized primitives for collective multi-GPU communication. [BSD]
SObjectizer - An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. [BSD-3-Clause]
RaftLib - The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators [Apache2]
Thrust - A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
STAPL - A C++ parallel programming framework designed to work on both shared and distributed memory parallel computers.
[BSD]
Configuration
Configuration files, INI files
inih - Simple .INI file parser in C, good for embedded systems. [BSD-3-Clause]
libconfig - C, C++ library for processing structured configuration files. [LGPL-2.1] website
libconfuse - Small configuration file parser library for C. [ISC]
simpleini - Cross-platform C++ library providing a simple API to read and write INI-style configuration files. [MIT]
toml++ - Header-only TOML parser and serializer for C++17 and later. [MIT] website
Containers
C++ B-tree - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
Colony - An unordered "bag"-type container which outperforms std containers in high-modification scenarios while maintaining
permanent pointers to non-erased elements regardless of insertion/erasure. [zLib] website
Forest - Template library implementing an AVL, a Binary Search, a KD and a Quad Tree. [MIT]
Hopscotch map - A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT]
LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and
MATLAB. [GPL]
PGM-index - A 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. [Apache2] website
plf::list - A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant
performance gains. [zLib] website
plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a
stack context. [zLib] website
ringspan lite - A simplified implementation of Arthur O'Dwyer's ringspan implementation ie. a circular buffer view. [MIT]
robin-hood-hashing - Fast & memory efficient hashtable based on robin hood hashing for C++14. [MIT]
robin-map - Fast hash map and hash set using robin hood hashing. [MIT]
sparsepp - A fast, memory efficient hash map for C++. [BSD 3-clause]
Cryptography
Cryptography and Encryption Libraries
Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and
processors. [BSD]
GnuTLS - A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
Libgcrypt - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
LibreSSL - A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
libsodium - P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
libhydrogen - A lightweight, secure, easy-to-use crypto library suitable for constrained environments. [ISC]
mbedTLS - An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2]
website
OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] website
retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
s2n - An implementation of the TLS/SSL protocols. [Apache]
sha1collisiondetection - Library and command line tool to detect SHA-1 collision in a file. [MIT]
Tink - A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and
hard(er) to misuse. [Apache-2.0]
Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward
secrecy, for mobile and server platforms. [Apache2]
CSV
Libraries for parsing Comma Separated Value (CSV) files
Fast C++ CSV Parser - Small, easy-to-use and fast header-only library for reading CSV files. [BSD-3-Clause]
Vince's CSV Parser - A fast, self-contained, streaming C++17 CSV parser with optional type-casting and statistics. [MIT]
Database
Database Libraries, SQL Servers, ODBC Drivers, and Tools
LevelDB - A fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
[BSD]
LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
nanodbc - A small C++ wrapper for the native C ODBC API. [MIT]
ODB - An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
redis3m - Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2]
RocksDB - Embedded key-value store for fast storage from facebook. [BSD]
SimDB - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store
[Apache2]
SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project.
[PublicDomain]
SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
sqlite_orm - SQLite ORM light header only library for modern C++. [BSD-3-Clause]
sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]
TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
upscaledb - An embedded "typed" key/value store with a built-in query interface. [GPLv3]
Debug
Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing
backward-cpp - A beautiful stack trace pretty printer for C++. [MIT]
doctest - The lightest feature rich C++ single header testing framework. [MIT]
Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
Catch2 - A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0]
CMocka - unit testing framework for C with support for mock objects. [Apache2]
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]
ig-debugheap - Multiplatform debug heap useful for tracking down memory errors. [BSD]
MinUnit - A minimal unit testing framework for C self-contained in a single header file. [MIT]
Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects.
Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] website
UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]
utest.h - Single header unit testing framework for C and C++. [Unlicense]
VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
Font
Libraries for parsing and manipulating font files.
FreeType - FreeType is a freely available software library to render fonts. [FTL & GPLv2]
otfcc - A C library and utility used for parsing and writing OpenType font files. [Apache-2.0]
Game Engine
Acid - A high speed C++17 Vulkan game engine. [MIT]
Allegro - A cross-platform library mainly aimed for video games and multimedia programming. [zlib]
Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
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]
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]
KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] website
nCine - A cross-platform 2D game engine with an emphasis on performance, written in C++11 and optionally scriptable in Lua.
[MIT] website
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
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
raylib - A simple and easy-to-use library to enjoy videogames programming. [zlib/libpng] website
Torque3D - An open-source C++ engine built for 3D game development. [MIT] website
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.
Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D.
[MIT]
GUI
Graphic User Interface
GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM
features. [Ms-PL]
gtkmm - The official C++ interface for the popular GUI library GTK+. [LGPL]
imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
[MIT]
NanoGui - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
QwtPlot3D - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
RmlUi - The HTML/CSS User Interface library evolved. Fork of libRocket. [MIT]
Sciter - Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of modern desktop applications.
[Free/Commercial]
wxWidgets - 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
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
bs::framework - Modern C++14 library for the development of real-time graphical applications. [MIT]
Cairo - A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
C-Turtle - A C++11 header-only turtle graphics library acting as a CImg wrapper. [MIT]
herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] website
Ion - A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2]
website
LLGL - Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs. [BSD-3-Clause]
magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] website
NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
Ogre 3D :zap: - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT]
OpenSubdiv - Pixar's library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
OpenVDB - Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
Panda3D - A framework for 3D rendering and game development for Python and C++. [BSD]
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] webpage
TinySpline - A small, yet powerful ANSI C library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and
Bézier curves. [MIT]
urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT]
Yocto/GL - Tiny C++ Libraries for Data-Driven Physically-based Graphics. [MIT]
Image Processing
Boost.GIL - Generic Image Library.
CImg - A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
CxImage - 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]
Dlib :zap: - A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost]
website
FreeImage - An open source library that supports popular graphics image formats and others as needed by today's multimedia
applications. [GPL2 or GPL3]
GD - GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive
license, requires mention in user docs] website
ITK - An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
Leptonica - Leptonica is an open source library containing software that is broadly useful for image processing and image
analysis applications. [BSD-2-Clause] website
libfacedetection - Open source library for face detection in images. The face detection speed can reach 1500FPS. [BSD]
libjpeg-turbo - A JPEG image codec that uses SIMD instructions to accelerate baseline JPEG encoding and decoding. [IJG & BSD-
3-Clause & zlib] website
libvips - A fast image processing library with low memory needs. [LGPL] website
OpenEXR - Cross-platform library for high dynamic range imaging. [Modified BSDF]
OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats.
[Modified BSD]
Simd - C++ image processing 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. [MIT]
TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
Video++ - A C++14 high performance video and image processing library. [MIT]
VIGRA - A generic C++ computer vision library for image analysis. [MIT X11]
VTK - Open-source, freely available software system for 3D computer graphics, image processing and visualization. [BSD]
Internationalization
gettext - GNU 'gettext'. [GPL2]
IBM ICU - A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU]
utf8.h - Single header utf8 string functions for C and C++. [Unlicense]
Inter-process communication
Apache Thrift - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages.
Originally developed by Facebook. [Apache2]
Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT] website
eCAL - Pub/sub, client/server, C++/Python/C#, various message protocols (protobuf, capnproto ..). [Apache2] website
gRPC - A high performance, open source, general-purpose RPC framework. [BSD] website
Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more. [GPLv2]
WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
JSON
Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
frozen - JSON parser and generator for C/C++. [GPL & GPL2]
Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
json.h - A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
jsoncons - A C++ header-only library for JSON and JSON-like binary formats with JSONPointer, JSONPatch, JSONPath and
JMESPath. [Boost]
json-parser - Very low footprint JSON parser written in portable ANSI C. [BSD]
json-voorhees - JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
libjson - A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
qt-json - A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
QJson - A qt-based library that maps JSON data to QVariant objects. [LGPL2]
RapidJSON :zap: - A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
Logging
Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
Easylogging++ - Extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] website
Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
log4cplus - A simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management
and configuration. [BSD & Apache2]
plog - Portable and simple log for C++ in less than 1000 lines of code. [MPL2]
templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
P7Baical - An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU
and memory. [LGPL]
CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
darknet - Open source neural network framework written in C and CUDA. [PublicDomain] website
Dlib :zap: - A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost]
website
Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] website
flashlight - A fast, flexible machine learning library from Facebook AI Research written entirely in C++ and based on the ArrayFire
tensor library. [BSD-3-Clause] website
libsvm - A simple, easy-to-use, efficient library for Support Vector Machines. [BSD-3-Clause] website
Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
RNNLIB - RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3]
sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]
VLFeat - The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and
local featurexs extraction and matching. [BSD-2-Clause] website
xgboost - Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and
more. Runs on single machine, Hadoop, Spark, Flink and DataFlow. [Apache2]
Math
Apophenia - A C library for statistical and scientific computing [GPL2]
Armadillo - Fast C++ library for linear algebra & scientific computing. [Apache2] website
autodiff - A modern, fast and expressive C++ library for automatic differentiation. [MIT] website
blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with
GMP/MPFR/LibTomMath backends. [Boost]
ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
cml - free C++ math library for games and graphics. [Boost]
Dlib :zap: - A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost]
website
Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and
related algorithms. [MPL2]
ExprTK - The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient
run-time mathematical expression parser and evaluation engine. [MIT]
Geometric Tools - C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] website
GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT] website
GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
GMP - A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers.
[LGPL3 & GPL2]
Klein - A fast, SIMD-optimized C++17 Geometric Algebra library for point, line, and plane projections, intersections, joins, rigid-body
motion, and more. [MIT] website
linalg.h - Single header, public domain, short vector math library for C++. [Unlicense]
muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain
& WTFPL] website
lp_solve - A library used to formulate and solve linear programming problems. [LGPL] website
OpenBLAS - An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] website
SymEngine - Fast symbolic manipulation library, a rewriting of SymPy's core in C++. [MIT]
TinyExpr - A C library for parsing and evaluating math expressions from strings. [zlib]
Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
xtensor - A C++14 library for numerical analysis with multi-dimensional array expressions, inspired by NumPy syntax. [BSD 3-
clause] website
universal - A C++14 header-only library implementing arbitrary posit arithmetic. The posit number system is a tapered floating
point that is more efficient than IEEE floating point. Posits enable reproducible computational science. [MIT license] website
Memory Allocation
Boehm GC - Conservative garbage collector for C and C++. [similar to X11] website
C Smart Pointers - Smart pointers for the (GNU) C programming language. [MIT]
Hoard - Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac. [GPL, commercial] website
jemalloc - General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency
support. [BSD] website
memory-allocators - Custom memory allocators to improve the performance of dynamic memory allocation. [MIT]
Multimedia
GStreamer - A library for constructing graphs of media-handling components. [LGPL]
libass - Portable subtitle renderer for the ASS/SSA subtitle format. [ISC]
libav - A collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.
[LGPL v2.1+ and others] website
LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] website
TagLib - A library for reading and editing the metadata of several popular audio formats. [LGPL/MPL] website
Networking
ACE - An OO Network Programming Toolkit in C++. [?MIT?]
Boost.Asio :zap: - A cross-platform C++ library for network and low-level I/O programming. [Boost]
Boost.Beast :zap: - HTTP and WebSocket built on Boost.Asio in C++11. [BSL-1.0] website
Breep - Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
C++ REST SDK - C++ REST SDK (previously named Casablanca). [Apache2]
Restinio - A header-only C++14 library that gives you an embedded HTTP/Websocket server. [BSD]
cpp-netlib - A collection of open-source libraries for high level network programming. [Boost]
cpp-netlib/uri - URI parser/builder library for C++, compatible with RFC 3986 and RFC 3987. [BSL-1.0]
cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT]
website
DPDK - Data Plane Development Kit, libraries and drivers for fast packet processing. [BSD-3-Clause & GPL-2.0] website
H2O - An optimized HTTP server with support for HTTP/1.x and HTTP/2. It can also be used as a library. [MIT]
HTTP Parser :zap: - A http request/response parser for C. [MIT]
KCP - A fast and reliable ARQ protocol that helps applications to reduce network latency. [MIT]
libhttpserver - C++ library for creating an embedded Rest HTTP server (and more). [LGPL2.1]
Libmicrohttpd - GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another
application. [LGPL v2.1+]
libpcap - A portable C/C++ library for network traffic capture. [BSD] website
libquic - A QUIC protocol library extracted from Chromium's QUIC Implementation. [BSD]
libwebsockets - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static
link exception] website
MQTT-C - A portable MQTT C client for embedded systems and PCs alike. [MIT] website
mTCP - Highly scalable user-level TCP stack for multicore systems. [Modified BSD]
Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
POCO :zap: - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop,
server, mobile and embedded systems. [Boost] website
Proxygen - Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
RakNet - A cross platform, open source, C++ networking engine for game programmers. [BSD]
restclient-cpp - Simple REST client for C++. It wraps libcurl for HTTP requests. [MIT]
Seasocks - Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
Silicon - A high performance, middleware oriented C++14 http web framework. [MIT]
tlse - Single C file TLS 1.2/1.3 implementation, using tomcrypt as crypto library [BSD-2-Clause]
Tufão - An asynchronous web framework for C++ built on top of Qt. [LGPL2]
uriparser - Strictly RFC 3986 compliant URI parsing and handling library. [BSD-3-Clause]
uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available.
[Zlib]
WAFer - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for
C programmers. [GPL2]
Wangle - A client/server application framework to build asynchronous, event-driven modern C++ services. [Apache-2.0]
wdt - An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over
multiple TCP paths. [BSD-3-Clause]
PcapPlusPlus - a multiplatform C++ network sniffing and packet parsing and crafting framework. [Unlicense]
PDF
Libraries for parsing and manipulating PDF documents.
libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
litePDF - Library to create and edit PDF documents that uses GDI functions through a device context to draw the page content.
[LGPL v3 and zlib]
Poppler - Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3]
Xpdf - Xpdf is a free PDF viewer and toolkit, including a text extractor, image converter, HTML converter, and more. [GPL v2/GPL
v3]
Physics
Dynamics simulation engines
Newton Dynamics - An integrated solution for real time simulation of physics environments. [zlib]
ODE - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
PhysX - An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software
suite. [BSD-3-Clause]
SOFA - SOFA is an open-source framework targeting at real-time simulation, with an emphasis on medical simulation. [LGPL]
website
Reflection
Better Enums - Reflective enums (to string, iteration). Single header. [BSD] website
CPFG - A C++03 library for reflection, callback and script binding. [Apache2] website
Magic Enum - Header-only C++17 library provides static reflection for enums (to string, from string, iteration), work with any enum
type without any macro or boilerplate code. [MIT]
magic_get - std::tuple like methods for user defined types without any macro or boilerplate code. [Boost]
meta - Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT]
Nameof - Header-only C++17 library provides nameof macros and functions to obtain the simple name of variable, type, function,
macro, and enum. [MIT]
Regular Expression
CppVerbalExpressions - C++ regular expressions made easy. [MIT]
CTRE - A Compile time PCRE (almost) compatible regular expression matcher. [MIT]
Hyperscan - Hyperscan is a high-performance multiple regex matching library by Intel. Provides simultaneous matching of large
numbers of regexps (up to tens of thousands). Typically used in a DPI library stack. [BSD]
Oniguruma - A modern and flexible regular expressions library that supports a variety of character encodings. [BSD]
PCRE - A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
PIRE - Perl Incompatible Regular Expressions library by Yandex. Can be really fast (more than 400 MB/s). [LPGL v3.0]
RE2 - A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
sregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD]
Robotics
MOOS-IvP - A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine
vehicles.
PCL - Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloud processing [BSD] website
Robotics Library (RL) - A self-contained C++ library for robot kinematics, motion planning and control. [BSD]
RobWork - A collection of C++ libraries for simulation and control of robot systems. [Apache2] website
ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]
Scientific Computing
AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT]
FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
Torch - A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause]
website
Scripting
AngelScript - AngelScript is a game-oriented interpreted/compiled scripting language. [zlib]
Boost.Python - A C++ library which enables seamless interoperability between C++ and the Python programming language.
[Boost]
CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
ChaiScript - An easy to use embedded scripting language for C++. [BSD] website
Cython - Cython is an optimising static compiler for both the Python programming language and the extended Cython
programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] website
djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
JavaCpp - The missing bridge between Java and native C++. [Apache2]
Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
sol2 - A C++ <-> Lua API wrapper with advanced features and top notch performance. [MIT]
SWIG - A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output
not licensed] website
V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
ChakraCore -A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
Serialization
Bitsery - Header only C++ binary serialization library. [MIT]
Bond - An open source, cross-platform framework for working with schematized data. [MIT]
Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT] website
cppcodec - Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
MessagePack - Efficient binary serialization format "like JSON" for C and C++. [Apache2] website
SimpleBinaryEncoding - encoding and decoding application messages in binary format for low-latency applications. [Apache2]
YAS - Very fast Yet Another Serialization library supports the binary/text/json formats. [Boost]
Sorting
pdqsort - Pattern-defeating quicksort. [zlib]
Timsort - A templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or
semi-sorted data. [MIT]
Video
libvpx - VP8/VP9 Codec SDK. [BSD]
FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
Virtual Machines
CarpVM - "interesting" VM in C. Let's see how this goes. [GPLv3]
TinyVM - A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]
C++ REST SDK - Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++
API design. [MIT]
CppCMS - A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
Crow - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
Cutelyst - A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [LGPLv2.1+] website
facil.io - Evented, high performance C web framework supporting HTTP, WebSockets, SSE and more. [MIT] website
Kore - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
libOnion - lightweight library to help you create webservers in C programming language. [LGPLv3]
Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
QDjango - A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django's API, hence
its name. [LGPL]
TreeFrog Framework - High-speed and full-stack web application framework based on C++ and Qt, which supports HTTP and
WebSocket protocol (with O/R mapping). [BSD] website
Wt - A C++ library for developing web applications. [GPL/Commercial]
XML
XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's
just no reason for that horrible crap to exist. - Linus Torvalds
Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
Mini-XML - A small XML parsing library written in ANSI C. [LGPL2 with exceptions]
PugiXML - A light-weight, simple and fast XML parser for C++ with XPath support. [MIT]
RapidXml - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C
compatibility. [Boost]
TinyXML - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. [zlib]
TinyXML2 - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much
better error handling. [MIT]
Miscellaneous
Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet
American fuzzy lop a.k.a. afl-fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input.
[Apache2]
Better String - An alternative to the string library for C which is more functional and does not have buffer overflow overrun
problems. Also includes a C++ wrapper. [BSD, GPL2]
CPPItertools - Range-based for loop add-ons inspired by the Python builtins and itertools library. [BSD-2-Clause]
DynaMix - A library which allows you to compose and modify objects at run time. [MIT]
{fmt} :zap: - Small, safe and fast formatting library for C++. [Simplified BSD]
FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD]
QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT]
StrTk - A C++ library consisting of high performance string processing routines. [MIT]
Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL]
ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
value-category-cheatsheet A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft]
VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
ZBar - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2]
ZXing - An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other
languages. [Apache]
pprint - Pretty Printer for Modern C++. [MIT]
Software
Software for creating a development environment.
Compiler
List of C or C++ compilers
Clang - A C compiler for LLVM. Supports C++11/14/1z C11. Developed by LLVM Team. [NCSA]
GCC - GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
Open WatCom - Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
Oracle Solaris Studio - C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN
Developer License]
Online Compiler
List of online C or C++ compilers
Ideone - An online compiler and debugging tool which allows you to compile source code and execute it online in more than 60
programming languages.
repl.it - A powerful yet simple tools and platforms for educators, learners, and developers.
Rextester - Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.
Try It Online - TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages.
Debugger
List of C or C++ debuggers
Metashell - An interactive template metaprogramming shell which includes the MDB metadebugger.
Valgrind - A tool for memory debugging, memory leak detection, and profiling.
Cevelop - Cross-platform C and C++ IDE based on Eclipse CDT with additional plug-ins.
CodeLite - Another cross-plaform, free C and C++ IDE. [GPL2 with an exception for plugins]
Eclipse CDT - A fully functional C and C++ IDE based on the Eclipse platform.
Microsoft Visual Studio Code :zap: - An open-source IDE from Microsoft. [MIT]
NetBeans - An IDE for developing primarily with Java, but also with other languages, in particular PHP, C/C++, and HTML5.
Qt Creator :zap: - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
cquery - A C++ code completion engine for vscode, emacs, vim, etc.
Build Systems
Bazel - A multi-language, fast and scalable build system from Google. [Apache]
Buck - A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages
including C++ developed and used at Facebook. Written in Java. [Apache]
CMake - Cross-platform free and open-source software for managing the build process of software using a compiler-independent
method. [BSD]
FASTBuild - High performance, open-source build system supporting highly scalable compilation, caching and network
distribution.
MesonBuild - An open source build system meant to be both extremely fast, and, even more importantly, as user friendly as
possible.
Spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers. [Apache-2.0/MIT]
SW - Cross-platform C++ (and other langs) Build System and Package Manager with a lot of packages available. [GPLv3]
tundra - High-performance code build system designed to give the best possible incremental build times even for very large
software projects.
tup - File-based build system that monitors in the background for changed files.
Premake - A tool configured with a Lua script to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more
across Windows, Mac OS X, and Linux.
Vcpkg - C++ library manager for Windows, Linux, and MacOS. [MIT]
waf - Python-based framework for configuring, compiling and installing applications. [BSD] website
CppDepend - Simplifies managing a complex C/C++ code base by analyzing and visualizing code dependencies, by defining
design rules, by doing impact analysis, and comparing different versions of the code.
PVS-Studio - A tool for bug detection in the source code of programs, written in C, C++ and C#.
cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format). [Apache]
include-what-you-use - A tool for use with clang to analyze includes in C and C++ source files. website
OCLint - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. - source
Clang Static Analyzer - A source code analysis tool that finds bugs in C, C++, and Objective-C programs.
IKOS - Static analyzer for C/C++ based on the theory of Abstract Interpretation. [NOSA 1.3]
List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.
EditorConfig - EditorConfig helps maintain consistent coding styles across different editors and IDEs.
Resources
Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.
API Design
Beautiful Native Libraries
Articles
Fantastic C++ related articles.
Books
Fantastic C or C++ related books.
Coding Style
C++ Core Guidelines - "Official" set of C++ guidelines, reviewed by the author of C++.
C++ Dos and Don'ts - The Chromium Projects > For Developers > Coding Style > C++ Dos and Don'ts.
Podcasts
CppCast - The first podcast by C++ developers for C++ developers.
CppChat - A (sometimes) weekly look at what's going on in the world of C++ chatting with a guest from the community.
Talks
CppCon Talks :zap: - The C++ conference.
Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
Videos
Fantastic C or C++ related videos.
Awesome C Programming Tutorials in Hi Def [HD] - A collection of detailed C Programming Language Tutorials for Beginners and
New Programmers.
C++ - by VoidRealms.
C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
C++ Programming Tutorials from thenewboston - These are all of thenewboston's C++ programming tutorials.
C++ GUI with Qt Playlist - Official Playlist for thenewboston C++ GUI with Qt tutorials.
Bo Qian's playlist - Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, ...
Websites
Useful C or C++ related websites.
Standard C++ :zap: - News, Status & Discussion about Standard C++.
Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
Meeting C++
C++ Quiz - C++ quiz in which you propose to find errors in code fragments of open source projects.
C++ tutorial - A user ranked online tutorial bank site displaying multiple courses to learn C++ from.
Weblogs
Useful C or C++ related weblogs.
Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
Eric Niebler
Sticky Bits
Embedded in Academia
Simplify C++
Fluent C++
Kenny Kerr
Sutter’s Mill
thoughts on cpp
foonathan::blog()
C++ Awesome Pack - Contains some awesome c++ codes, packed in one.
30 Seconds of C++
Awesome C 1
Awesome C 2
papers-we-love - Papers from the computer science community to read and discuss.
awesome-algorithms - A curated list of awesome places to learn and/or practice algorithms.
awesome-talks - A lot of screencasts, recordings of user group gatherings and conference talks.
Projects - A list of practical projects that anyone can solve in any programming language.
Awesome interview questions - A list of lists of interview questions for the most popular technologies, including C and C++.
Contributing
Please take a quick gander at the contribution guidelines for details. Thanks to all contributors; you rock!
If you see a project or link here that is no longer maintained or is not a good fit, please submit a pull request to
improve this document. Thank you!