awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things.
https://github.com/DanylovskyiAM/awesome-cpp
Last synced: 1 day ago
JSON representation
-
Other Awesome Projects
- papers-we-love - Papers from the computer science community to read and discuss.
- awesome-talks - A lot of screencasts, recordings of user group gatherings and conference talks.
- awesome-algorithms - A curated list of awesome places to learn and/or practice algorithms.
- awesome-awesomeness - A curated list of awesome awesomeness.
- Awesome C++ - LibHunt's mirror.
- Awesome C
- CONTRIBUTING
- awesome - A curated list of awesome lists.
- Projects - A list of practical projects that anyone can solve in any programming language.
- algorithms - Algorithms & Data Structures in C++.
- c-algorithms - C algorithms library.
- lists - List of (awesome) lists curated on GitHub.
- AwesomePerfCpp - A curated list of awesome C/C++ performance optimization resources.
- C++ links - A categorized list of C++ resources.
- Awesome C
- Awesome interview questions - A list of lists of interview questions for the most popular technologies, including C and C++.
- free-programming-books - List of Freely Available Programming Books.
- nothings/single_file_libs - List of single-file C/C++ libraries.
- C++ Awesome Pack - Contains some awesome c++ codes, packed in one.
- Awesome C++ - getAwesomeness()'s mirror.
-
Cryptography
- Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
- GnuPG - A complete and free implementation of the OpenPGP standard. [GPL]
- 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. [?]
- Nettle - A low-level cryptographic library. [LGPL]
- OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] [website](http://www.openssl.org/)
- libsodium - P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
- Crypto++ - A free C++ class library of cryptographic schemes. [Boost] [website](http://www.cryptopp.com/)
- LibTomCrypt - A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
- retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
- Tiny AES in C - Small portable AES128/192/256 in C. [PublicDomain]
- sha1collisiondetection - Library and command line tool to detect SHA-1 collision in a file. [MIT]
- digestpp - C++11 header-only message digest (hash) library. [PublicDomain]
- libhydrogen - A lightweight, secure, easy-to-use crypto library for constrained environments. [ISC]
- mbedTLS - An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] [website](https://tls.mbed.org/)
- 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]
- 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+]
- Libgcrypt - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
- Nettle - A low-level cryptographic library. [LGPL]
- s2n - An implementation of the TLS/SSL protocols. [Apache]
-
Static Code Analysis
- Infer - A static analyzer for Java, C and Objective-C. [BSD]
- 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.
- include-what-you-use - A tool for use with clang to analyze includes in C and C++ source files. [website](https://include-what-you-use.org/)
- cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format). [Apache]
- cpplint - A C++ style checker following Google's C++ style guide.
- Cppcheck - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
- List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.
-
Scientific Computing
- GSL - GNU scientific library. [GPL]
- FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
- AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT]
- Torch - A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause] [website](http://torch.ch/)
- Trilinos - High performance PDE solvers. [BSD]
-
Build Systems
- CMake - Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
- XMake - A C/C++ cross-platform build utility based on Lua. [Apache]
- Conan - C/C++ Package Manager, open sourced. [MIT]
- Ninja - A small build system with a focus on speed.
- 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]
- waf - Python-based framework for configuring, compiling and installing applications. [BSD] [website](https://waf.io/)
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- Vcpkg - VC++ Packaging Tool for Windows.
- Bear - A tool to generate compilation database for clang tooling. [GPLv3]
- CPM - A C++ Package Manager based on CMake and Git.
- clib - Package manager for the C programming language. [MIT]
- Cget - Cmake package retrieval. [Boost] [website](http://cget.readthedocs.io)
- Bazel - A multi-language, fast and scalable build system from Google. [Apache]
- tundra - High-performance code build system designed to give the best possible incremental build times even for very large software projects.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- Scons - A software construction tool configured with a Python script.
-
Compiler
- GCC - GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
- PCC - A very old C compiler. Supports C99.
- Oracle Solaris Studio - C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN Developer License]
- Open WatCom - Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
- c - Compile and execute C "scripts" in one go! [MIT]
- 8cc - A Small C Compiler.
- Microsoft Visual C++ - MSVC, developed by Microsoft.
- Intel C++ Compiler - Developed by Intel.
-
Compression
- ZLib - A very compact compression library for data streams. [zlib]
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- 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]
- LZMAT - An extremely fast real-time lossless data compression library. [GPL]
- libarchive - Multi-format archive and compression library. [New BSD] [website](http://www.libarchive.org/)
- zstd - Zstandard - Fast real-time compression algorithm. Developed by Facebook. [BSD]
- FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0.
- Brotli - Brotli compression format. Developed by Google. [MIT]
- smaz - Small strings compression library. [BSD]
- LZFSE - LZFSE compression library and command line tool. Developed by Apple.
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- Snappy - A fast compressor/decompressor. [BSD]
- zlib-ng - zlib for the "next generation" systems. Drop-In replacement with some serious optimizations. [zlib]
- ZZIPlib - Provides read access on ZIP-archives. [MPL/LGPL]
- LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
- miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [Unlicense]
- LZ4 - Extremely Fast Compression algorithm. [BSD]
-
Integrated Development Environment
- Anjuta DevStudio - The GNOME IDE. [GPL3]
- IBM VisualAge - A family of computer integrated development environments from IBM.
- YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
- rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
- juCi++ - Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
- color_coded - A vim plugin for libclang-based highlighting. [MIT]
- Irony-mode - A C/C++ minor mode for Emacs powered by libclang.
- Xcode - Developed by Apple.
- Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
- Microsoft Visual Studio - An IDE from Microsoft.
- Code::Blocks - A free C, C++ and Fortran IDE.
- Eclipse CDT - A fully functional C and C++ IDE based on the Eclipse platform.
- Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
-
Frameworks
- GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
- ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
- Boost - A large collection of generic C++ libraries. [Boost] [website](http://www.boost.org/)
- Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
- 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]
- MiLi - Minimal headers-only C++ Library. [Boost]
- uSTL - The small STL library. [MIT]
- Dlib - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost] [website](http://dlib.net/)
- BDE - The BDE Development Environment from Bloomberg Labs. [Apache2]
- FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT]
- LibSourcey - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
- ffead-cpp - Framework for Enterprise Application Development. [Apache2]
- EASTL - Electronic Arts Standard Template Library. [BSD]
- LibU - A multiplatform utility library written in C. [BSD]
- OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] [website](http://www.openframeworks.cc/)
- Folly - An open-source C++ library developed and used at Facebook. [Apache2]
- abseil-cpp - Abseil C++ Common Libraries. [Apache2]
- tbox - A glib-like multi-platform c library. [Apache2] [website](http://tboox.org/)
- ETL - Embedded Template Library. [MIT]
- Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes [Yomm11](https://github.com/jll63/yomm11) [Boost]
- libPhenom - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
- JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial] [website](http://www.juce.com/)
- ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
- STLport - An exemplary version of STL. [Free]
- Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
- Cxxomfort - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
- Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
- Qt - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
- STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
- Qt - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
-
Video
- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
- x265 - Open h.265 video codec implementation. [GPL2] [website](https://x265.readthedocs.io/en/default/)
- OpenH264 - Open Source H.264 Codec. [BSD] [website](http://www.openh264.org/)
- libde265 - Open h.265 video codec implementation. [LGPL] [website](http://www.libde265.org/)
-
Web Application Framework
- Kore - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- 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](http://www.treefrogframework.org/)
- Cutelyst - A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [LGPLv2.1+] [website](https://cutelyst.org/)
- Crow - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
- facil.io - Evented, high performance C web framework supporting HTTP, WebSockets, SSE and more. [MIT] [website](http://facil.io)
- Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
- lwan - Experimental, scalable, high performance HTTP server. [GPL2]
- oat++ - Light, zero-dependency framework to create high-performance web-services. [Apache-2.0] [website](https://oatpp.io/)
- 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]
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
-
Math
- GMP - A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
- 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]
- Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
- 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]
- muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
- Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
- CGAL - Collection of efficient and reliable geometric algorithms. [LGPL&GPL] [website](http://www.cgal.org/)
- Vc - SIMD Vector Classes for C++. [BSD]
- QuantLib - A free/open-source library for quantitative finance. [Modified BSD] [website](http://quantlib.org/)
- LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] [website](http://www.libtom.net/)
- GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT]
- blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
- linmath.h - A lean linear math library, aimed at graphics programming. [WTFPL]
- TinyExpr - A C library for parsing and evaluating math expressions from strings. [zlib]
- StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] [website](https://www.kthohr.com/statslib.html)
- OpenBLAS - An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] [website](http://www.openblas.net/)
- xtensor - A C++14 library for numerical analysis with multi-dimensional
- Apophenia - A C library for statistical and scientific computing [GPL2]
- ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
- Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
- Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
- MIRACL - A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
- GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
- Armadillo - A high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2] [website](http://arma.sourceforge.net/)
- Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost]
- cml - free C++ math library for games and graphics. [Boost]
- Geometric Tools - C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] [website](https://www.geometrictools.com)
- NT2 - A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost]
-
Debug
- CMocka - unit testing framework for C with support for mock objects. [Apache2]
- CTest - The CMake test driver program. [BSD]
- Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects.
- MemTrack - Tracking memory allocations in C++.
- microprofile - Profiler with web-view for multiple platforms. [PublicDomain]
- VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
- Catch2 - A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0]
- backward-cpp - A beautiful stack trace pretty printer for C++. [MIT]
- CppUTest - Unit testing and mocking framework for C/C++. [BSD-3-clause]
- UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]
- Celero - C++ Benchmarking Framework. [Apache2]
- fff - A micro-framework for creating fake C functions. [MIT]
- libtap - Write tests in C. [GPL2]
- Google Test - Google C++ Testing Framework. [BSD]
- benchmark - Google provided small microbenchmark support library. [Apache2]
- Remotery - Single C File Profiler with Web Viewer. [Apache2]
- MinUnit - A minimal unit testing framework for C self-contained in a single header file. [MIT]
- utest.h - Single header unit testing framework for C and C++. [Unlicense]
- ig-debugheap - Multiplatform debug heap useful for tracking down memory errors. [BSD]
- Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
- MemTrack - Tracking memory allocations in C++.
- Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] [website](http://www.plflib.org/nanotimer.htm)
- Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks.
- CppUnit - C++ port of JUnit. [LGPL2]
- doctest - The lightest feature rich C++ single header testing framework. [MIT]
-
XML
- Expat - An XML parser library written in C. [MIT]
- TinyXML2 - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
- Mini-XML - A small XML parsing library written in ANSI C. [LGPL2 with exceptions]
- Expat - An XML parser library written in C. [MIT]
- TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
- Libxml2 - The XML C parser and toolkit of Gnome. [MIT]
-
Standard Libraries
- 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](http://www.open-std.org/JTC1/SC22/WG21/)
- The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
-
Audio
- KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
- Maximilian - C++ Audio and Music DSP Library. [MIT]
- Tonic - Easy and efficient audio synthesis in C++. [Unlicense]
- SoLoud - Easy, portable audio engine for games. [zlib]
- minimp3 - Public domain, header-only MP3 decoder with clean-room implementation. [CC0]
- SELA - SimplE Lossless Audio. [MIT]
- Speex - A free codec for free speech. Obsoleted by Opus. [BSD]
- mini_al - Single file audio playback and capture library. [Unlicense]
-
Biology
- Chaste - An open source C++ library for the computational simulation of mathematical models developed for physiology and biology. [BSD]
- Vcflib - A C++ library for parsing and manipulating VCF files. [MIT]
- libsequence - A C++ library for representing and analyzing population genetics data. [GPL]
- Wham - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]
- BioC++ - C++ Computational Libraries for Bioinformatics. [BSD]
-
Concurrency
- OpenCL - The open standard for parallel programming of heterogeneous systems.
- concurrentqueue - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
- readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++. [BSD]
- libcds - A C++ library of Concurrent Data Structures. [BSD]
- Boost.Compute - A C++ GPU Computing Library for OpenCL. [Boost]
- junction - A library of concurrent data structures in C++. [BSD]
- VexCL - A C++ vector expression template library for OpenCL/CUDA. [MIT]
- Async++ - A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard proposal. [MIT]
- Bolt - A C++ template library optimized for GPUs. [Apache2]
- ArrayFire - A general purpose GPU library. [BSD]
- transwarp - A header-only C++ library for task concurrency. [MIT]
- ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
- 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]
- Libclsph - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
- Intel TBB - Intel® Threading Building Blocks. [Apache2]
- C++React - A reactive programming library for C++11. [Boost]
- alpaka - Abstraction library for parallel kernel acceleration. [LGPLv3+]
- 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+]
- Cpp-Taskflow - Fast C++ Parallel Programming with Task Dependencies. [MIT]
-
Database
- ODB - An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
- LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
- Hiredis - A minimalistic C client library for the Redis database. [BSD]
- sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]
- MongoDB C++ Driver - C++ driver for MongoDB. [Apache2]
- hiberlite - C++ Object-relational mapping for sqlite3. [BSD]
- sqlite_modern_cpp - Header only C++14 wrapper around sqlite library. [MIT]
- sqlite_orm - SQLite ORM light header only library for modern C++. [BSD-3-Clause]
- SimDB - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store [Apache2]
- redis3m - Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2]
- MongoDB Libbson - A BSON utility library. [Apache2]
- SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
- RocksDB - Embedded key-value store for fast storage from facebook. [BSD]
- LevelDB - A fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. [BSD]
- MongoDB C Driver - MongoDB client library for C. [Apache2]
- TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] [website](https://tiledb.io/)
- nanodbc - A small C++ wrapper for the native C ODBC API. [MIT]
- LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
- MySQL++ - A C++ wrapper for MySQL's C API. [LGPL]
- LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
- upscaledb - An embedded "typed" key/value store with a built-in query interface. [GPLv3]
-
Game Engine
- Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
- Banshee 3D - Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting. [LGPL3/Commercial]
- Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
- 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.
- Godot - A fully featured, open source, MIT licensed, game engine. [MIT]
- GamePlay - A cross-platform native C++ game framework for creating 2D/3D mobile and desktop games. [Apache2]
- Atomic Game Engine - A multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript. [Commercial]
- Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] [website](https://www.panda3d.org/)
- OpenXRay - a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only]
- Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] [website](http://polycode.org/)
- KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] [website](http://www.klayge.org/)
- Torque2D - An open-source and cross-platform C++ engine built for 2D game development. [MIT] [website](https://www.garagegames.com/products/torque-2d)
- Torque3D - An open-source C++ engine built for 3D game development. [MIT] [website](https://www.garagegames.com/products/torque-3d)
- EnTT - Gaming meets modern C++. [MIT]
- PixelGameEngine - The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. [OLC3]
- Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
- Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
-
GUI
- CEGUI - Flexible, cross-platform GUI library.
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- libRocket - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
- MyGUI - Fast, flexible and simple GUI. [MIT]
- libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT]
- GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
- imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
- Yue - A library for creating native cross-platform GUI apps. [LGPLv2]
- NanoGui - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
- nuklear - A single-header ANSI C gui library. [PublicDomain]
- CEGUI - Flexible, cross-platform GUI library.
- libRocket - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
- MyGUI - Fast, flexible and simple GUI. [MIT]
- QCustomPlot - Qt plotting widget without further dependencies. [GPLv3]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
-
Image Processing
- 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]
- stb-image - STB single-header image loading library. [Public Domain]
- tesseract-ocr - An OCR engine. [Apache2]
- MagickWnd - ImageMagick program interfaces for C. [Apache2]
- Video++ - A C++14 high performance video and image processing library. [MIT]
- 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]
- VIGRA - A generic C++ computer vision library for image analysis. [MIT X11]
- libvips - A fast image processing library with low memory needs. [LGPL] [website](http://www.vips.ecs.soton.ac.uk/)
- GD - GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] [website](http://libgd.github.io/)
- OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
- OpenCV - Open source computer vision. [BSD]
- TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
- 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]
-
Internationalization
-
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]
- 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)
- gRPC - A high performance, open source, general-purpose RPC framework. [BSD] [website](http://www.grpc.io/)
- nanomsg - A simple high-performance implementation of several "scalability protocols". [MIT] [website](http://nanomsg.org/)
- 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]
- rpclib - A modern C++ msgpack-RPC server and client library. [MIT]
- nng - nanomsg-next-generation, a light-weight brokerless messaging library. [MIT] [website](https://nanomsg.github.io/nng/)
- Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
- WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
- Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
-
Logging
- 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]
- spdlog - Super fast, header only, C++ logging library.
- glog - C++ implementation of the Google logging module.
- 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]
- loguru - A lightweight C++ logging library. [PublicDomain]
- G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain]
- reckless - Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
- Easylogging++ - Single header only, extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] [website](https://muflihun.github.io/easyloggingpp)
- Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
- templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
-
Multimedia
- LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
- libVLC - libVLC (VLC SDK) media framework. [GPL]
- SFML - Simple and Fast Multimedia Library. [zlib] [website](http://www.sfml-dev.org/)
- QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] [website](http://wang-bin.github.io/QtAV/)
- 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](https://www.libav.org/)
- TagLib - A library for reading and editing the metadata of several popular audio formats. [LGPL/MPL] [website](https://taglib.org/)
- MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
- LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
- GStreamer - A library for constructing graphs of media-handling components. [LGPL]
-
Networking
- ACE - An OO Network Programming Toolkit in C++. [?MIT?]
- 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+]
- POCO - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] [website](http://pocoproject.org/)
- Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
- uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
- C++ REST SDK - C++ REST SDK (previously named Casablanca). [Apache2]
- nghttp2 - HTTP/2 C Library. [MIT] [website](https://nghttp2.org/)
- WebSocket++ - C++/Boost Asio based websocket client/server library. [BSD]
- evpp - C++ high performance networking with TCP/UDP/HTTP protocols. [BSD]
- c-ares - A C library for asynchronous DNS requests. [MIT]
- Mongoose - Extremely lightweight webserver. [GPL2]
- Tufão - An asynchronous web framework for C++ built on top of Qt. [LGPL2]
- curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT]
- Seasocks - Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
- Wangle - A client/server application framework to build asynchronous, event-driven modern C++ services. [Apache-2.0]
- libwebsockets - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] [website](https://libwebsockets.org/)
- libquic - A QUIC protocol library extracted from Chromium's QUIC Implementation. [BSD]
- libpcap - A portable C/C++ library for network traffic capture. [BSD] [website](https://www.tcpdump.org/)
- Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
- PicoHTTPParser - A tiny, primitive, fast HTTP request/response parser. [MIT]
- HTTP Parser - A http request/response parser for C. [MIT]
- H2O - An optimized HTTP server with support for HTTP/1.x and HTTP/2. It can also be used as a library. [MIT]
- Proxygen - Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
- 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]
- Dyad.c - Asynchronous networking for C. [MIT]
- ENet - Reliable UDP networking library. [MIT] [website](http://enet.bespin.org/)
- Restbed - C++11 Asynchronous RESTful framework. [AGPL]
- ACE - An OO Network Programming Toolkit in C++. [?MIT?]
- Breep - Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
- libjingle - Google talk voice and P2P interoperability library. [BSD]
- cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] [website](https://whoshuu.github.io/cpr/)
- RakNet - A cross platform, open source, C++ networking engine for game programmers. [BSD]
- nope.c - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
- Silicon - A high performance, middleware oriented C++14 http web framework. [MIT]
-
PDF
- MuPDF - A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial]
- 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]
- libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
- PoDoFo - A library to work with the PDF file format. [LGPL]
- PoDoFo - A library to work with the PDF file format. [LGPL]
-
Online Compiler
- codepad - An online compiler/interpreter, and a simple collaboration tool.
- coliru - Online compiler/shell with support for various C++ compilers.
- Try It Online - TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages.
- Rise4Fun - Online Visual C++ compiler.
- Wandbox - An online Clang/GCC compiler with Boost available.
- coliru - Online compiler/shell with support for various C++ compilers.
- CompileOnline - Compile and Execute C++ online on Linux.
-
Debugger
- Comparison of debuggers - A list of Debuggers from Wikipedia.
- GDB - GNU Debugger.
- Valgrind - A tool for memory debugging, memory leak detection, and profiling.
-
API Design
-
Coding Style
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- C++ Core Guidelines - "Official" set of C++ guidelines, reviewed by the author of C++.
- google-styleguide - Style guides for Google-originated open-source projects.
-
Websites
- Standard C++ - News, Status & Discussion about Standard C++.
- 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.
- 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.
- C++ Quiz - C++ quiz in which you propose to find errors in code fragments of open source projects.
- C++ reference - C++98, C++03, C++11, C++14 reference.
- C++ FAQ - C++ frequently asked questions.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
- C++ reference - C++98, C++03, C++11, C++14 reference.
-
Weblogs
- Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
- Eric Niebler
- Sticky Bits
-
Books
- Free C++ Books - vhf/free-programming-books/C++.
- List of Free C or C++ Books
- cppbestpractices - Collaborative Collection of C++ Best Practices.
-
Miscellaneous
- libsigc++ - A typesafe callback system for standard C++. [LGPL]
- libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
- StrTk - A C++ library consisting of high performance string processing routines. [MIT]
- libsigc++ - A typesafe callback system for standard C++. [LGPL]
- casacore - A set of c++ core libraries derived from aips++. [LGPL]
- FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD]
- stb - A range of single-file libraries for C/C++. [PublicDomain]
- PHP-CPP - A library to build PHP extensions with C++. [Apache2] [website](http://www.php-cpp.com/)
- Mach7 - A Pattern-matching library for C++. [BSD]
- Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT]
- Better Enums - Reflective enums (to string, iteration). Single header. [BSD] [website](http://aantron.github.io/better-enums/)
- stdman
- cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
- DynaMix - A library which allows you to compose and modify objects at run time. [MIT]
- {fmt} - Small, safe and fast formatting library for C++. [Simplified BSD]
- libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
- libnih - A lightweight library of C functions and structures. [GPL2.1]
- value-category-cheatsheet
- Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
- SDS - Simple Dynamic Strings library for C. [BSD]
- meta - Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT]
- Kangaru - A dependency injection container for C++11 and C++14. [MIT]
- SimpleSignal - High performance C++11 signals. [PublicDomain]
- access_profiler - A tool to count accesses to member variables in c++ programs. [GPL3]
- QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
- ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
- Stage - Mobile robot simulator. [GPL2]
- semver.c - A semver parser and render in ANSI C. [MIT]
- VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
- Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL]
- PEGTL - The Parsing Expression Grammar Template Library, a C++11 parser library. [MIT]
- casacore - A set of c++ core libraries derived from aips++. [LGPL]
- c-smart-pointers - Smart pointers for the (GNU) C programming language. [MIT]
- gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
- libevil - The Evil License Manager. [GPLv3]
- Remote Call Framework - Inter-process communication framework for C++. [GPL2/Commercial]
- libsigc++ - A typesafe callback system for standard C++. [LGPL]
- sigslot - C++ Signal/Slot Library. [PublicDomain]
- American fuzzy lop - fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
-
Robotics
- RobWork - A collection of C++ libraries for simulation and control of robot systems. [Apache2]
- PCL - Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloud processing [BSD] [website](http://www.pointclouds.org/)
- MOOS-IvP - A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine vehicles.
- ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]
-
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++ 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.
- C++ Qt Programming - by VoidRealms.
- 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.
- C Programming Tutorials - All of TheNewBoston's C programming tutorials are right here.
-
Scripting
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
- libffi - A portable foreign-function interface library. [MIT] [website](https://sourceware.org/libffi/)
- pybind11 - Seamless operability between C++11 and Python. [BSD]
- 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](http://www.swig.org/)
- nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT]
- sol2 - A C++ <-> Lua API wrapper with advanced features and top notch performance. [MIT]
- LuaBridge - A lightweight, dependency-free library for binding Lua to C++. [MIT]
- luacxx - C++11 API for creating Lua bindings. [MIT]
- CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
- ctypes.sh - A foreign function interface for bash. [MIT]
- Duktape - An embeddable Javascript engine with compact footprint. [MIT] [website](http://duktape.org)
- 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](http://cython.org/)
- cppimport - Import C++ files directly from Python! [MIT]
- JavaCpp - The missing bridge between Java and native C++. [Apache2]
- djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
- V7 - An embedded JavaScript engine. [GPL2]
- ChakraCore - A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- ChaiScript - An easy to use embedded scripting language for C++. [BSD] [website](http://chaiscript.com/)
- Boost.Python - A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost]
-
Machine Learning
- Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
- CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
- Caffe - A fast framework for neural networks. [BSD]
- mlpack - A scalable c++ machine learning library. [LGPLv3] [website](http://www.mlpack.org/)
- Minerva - A fast and flexible system for deep learning. [Apache2]
- MeTA - A modern C++ data sciences toolkit. [MIT] [website](https://meta-toolkit.org/)
- Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] [website](http://fidoproject.github.io/)
- SHOGUN - The Shogun Machine Learning Toolbox. [GPLv3]
- 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]
- 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](http://www.vlfeat.org/)
- Caffe2 - A lightweight, modular, and scalable deep learning framework. [Apache2] [website](https://caffe2.ai/)
- 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]
-
Artificial Intelligence
- TensorFlow - An open source software library for numerical computation using data flow graphs [Apache]
- Kaldi - Toolkit for speech recognition. [Apache]
- tiny-dnn - A header only, dependency-free deep learning framework in C++11. [BSD]
- Recast/Detour - (3D) Navigation mesh generator and pathfinder, mostly for games. [zlib]
- frugally-deep - Header-only library for using Keras models in C++. [MIT]
- Genann - Simple neural network library in C. [zlib]
- CNTK - Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit. [Boost]
- ANNetGPGPU - A GPU (CUDA) based Artificial Neural Network library. [LGPL]
- Veles - Distributed platform for rapid Deep learning application development. [Apache]
- 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]
-
Articles
- CppCon 2014 Presentation Materials - CppCon 2014 Presentation Materials.
- CppCon 2016 Presentation Materials - CppCon 2016 Presentation Materials.
- CppCon 2015 Presentation Materials - CppCon 2015 Presentation Materials.
- C++Now 2014 Presentations - Presentation materials presented at C++Now 2014.
- C++Now 2012 Presentations - Presentation materials presented at C++Now 2012.
- CppCon 2017 Presentation Materials - CppCon 2017 Presentation Materials.
- CppCon 2018 Presentation Materials - CppCon 2018 Presentation Materials.
- C++Now 2017 Presentations - Presentation materials presented at C++Now 2017.
- C++Now 2018 Presentations - Presentation materials presented at C++Now 2018.
- C++Now 2016 Presentations - Presentation materials presented at C++Now 2016.
- C++Now 2015 Presentations - Presentation materials presented at C++Now 2015.
- C++Now 2013 Presentations - Presentation materials presented at C++Now 2013.
-
Virtual Machines
- 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]
- CarpVM - "interesting" VM in C. Let's see how this goes. [GPLv3]
-
JSON
- Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
- YAJL - A fast streaming JSON parsing library in C. [ISC]
- frozen - JSON parser and generator for C/C++. [GPL & GPL2]
- JsonCpp - A C++ library for interacting with JSON. [MIT]
- json11 - A tiny JSON library for C++11. [MIT]
- PicoJSON - A header-file-only, JSON parser serializer in C++. [BSD]
- sajson - Lightweight, extremely high-performance JSON parser for C++11. [MIT]
- JSON++ - A JSON parser in C++. [MIT]
- json-voorhees - JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
- JeayeSON - A very sane (header only) C++ JSON library. [BSD]
- LIBUCL - Universal configuration library parser [BSD-2-Clause]
- libjson - A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
- json - JSON for Modern 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]
- Jsmn - A minimalistic JSON parser in C. [MIT]
- QJson - A qt-based library that maps JSON data to QVariant objects. [LGPL2]
- RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
- jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
- jute - Very simple C++ JSON Parser. [PublicDomain]
- ujson - µjson is a a small, C++11, UTF-8, JSON library. [MIT]
- libjson - Lightweight JSON library. [?]
- json-parser - Very low footprint JSON parser written in portable ANSI C. [BSD]
-
Graphics
- Skia - A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] [webpage](https://sites.google.com/site/skiadocs/home)
- bgfx - A cross-platform rendering library. [BSD]
- magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] [website](http://magnum.graphics)
- libigl - Simple C++ geometry processing library. [MPL2]
- DirectXTK - A collection of helper classes for writing DirectX 11.x code in C++. [MIT]
- Yocto/GL - Tiny C++ Libraries for Data-Driven Physically-based Graphics. [MIT]
- Partio - Library for wrangling particle data, with support for most common file formats. [Modified BSD]
- urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT]
- NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
- Diligent Engine - A modern cross-platform low-level 3D graphics library. [Apache2]
- herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/)
- GLFW - A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
- bs::framework - Modern C++14 library for the development of real-time graphical applications. [MIT]
- TinySpline - A small, yet powerful ANSI C library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and Bézier curves. [MIT]
- assimp - Open Asset Import Library (assimp) is a cross-platform 3D model import library which aims to provide a common API for different 3D asset file formats. [BSD-3-Clause] [website](http://www.assimp.org)
- Horde3D - A small 3D rendering and animation engine. [EPL]
- OpenSubdiv - Pixar's library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
- Ion - A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] [website](https://google.github.io/ion/)
- Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
- Cairo - A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
- OpenSceneGraph - An open source high performance 3D graphics toolkit. [OSGPL]
-
Regular Expression
- RE2 - A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
- CppVerbalExpressions - C++ regular expressions made easy. [MIT]
- CTRE - A Compile time PCRE (almost) compatible regular expression matcher. [MIT]
- sregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD]
- SLRE - Super Light Regexp engine for C/C++. [GPLv2/Commercial]
-
Serialization
- cereal - A C++11 library for serialization. [BSD]
- MessagePack - Efficient binary serialization format "like JSON" for C and C++. [Apache2] [website](http://msgpack.org/)
- protobuf-c - Protocol Buffers implementation in C. [BSD]
- FlatBuffers - A Memory efficient serialization library. [Apache2]
- Bond - An open source, cross-platform framework for working with schematized data. [MIT]
- cppcodec - Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
- protobuf - Protocol Buffers - Google's data interchange format. [BSD]
- YAS - Very fast **Y**et **A**nother **S**erialization library supports the binary/text/json formats. [Boost]
- SimpleBinaryEncoding - encoding and decoding application messages in binary format for low-latency applications. [Apache2]
- upb - A small protobuf implementation in C. [BSD]
-
Asynchronous Event Loop
- C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] [website](http://actor-framework.org/)
- uvw - C++ wrapper for libuv. [MIT]
- libuv - Cross-platform asychronous I/O. [BSD]
- 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](http://think-async.com/)
-
Physics
- Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
- Project Chrono - An open source multi-physics simulation engine. [BSD-3-Clause] [website](https://projectchrono.org/)
- Chipmunk - A fast and lightweight 2D game physics library. [MIT] [website](https://chipmunk-physics.net/)
- Bullet - A 3D physics engine for games. [zlib] [website](http://bulletphysics.org)
- LiquidFun - A 2D physics engine for games. [BSD-like]
- Newton Dynamics - An integrated solution for real time simulation of physics environments. [zlib]
- PhysX - An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause]
- Box2D - A 2D physics engine for games. [BSD-like]
- ofxBox2d - openFrameworks wrapper for Box2D. [BSD-like]
- ODE - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
-
BitTorrent
- libtorrent - rasterbar) - An efficient feature complete C++ bittorrent implementation. [BSD]
- LibTorrent - rakshasa) - BitTorrent library. [GPL]
- libutp - uTorrent Transport Protocol library. [MIT]
- jech/dht - BitTorrent DHT library in C. [MIT]
-
CLI
- jarro2783/cxxopts - Lightweight C++ command line option parser. [MIT]
- docopt.cpp - A library to generate option parser from docstring. [MIT/Boost]
- termbox - A C library for writing text-based user interfaces. [MIT]
- Argh! - A minimalist, frustration-free, header-only argument handler. [BSD]
- linenoise - A small self-contained alternative to readline and libedit. [BSD-2-Clause]
- CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD]
- 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]
- Taywee/args - A simple header-only C++ argument parser library. [MIT]
- gflags - Commandline flags module for C++. [BSD]
- linenoise-ng - A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. [BSD]
- TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
- Ncurses - A terminal user interfaces. [MIT]
- Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost]
-
Containers
- sparsepp - A fast, memory efficient hash map for C++. [BSD 3-clause]
- Hashmaps - Implementation of open addressing hash table algorithms in C++. [MIT]
- 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](http://www.plflib.org/colony.htm)
- Hopscotch map - A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT]
- plf::list - A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant performance gains. [zLib] [website](http://www.plflib.org/list.htm)
- plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] [website](http://www.plflib.org/stack.htm)
- LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL]
- C++ B-tree - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
- ring_span lite - A simplified implementation of Arthur O'Dwyer's ring_span implementation ie. a circular buffer view. [MIT]
-
Sorting
- pdqsort - Pattern-defeating quicksort. [zlib]
-
Memory Allocation
-
Talks
- Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
-
Coding Style Tools
- Uncrustify - Code beautifier.
Categories
Miscellaneous
39
Build Systems
38
Networking
34
Frameworks
31
Math
29
Debug
25
JSON
23
Concurrency
21
Cryptography
21
Scripting
21
Database
21
Graphics
21
Other Awesome Projects
20
GUI
19
Compression
18
Game Engine
17
CLI
14
Image Processing
14
Integrated Development Environment
13
Websites
13
Machine Learning
13
Videos
13
Articles
12
Inter-process communication
12
Logging
12
Web Application Framework
11
Artificial Intelligence
11
Serialization
10
Physics
10
Multimedia
9
Containers
9
Compiler
8
Audio
8
Online Compiler
7
Static Code Analysis
7
XML
6
PDF
6
Scientific Computing
5
Biology
5
Coding Style
5
Standard Libraries
5
Regular Expression
5
Robotics
4
BitTorrent
4
Asynchronous Event Loop
4
Internationalization
4
Video
4
Virtual Machines
3
Debugger
3
Weblogs
3
Books
3
Memory Allocation
2
Talks
1
Coding Style Tools
1
API Design
1
Sorting
1
Sub Categories
Keywords
c-plus-plus
55
cpp
55
c
41
cross-platform
16
header-only
14
opengl
13
python
13
cplusplus
13
machine-learning
12
library
12
json
11
gamedev
10
game-development
10
game-engine
9
cpp17
9
graphics
9
cpp11
9
cpp14
8
vulkan
8
windows
7
modern-cpp
7
deep-learning
7
cryptography
7
engine
6
clang
6
http
6
neural-network
6
java
6
cuda
6
audio
6
rpc
5
c-plus-plus-11
5
linux
5
android
5
scientific-computing
5
performance
5
webserver
5
logging
5
embedded
5
crypto
5
awesome
5
ios
5
directx
5
websockets
5
d3d11
5
javascript
5
cmake
5
gpgpu
4
opencl
4
framework
4