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
- Asynchronous Event Loop
- Audio
- Biology
- BitTorrent
- 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
- Web Application Framework
- XML
- Miscellaneous
- Software
- Resources
- Other Awesome Lists
- Contributing
Standard Libraries
C++ Standard Library — including STL Containers, STL Aglorithm, 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.
- Standard Template Library — The Standard Template Library (STL).
- C POSIX library — A specification of a C standard library for POSIX systems.
- 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.
- abseil-cpp — Abseil C++ Common Libraries. [Apache2]
- 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 :zap: — A large collection of generic C++ libraries. [Boost] website
- BDE — The BDE Development Environment from Bloomberg Labs. [Apache2]
- 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
- 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]
- 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
- 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]
- Loki — A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
- MiLi — Minimal headers-only C++ Library. [Boost]
- OpenFrameworks — A cross platform open source toolkit for creative coding in C++. [MIT] website
- Qt :zap: — A cross-platform application and UI framework. [GPL/LGPL/Commercial]
- 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]
- tbox — A glib-like multi-platform c library. [Apache2] website
- Ultimate++ — A C++ cross-platform rapid application development framework. [BSD]
- uSTL — The small STL library. [MIT]
- Windows Template Library — A C++ library for developing Windows applications and UI components. [Public]
- Yomm2 — Fast, Orthogonal, Open multi-methods. Supersedes Yomm11 [Boost]
Artificial Intelligence
- ANNetGPGPU — A GPU (CUDA) based Artificial Neural Network library. [LGPL]
- btsk — Game Behavior Tree Starter Kit. [zlib]
- Evolving Objects — A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
- frugally-deep — Header-only library for using Keras models in C++. [MIT]
- Genann — Simple neural network library in C. [zlib]
- 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]
- tiny-dnn — A header only, dependency-free deep learning framework in C++11. [BSD]
- Veles — Distributed platform for rapid Deep learning application development. [Apache]
- Kaldi — Toolkit for speech recognition. [Apache]
Asynchronous Event Loop
- Asio — A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] website
- 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]
- libevent — An event notification library. [BSD]
- libuv — Cross-platform asynchronous I/O. [BSD]
- promise-cpp — Header only library that implements Promise/A+ standard. [Anti-996]
- uvw — C++ wrapper for libuv. [MIT]
Audio
Audio, Sound, Music, Digitized Voice Libraries
- 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]
- 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
- Maximilian — C++ Audio and Music DSP Library. [MIT]
- OpenAL — Open Audio Library — A crossplatform audio API. [BSD/LGPL/Commercial]
- miniaudio — Single file audio playback and capture library. [Unlicense]
- Opus — A totally open, royalty-free, highly versatile audio codec. [BSD]
- PortAudio — PortAudio is a free, cross-platform, open-source, audio I/O library. [MIT]
- SELA — SimplE Lossless Audio. [MIT]
- SoLoud — Easy, portable audio engine for games. [zlib]
- Speex — A free codec for free speech. Obsoleted by Opus. [BSD]
- Tonic — Easy and efficient audio synthesis in C++. [Unlicense]
- 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
- BioC++ — C++ Computational Libraries for Bioinformatics. [BSD]
- 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]
- LibTorrent (a.k.a. libtorrent-rakshasa) — BitTorrent library. [GPL]
- libutp — uTorrent Transport Protocol library. [MIT]
CLI
Console/Terminal User Interface, Command Line Interface
- Argh! — A minimalist, frustration-free, header-only argument handler. [BSD]
- Taywee/args — A simple header-only C++ argument parser library. [MIT]
- 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]
- jarro2783/cxxopts — Lightweight C++ command line option parser. [MIT]
- docopt.cpp — A library to generate option parser from docstring. [MIT/Boost]
- gflags — Commandline flags module for C++. [BSD]
- linenoise — A small self-contained alternative to readline and libedit. [BSD-2-Clause]
- 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]
- Ncurses — A terminal user interfaces. [MIT]
- 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]
- termbox — A C library for writing text-based user interfaces. [MIT]
Compression
Compression and Archiving Libraries
- bit7z — A C++ static library offering a clean and simple interface to the 7-zip DLLs. [GPLv2]
- Brotli — Brotli compression format. Developed by Google. [MIT]
- bzip2 — A freely available, patent free, high-quality data compressor. [BSD]
- 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]
- libarchive — Multi-format archive and compression library. [New BSD] website
- LZ4 — Extremely Fast Compression algorithm. [BSD] website
- 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]
- LZMAT — An extremely fast real-time lossless data compression library. [GPL]
- 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]
- smaz — Small strings compression library. [BSD]
- Snappy — A fast compressor/decompressor. [BSD]
- ZLib — A very compact compression library for data streams. [zlib]
- zlib-ng — zlib for the «next generation» systems. Drop-In replacement with some serious optimizations. [zlib]
- zstd — Zstandard — Fast real-time compression algorithm. Developed by Facebook. [BSD]
- ZZIPlib — Provides read access on ZIP-archives. [MPL/LGPL]
Concurrency
Concurrency and Multithreading
- alpaka — Abstraction library for parallel kernel acceleration. [LGPLv3+]
- ArrayFire — A general purpose GPU library. [BSD]
- Async++ — A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard proposal. [MIT]
- Boost.Compute — A C++ GPU Computing Library for OpenCL. [Boost]
- Bolt — A C++ template library optimized for GPUs. [Apache2]
- 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]
- cupla — C++ API to run CUDA/C++ on OpenMP, Threads, TBB, … through Alpaka. [LGPLv3+]
- C++React — A reactive programming library for C++11. [Boost]
- FiberTaskingLib — Task-based multi-threading library that supports task graphs with arbitrary dependencies. [Apache]
- 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]
- Intel TBB — Intel® Threading Building Blocks. [Apache2]
- junction — A library of concurrent data structures in C++. [BSD]
- libcds — A C++ library of Concurrent Data Structures. [BSD]
- Libclsph — An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
- libdill — Introduces structured concurrency in C. [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
- libmill — Introduces Go-style concurrency in C. [MIT]
- 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]
- OpenCL — The open standard for parallel programming of heterogeneous systems.
- OpenMP — The OpenMP API.
- RaftLib — The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators [Apache2]
- readerwriterqueue — A fast single-producer, single-consumer lock-free queue for C++. [BSD]
- Thrust — A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
- transwarp — A header-only C++ library for task concurrency. [MIT]
- HPX — A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
- VexCL — A C++ vector expression template library for OpenCL/CUDA. [MIT]
- Quantum — A powerful C++ coroutine dispatcher framework built on top of boost::coroutines2.
Configuration
Configuration files, INI files
- inih — Simple .INI file parser in C, good for embedded systems. [BSD-3-Clause]
- inih — Single header only C++ version of inih. [BSD-3-Clause]
- iniparser — INI file parser. [MIT]
- 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]
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
- dynamic_bitset — A C++17 header-only dynamic bitset. [MIT]
- Forest — Template library implementing an AVL, a Binary Search, a KD and a Quad Tree. [MIT]
- Hashmaps — Implementation of open addressing hash table algorithms in C++. [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]
- 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]
- BeeCrypt — A portable and fast cryptography library. [LGPLv2.1+]
- Botan — A crypto library for C++. [BSD-2]
- Crypto++ — A free C++ class library of cryptographic schemes. [Boost] website
- digestpp — C++11 header-only message digest (hash) library. [PublicDomain]
- GnuPG — A complete and free implementation of the OpenPGP standard. [GPL]
- 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]
- LibTomCrypt — A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
- mbedTLS — An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] website
- Nettle — A low-level cryptographic library. [LGPL]
- 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]
- Tiny AES in C — Small portable AES128/192/256 in C. [PublicDomain]
- 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
- csv — CSV for modern C++. [MIT]
- 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
- hiberlite — C++ Object-relational mapping for sqlite3. [BSD]
- Hiredis — A minimalistic C client library for the Redis database. [BSD]
- 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]
- MongoDB C Driver — MongoDB client library for C. [Apache2]
- MongoDB C++ Driver — C++ driver for MongoDB. [Apache2]
- MongoDB Libbson — A BSON utility library. [Apache2]
- MySQL++ — A C++ wrapper for MySQL’s C API. [LGPL]
- 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]
- SOCI — A database abstraction layer for C++. [BSL-1.0]
- 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]
- sqlitemoderncpp — Header only C++14 wrapper around sqlite library. [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]
- benchmark — Google provided small microbenchmark support library. [Apache2]
- Boost.Test — Boost Test Library. [Boost]
- check — Check is a unit testing framework for C. [LGPL-2.1] website
- 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]
- Celero — C++ Benchmarking Framework. [Apache2]
- CppUTest — Unit testing and mocking framework for C/C++. [BSD-3-clause]
- 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]
- dbg-macro — A dbg(…) macro for C++. [MIT]
- Deleaker — A tool for resource leak detection, including memory, GDI and handle leaks.
- fff — A micro-framework for creating fake C functions. [MIT]
- Google Mock — A library for writing and using C++ mock classes. [BSD]
- Google Test — Google C++ Testing Framework. [BSD]
- ig-debugheap — Multiplatform debug heap useful for tracking down memory errors. [BSD]
- libtap — Write tests in C. [GPL2]
- MemTrack — Tracking memory allocations in C++.
- microprofile — Profiler with web-view for multiple platforms. [PublicDomain]
- 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
- Nonius — A C++ micro-benchmarking framework. [CC]
- Remotery — Single C File Profiler with Web Viewer. [Apache2]
- 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]
- VLD — Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
Font
Libraries for parsing and manipulating font files.
- Fontconfig — Font configuration and customization library. [MIT] website
- 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]
- Atomic Game Engine — A multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript. [Commercial]
- Banshee 3D — Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting. [LGPL3/Commercial]
- 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]
- delta3d — A robust simulation platform. [LGPL2]
- 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]
- KlayGE — a cross-platform open source game engine with plugin-based architecture. [GPLv2] website
- OpenXRay — a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only]
- Oxygine — A cross-platform 2D C++ game engine. [MIT]
- 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
- Spring — A powerful free cross-platform RTS game engine. [GPLv2/GPLv3] website
- Torque2D — An open-source and cross-platform C++ engine built for 2D game development. [MIT] 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
- Boden — Native, mobile, cross-platform GUI Framework. [GPL/LGPL/Commercial] website
- CEGUI — Flexible, cross-platform GUI library.
- FLTK — Fast, light, cross-platform C++ GUI toolkit. [GPL2]
- GacUI — GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
- GTK+ — A multi-platform toolkit for creating graphical user interfaces. [LGPL]
- gtkmm — The official C++ interface for the popular GUI library GTK+. [LGPL]
- imgui — Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
- iup — Multi-platform toolkit for building graphical user interfaces. [MIT]
- libRocket — libRocket is a C++ HTML/CSS game interface middleware. [MIT]
- libui — Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT]
- MyGUI — Fast, flexible and simple GUI. [MIT]
- nana — Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- NanoGui — A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
- nuklear — A single-header ANSI C gui library. [PublicDomain]
- QCustomPlot — Qt plotting widget without further dependencies. [GPLv3]
- Qwt — Qt Widgets for Technical Applications. [Own based on LGPL]
- QwtPlot3D — A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
- 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]
- Yue — A library for creating native cross-platform GUI apps. [LGPLv2]
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
- bgfx — A cross-platform rendering library. [BSD]
- Blend2D — 2D vector graphics engine powered by a JIT compiler. [Zlib] 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]
- 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]
- herebedragons — A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] website
- 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
- Irrlicht — A high performance realtime 3D engine written in C++. [zlib]
- 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]
- 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]
- OpenSceneGraph — An open source high performance 3D graphics toolkit. [OSGPL]
- 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
- DCMTK — DICOM Toolkit.
- GDCM — Grassroots DICOM library.
- 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
- Magick++ — ImageMagick program interfaces for C++. [Apache2]
- MagickWnd — ImageMagick program interfaces for C. [Apache2]
- OpenCV :zap: — Open source computer vision. [BSD]
- 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]
- stb-image — STB single-header image loading library. [Public Domain]
- tesseract-ocr — An OCR engine. [Apache2]
- 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]
- libiconv — An encoding conversion library between different character encodings. [GPL]
- utf8.h — Single header utf8 string functions for C and C++. [Unlicense]
- utf8proc — A clean C library for processing UTF-8 Unicode data. [MIT]
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
- 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]
- libjson-rpc-cpp — JSON-RPC framework for C++ servers and clients. [MIT]
- nanomsg — A simple high-performance implementation of several «scalability protocols». [MIT] website
- nng — nanomsg-next-generation, a light-weight brokerless messaging library. [MIT] website
- rpclib — A modern C++ msgpack-RPC server and client library. [MIT]
- simple-rpc-cpp — A simple RPC wrapper generator to C/C++ functions. [BSD]
- WAMP — Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
- xmlrpc-c — A lightweight RPC library based on XML and HTTP. [BSD]
JSON
- Boost.PropertyTree — A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
- cJSON — Ultralightweight JSON parser in ANSI C. [MIT]
- 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]
- JeayeSON — A very sane (header only) C++ JSON library. [BSD]
- Jsmn — A minimalistic JSON parser in C. [MIT]
- json :zap: — JSON for Modern C++. [MIT]
- JSON++ — A JSON parser in C++. [MIT]
- json.h — A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
- json-c — A JSON implementation in C. [MIT]
- JsonCpp — A C++ library for interacting with JSON. [MIT]
- json-parser — Very low footprint JSON parser written in portable ANSI C. [BSD]
- json11 — A tiny JSON library for C++11. [MIT]
- json-voorhees — JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
- jute — Very simple C++ JSON Parser. [PublicDomain]
- libjson — A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
- libjson — Lightweight JSON library. [?]
- LIBUCL :zap: — Universal configuration library parser [BSD-2-Clause]
- parson — Parson is a lighweight json library written in C. [MIT]
- PicoJSON — A header-file-only, JSON parser serializer in C++. [BSD]
- 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]
- sajson — Lightweight, extremely high-performance JSON parser for C++11. [MIT]
- simdjson — Extremely fast JSON library that can parse gigabytes of JSON per second. [Apache-2.0]
- taoJSON — Zero-dependency C++ header-only JSON library. [MIT]
- ujson — µjson is a a small, C++11, UTF-8, JSON library. [MIT]
- YAJL — A fast streaming JSON parsing library in C. [ISC]
Logging
- Blackhole — Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
- Boost.Log — Designed to be very modular and extensible. [Boost]
- Easylogging++ — Extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] website
- G3log — Asynchronous logger with Dynamic Sinks. [PublicDomain]
- glog — C++ implementation of the Google logging module.
- 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]
- loguru — A lightweight C++ logging library. [PublicDomain]
- plog — Portable and simple log for C++ in less than 1000 lines of code. [MPL2]
- reckless — Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
- spdlog — Super fast, header only, C++ logging library.
- 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]
Machine Learning
- Caffe — A fast framework for neural networks. [BSD]
- 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
- MeTA — A modern C++ data sciences toolkit. [MIT] website
- Minerva — A fast and flexible system for deep learning. [Apache2]
- mlpack — A scalable c++ machine learning library. [LGPLv3] website
- OpenCV :zap: — Open Source Computer Vision Library. [BSD] 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]
- SHOGUN — The Shogun Machine Learning Toolbox. [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
- 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]
- CGAL — Collection of efficient and reliable geometric algorithms. [LGPL&GPL] website
- 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]
- linalg.h — Single header, public domain, short vector math library for C++. [Unlicense]
- MIRACL — A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
- 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
- linmath.h — A lean linear math library, aimed at graphics programming. [WTFPL]
- 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
- QuantLib — A free/open-source library for quantitative finance. [Modified BSD] website
- StatsLib — A C++ header-only library of statistical distribution functions. [Apache2] 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]
- Vc — SIMD Vector Classes for C++. [BSD]
- 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 — STL compatible C++ memory allocator library. [ZLib]
- memory-allocators — Custom memory allocators to improve the performance of dynamic memory allocation. [MIT]
- mimalloc — A compact general purpose allocator with excellent performance. [MIT]
- tgc — A tiny garbage collector for C written in \~500 LOC. [BSD]
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]
- libVLC — libVLC (VLC SDK) media framework. [GPL]
- 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
- SDL :zap: — Simple DirectMedia Layer. [zlib]
- SFML :zap: — Simple and Fast Multimedia Library. [zlib] 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]
- Restbed — C++11 Asynchronous RESTful framework. [AGPL]
- Restinio — A header-only C++14 library that gives you an embedded HTTP/Websocket server. [BSD]
- c-ares — A C library for asynchronous DNS requests. [MIT]
- cpp-httplib — A single file C++11 header-only HTTP/HTTPS sever library. [MIT]
- 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
- curlcpp — An object oriented C++ wrapper for CURL(libcurl). [MIT]
- DPDK — Data Plane Development Kit, libraries and drivers for fast packet processing. [BSD-3-Clause & GPL-2.0] website
- Dyad.c — Asynchronous networking for C. [MIT]
- ENet — Reliable UDP networking library. [MIT] website
- evpp — C++ high performance networking with TCP/UDP/HTTP protocols. [BSD]
- 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]
- libcurl — Multiprotocol file transfer library. [MIT/X derivate license]
- 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]
- librdkafka — Apache Kafka client library for C and C++. [BSD-2-Clause]
- libwebsockets — A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] website
- lwIP — A lightweight TCP/IP stack. [Modified BSD]
- Mongoose — Extremely lightweight webserver. [GPL2]
- 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]
- nghttp2 — HTTP/2 C Library. [MIT] website
- Onion — HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
- PF_RING™ — High-speed packet processing framework. [LGPL-2.1] website
- PicoHTTPParser — A tiny, primitive, fast HTTP request/response parser. [MIT]
- 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]
- 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]
- WebSocket++ — C++/Boost Asio based websocket client/server library. [BSD]
- PcapPlusPlus — a multiplatform C++ network sniffing and packet parsing and crafting framework. [Unlicense]
- ZeroMQ — High-speed, modular asynchronous communication library. [LGPL] website
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]
- MuPDF — A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial]
- PoDoFo — A library to work with the PDF file format. [LGPL]
- 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]
- DynaPDF — An easy-to-use PDF generation library. [Commercial]
Physics
Dynamics simulation engines
- Box2D — A 2D physics engine for games. [BSD-like]
- Bullet — A 3D physics engine for games. [zlib] website
- Chipmunk — A fast and lightweight 2D game physics library. [MIT] website
- LiquidFun — A 2D physics engine for games. [BSD-like]
- 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]
- ofxBox2d — openFrameworks wrapper for Box2D. [BSD-like]
- PhysX — An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause]
- Project Chrono — An open source multi-physics simulation engine. [BSD-3-Clause] website
- Simbody — High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
- Quantum++ — A modern C++11 quantum computing library. [MIT]
Reflection
- Better Enums — Reflective enums (to string, iteration). Single header. [BSD] website
- clReflect — C++ Reflection using clang. [MIT]
- CPFG — A C++03 library for reflection, callback and script binding. [Apache2] website
- CPP-Reflection — C++ Reflection using clang. [MIT]
- 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]
- Ponder — A C++11 library for reflection. [MIT]
- RTTR — A C++11 library for reflection. [MIT] website
- visit_struct — A miniature library for struct-field reflection in C++. [BSL-1.0]
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]
- SLRE — Super Light Regexp engine for C/C++. [GPLv2/Commercial]
- 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.
- MRPT — Mobile Robot Programming Toolkit. [BSD]
- 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]
- GSL — GNU scientific library. [GPL]
- TileDB — Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
- Trilinos — High performance PDE solvers. [BSD]
- 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]
- cppimport — Import C++ files directly from Python! [MIT]
- 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
- ctypes.sh — A foreign function interface for bash. [MIT]
- 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]
- Duktape — An embeddable Javascript engine with compact footprint. [MIT] website
- JavaCpp — The missing bridge between Java and native C++. [Apache2]
- libffi — A portable foreign-function interface library. [MIT] website
- Lua — A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
- LuaBridge — A lightweight, dependency-free library for binding Lua to C++. [MIT]
- luacxx — C++11 API for creating Lua bindings. [MIT]
- nbind — Magical headers that make your C++ library accessible from JavaScript. [MIT]
- PHP-CPP — A library to build PHP extensions with C++. [Apache2] website
- pybind11 — Seamless operability between C++11 and Python. [BSD]
- SIP — C or C++ Bindings Generator for Python v2 and v3. [GPL]
- 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
- V7 — An embedded JavaScript engine. [GPL2]
- 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]
- Boost.Serialization — Boost Serialization Library. [Boost]
- Cap’n Proto — Fast data interchange format and capability-based RPC system. [MIT] website
- cereal — A C++11 library for serialization. [BSD]
- cppcodec — Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
- FlatBuffers — A Memory efficient serialization library. [Apache2]
- MessagePack — Efficient binary serialization format «like JSON» for C and C++. [Apache2] website
- nanopb — Small code-size Protocol Buffers implementation in ANSI C. [Zlib]
- protobuf — Protocol Buffers — Google’s data interchange format. [BSD]
- protobuf-c — Protocol Buffers implementation in C. [BSD]
- SimpleBinaryEncoding — encoding and decoding application messages in binary format for low-latency applications. [Apache2]
- upb — A small protobuf implementation in C. [BSD]
- 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]
- libde265 — Open h.265 video codec implementation. [LGPL] website
- x265 — Open h.265 video codec implementation. [GPL2] website
- OpenH264 — Open Source H.264 Codec. [BSD] website
- Theora — A free and open video compression format. [BSD]
- Vireo — A lightweight and versatile video processing library by Twitter. [MIT]
Virtual Machines
- CarpVM — «interesting» VM in C. Let’s see how this goes. [GPLv3]
- MicroPython — Aims to put an implementation of Python 3.x on a microcontroller. [MIT]
- TinyVM — A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]
Web Application Framework
- Civetweb — Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [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
- Drogon — A C++14/17 based, high-performance HTTP application framework. [MIT]
- 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]
- lwan — Experimental, scalable, high performance HTTP server. [GPL2]
- oat++ — Light, zero-dependency framework to create high-performance web-services. [Apache-2.0] website
- 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]
- Expat — An XML parser library written in C. [MIT]
- Libxml2 — The XML C parser and toolkit of Gnome. [MIT]
- libxml++ — An XML Parser for C++. [LGPL2]
- 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]
- Xerces-C++ — A validating XML parser written in a portable subset of C++. [Apache2]
Miscellaneous
Useful libraries or tools that don’t fit in the categories above or maybe just not categorised yet
- access_profiler — A tool to count accesses to member variables in c++ programs. [GPL3]
- 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]
- Boost.Signals — An implementation of a managed signals and slots system. [Boost]
- 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]
- casacore — A set of c++ core libraries derived from aips++. [LGPL]
- QtVerbalExpressions — This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
- cxx-prettyprint — A pretty printing library for C++ containers. [Boost]
- icecream-cpp — A small printing library for debugging purposes. [MIT]
- gcc-poison — A simple header file for developers to ban unsafe C/C++ functions from applications.
- Kangaru — A dependency injection container for C++11 and C++14. [MIT]
- Klib — Small and lightweight implementations of common algorithms and data structures. [MIT]
- libsigc++ — A typesafe callback system for standard C++. [LGPL]
- libcpuid — A small C library for x86 CPU detection and feature extraction. [BSD]
- libevil — The Evil License Manager. [GPLv3]
- libnih — A lightweight library of C functions and structures. [GPL2.1]
- libusb — A universal USB library which allows for portable access to USB devices. [LGPL2]
- Mach7 — A Pattern-matching library for C++. [BSD]
- mio — Cross-platform C++11 header-only library for memory mapped file IO. [MIT]
- PEGTL — The Parsing Expression Grammar Template Library. [MIT]
- Remote Call Framework — Inter-process communication framework for C++. [GPL2/Commercial]
- Scintilla — A free source code editing component. [MIT]
- SDS — Simple Dynamic Strings library for C. [BSD]
- semver.c — A semver parser and render in ANSI C. [MIT]
- Serial Communication Library — Cross-platform, Serial Port library written in C++. [MIT]
- sigslot — C++ Signal/Slot Library. [PublicDomain]
- SimpleSignal — High performance C++11 signals. [PublicDomain]
- Stage — Mobile robot simulator. [GPL2]
- stdman Formatted C++11/14 stdlib man pages (from cppreference). [MIT]
- stb :zap: — A range of single-file libraries for C/C++. [PublicDomain]
- 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]
Software
Software for creating a development environment.
Compiler
List of C or C++ compilers
- 8cc — A Small C Compiler.
- c — Compile and execute C «scripts» in one go! [MIT]
- 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]
- PCC — A very old C compiler. Supports C99.
- Intel C++ Compiler — Developed by Intel.
- LLVM — Collection of modular and reusable compiler and toolchain technologies.
- Microsoft Visual C++ — MSVC, developed by Microsoft.
- 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]
- TCC — Tiny C Compiler. [LGPL]
Online Compiler
List of online C or C++ compilers
- codepad — An online compiler/interpreter, and a simple collaboration tool.
- coliru — Online compiler/shell with support for various C++ compilers.
- Compiler Explorer — An interactive compiler with assembly output available.
- CompileOnline — Compile and Execute C++ online on Linux.
- 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.
- Wandbox — An online Clang/GCC compiler with Boost available.
Debugger
List of C or C++ debuggers
- Comparison of debuggers — A list of Debuggers from Wikipedia.
- GDB — GNU Debugger.
- LLDB — The LLDB Debugger.
- Metashell — An interactive template metaprogramming shell which includes the MDB metadebugger.
- Valgrind — A tool for memory debugging, memory leak detection, and profiling.
- x64dbg — An open-source x64/x32 debugger for windows.
Integrated Development Environment
List of C or C++ nominal IDEs.
- Anjuta DevStudio — The GNOME IDE. [GPL3]
- AppCode — an IDE for Objective-C, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEA platform.
- Cevelop — Cross-platform C and C++ IDE based on Eclipse CDT with additional plug-ins.
- CLion — Cross-platform C and C++ IDE from JetBrains.
- Code::Blocks — A free C, C++ and Fortran IDE.
- CodeLite — Another cross-plaform, free C and C++ IDE. [GPL2 with an exception for plugins]
- color_coded — A vim plugin for libclang-based highlighting. [MIT]
- Dev-C++ — A portable C/C++/C++11 IDE.
- Eclipse CDT — A fully functional C and C++ IDE based on the Eclipse platform.
- Geany — Small, fast, cross-platform IDE. [GPL]
- IBM VisualAge — A family of computer integrated development environments from IBM.
- Irony-mode — A C/C++ minor mode for Emacs powered by libclang.
- juCi++ — Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
- KDevelop — A free, open source IDE.
- Microsoft Visual Studio — An IDE from Microsoft.
- 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.
- Xcode — Developed by Apple.
- 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]
- Bear — A tool to generate compilation database for clang tooling. [GPLv3]
- 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]
- clib — Package manager for the C programming language. [MIT]
- CMake — Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
- C++ Archive Network — Cross-platform C++ Dependency Manager with a lot of packages available.
- Cget — Cmake package retrieval. [Boost] website
- Conan — C/C++ Package Manager, open sourced. [MIT]
- CPM — A C++ Package Manager based on CMake and Git.
- FASTBuild — High performance, open-source build system supporting highly scalable compilation, caching and network distribution.
- Hunter — CMake driven cross-platform package manager for C++. [BSD-2]
- MesonBuild — An open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
- Ninja — A small build system with a focus on speed.
- Scons — A software construction tool configured with a Python script.
- Sconsolidator — Scons build system integration for Eclipse CDT.
- Spack — A flexible package manager that supports multiple versions, configurations, platforms, and compilers. [Apache-2.0/MIT]
- 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
- XMake — A C/C++ cross-platform build utility based on Lua. [Apache]
Static Code Analysis
List of tools for improving quality and reducing defects by code analysis
- Cppcheck — A tool for static C/C++ code analysis. — source
- 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.
- cpplint — A C++ style checker following Google’s C++ style guide.
- 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
- Infer — A static analyzer for Java, C and Objective-C. [BSD]
- 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.
- Linticator — Eclipse CDT integration of Pc-/FlexeLint.
- 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.
Coding Style Tools
- Artistic Style — A tool to format C/C++/C#/Obj-C/Java code. Also known as astyle.
- ClangFormat — A tool to format C/C++/Obj-C code.
- Clang-Tidy — Clang-based C++ linter tool.
- EditorConfig — EditorConfig helps maintain consistent coding styles across different editors and IDEs.
- Uncrustify — Code beautifier.
Resources
Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.
API Design
Articles
Fantastic C++ related articles.
- CppCon 2019 Presentation Materials — CppCon 2019 Presentation Materials.
- CppCon 2018 Presentation Materials — CppCon 2018 Presentation Materials.
- CppCon 2017 Presentation Materials — CppCon 2017 Presentation Materials.
- CppCon 2016 Presentation Materials — CppCon 2016 Presentation Materials.
- CppCon 2015 Presentation Materials — CppCon 2015 Presentation Materials.
- CppCon 2014 Presentation Materials — CppCon 2014 Presentation Materials.
- C++Now 2019 Presentations — Presentation materials presented at C++Now 2019.
- C++Now 2018 Presentations — Presentation materials presented at C++Now 2018.
- C++Now 2017 Presentations — Presentation materials presented at C++Now 2017.
- C++Now 2016 Presentations — Presentation materials presented at C++Now 2016.
- C++Now 2015 Presentations — Presentation materials presented at C++Now 2015.
- C++Now 2014 Presentations — Presentation materials presented at C++Now 2014.
- C++Now 2013 Presentations — Presentation materials presented at C++Now 2013.
- C++Now 2012 Presentations — Presentation materials presented at C++Now 2012.
Books
Fantastic C or C++ related books.
- List of Free C or C++ Books
- Free C Books — vhf/free-programming-books/C.
- Free C++ Books — vhf/free-programming-books/C++.
- cppbestpractices — Collaborative Collection of C++ Best Practices.
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.
- google-styleguide — Style guides for Google-originated open-source projects.
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- LLVM Coding Standards
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.
- Presentation on Hana for C++Now 2015
Videos
Fantastic C or C++ related videos.
- List of C or C++ YouTube 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++ Qt Programming — 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.
- C Programming Tutorials — All of TheNewBoston’s C programming tutorials are right here.
- 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++.
- CppCon — The C++ Conference.
- C++ reference — C++98, C++03, C++11, C++14 reference.
- cplusplus.com — The C++ Resources Network.
- C FAQ — C frequently asked questions.
- C++ FAQ — C++ frequently asked questions.
- C++ FQA Lite — C++ frequently questioned answers.
- 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.
- Udemy C++ Courses and Tutorials
- C++ Hints — Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
- 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
- Paul Fultz II’s Blog
- ridiculousfish — Will It Optimize?
- Embedded in Academia
- Simplify C++
- Fluent C++
- Bartek’s Coding Blog
- Kenny Kerr
- Sutter’s Mill
- thoughts on cpp
- Vorbrodt’s C++ Blog
- foonathan::blog()
Other Awesome Projects
Collection of useful codes, snippets, …
- algorithms — Algorithms & Data Structures in C++.
- c-algorithms — C algorithms library.
- C++ Awesome Pack — Contains some awesome c++ codes, packed in one.
- 30 Seconds of C++
Other Awesome Lists
Other amazingly awesome lists
- lists — List of (awesome) lists curated on GitHub.
- awesome-awesomeness — A curated list of awesome awesomeness.
- awesome :zap: — A curated list of awesome lists.
- C++ links — A categorized list of C++ resources.
- Awesome C++ — getAwesomeness()’s mirror.
- Awesome C++ — LibHunt’s mirror.
- Awesome C 1
- Awesome C 2
- Awesome Modern C++ — A collection of resources on modern C++.
- AwesomePerfCpp — A curated list of awesome C/C++ performance optimization resources.
- free-programming-books — List of Freely Available Programming Books.
- Inqlude — The Qt library archive.
- 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++.
- nothings/singlefilelibs :zap: — List of single-file C/C++ libraries.
Contributing
Please take a quick gander at the contribution guidelines for details. Thanks to all contributors; you rock!