8000 GitHub - vvvictorlee/awesome-cpp: A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff. · GitHub
[go: up one dir, main page]

Skip to content
  • About

    A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

    Resources

    Code of conduct

    Contributing

    Stars

    0 stars

    Watchers

    0 watching

    Forks

     
     

    Latest commit

     

    History

    958 Commits

    Folders and files

    Repository files navigation

    Awesome C++ Awesome

    A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

    Standard Libraries

    C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.

    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 ⚡ - 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 to C++03 some of the nifty C++11 goodies. [MIT]
    • Dlib ⚡ - 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 ⚡ - 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]
    • 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 asychronous I/O. [BSD]
    • 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]
    • Maximilian - C++ Audio and Music DSP Library. [MIT]
    • mini_al - Single file audio playback and capture library. [Unlicense]
    • OpenAL - Open Audio Library - A crossplatform audio API. [BSD/LGPL/Commercial]
    • Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
    • 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]

    Biology

    Bioinformatics, Genomics, Biotech

    • 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]
    • 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]
    • 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. [BSD]

    Compression

    Compression and Archiving Libraries

    • 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]
    • LZ4 - Extremely Fast Compression algorithm. [BSD]
    • 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 ⚡ - 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. [Unlicense]
    • 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]
    • 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]
    • 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]
    • 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]

    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
    • 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
    • ring_span lite - A simplified implementation of Arthur O'Dwyer's ring_span implementation ie. a circular buffer view. [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+]
    • libhydrogen - A lightweight, secure, easy-to-use crypto library for constrained environments. [ISC]
    • 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]
    • 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]

    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]
    • SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
    • SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
    • sqlite_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]
    • 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]
    • 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]
    • 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
    • Remotery - Single C File Profiler with Web Viewer. [Apache2]
    • UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]
    • utest.h - Single header unit testing framework for C and C++. [Unlicense]
    • VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.

    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]
    • 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]
    • 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]
    • KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] website
    • 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
    • Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] 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

    • 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]
    • 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

    • bgfx - A cross-platform rendering library. [BSD]
    • 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]
    • 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 ⚡ - 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
    • urho3d - Cross-platform rendering and game engine. [Many different, mostly 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]
    • 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]
    • 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 ⚡ - 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]
    • 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]

    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]
    • gRPC - A high performance, open source, general-purpose RPC framework. [BSD] website
    • 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
    • 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]
    • ZeroMQ - High-speed, modular asynchronous communication library. [LGPL]

    JSON

    • Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
    • frozen - JSON parser and generator for C/C++. [GPL & GPL2]
    • Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
    • jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
    • JeayeSON - A very sane (header only) C++ JSON library. [BSD]
    • json ⚡ - 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 ⚡ - Universal configuration library parser [?]
    • 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 ⚡ - A fast JSON parser/generator for C++ with both SAX/DOM style API. [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++ - Single header only, 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 C++ logging library. [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]
    • Caffe2 - A lightweight, modular, and scalable deep learning framework. [Apache2] website
    • CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
    • Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] 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 ⚡ - 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 - 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
    • 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]
    • 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]
    • 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]
    • 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]
    • NT2 - A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost]
    • 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]
    • 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
    • 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]

    Multimedia

    • GStreamer - A library for constructing graphs of media-handling components. [LGPL]
    • 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 ⚡ - Simple DirectMedia Layer. [zlib]
    • SFML ⚡ - Simple and Fast Multimedia Library. [zlib] website

    Networking

    • ACE - An OO Network Programming Toolkit in C++. [?MIT?]
    • Boost.Asio ⚡ - A cross-platform C++ library for network and low-level I/O programming. [Boost]
    • 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]
    • cpp-netlib - A collection of open-source libraries for high level network programming. [Boost]
    • 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]
    • 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 ⚡ - A http request/response parser for C. [MIT]
    • libcurl - Multiprotocol file transfer library. [MIT/X derivate license]
    • libjingle - Google talk voice and P2P interoperability library. [BSD]
    • libquic - A QUIC protocol library extracted from Chromium's QUIC Implementation. [BSD]
    • libwebsockets - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] website
    • Mongoose - Extremely lightweight webserver. [GPL2]
    • Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
    • nghttp2 - HTTP/2 C Library. [MIT] website
    • nope.c - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
    • Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
    • POCO ⚡ - 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]
    • 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]
    • uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
    • 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]

    PDF

    Libraries for parsing and manipulating PDF documents.

    • libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
    • 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]

    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]
    • Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]

    Regular Expression

    • CppVerbalExpressions - C++ regular expressions made easy. [MIT]
    • PCRE - A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
    • 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]

    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]
    • ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]

    Scientific Computing

    • 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

    • 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]
    • luacxx - C++11 API for creating Lua bindings. [MIT]
    • nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT]
    • pybind11 - Seamless operability between C++11 and Python. [BSD]
    • SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
    • 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

    • 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
    • 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]

    Sorting

    • 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
    • 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]
    • 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
    • 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]
    • 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]
    • 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 Enums - Reflective enums (to string, iteration). Single header. [BSD] website
    • 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]
    • {fmt} ⚡ - 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]
    • c-smart-pointers - Smart pointers for the (GNU) C programming language. [MIT]
    • cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
    • DynaPDF - An easy-to-use PDF generation library. [Commercial]
    • 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]
    • pdqsort - Pattern-defeating quicksort. [zlib]
    • PHP-CPP - A library to build PHP extensions with C++. [Apache2] website
    • 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]
    • Stage - Mobile robot simulator. [GPL2]
    • stdman Formatted C++11/14 stdlib man pages (from cppreference). [MIT]
    • stb ⚡ - 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.
    • Rise4Fun - Online Visual C++ compiler.
    • 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 ⚡ - 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]
    • cget - Cmake package retrieval used to download and install cmake packages. [Boost]
    • 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.
    • 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. [LGPLv2.1]
    • 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 - VC++ Packaging Tool for Windows.
    • waf - Python-based framework for configuring, compiling and installing applications. [BSD] website

    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.
    • 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.
    • List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.

    Coding Style Tools

    Resources

    Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.

    API Design

    Articles

    Fantastic C++ related articles.

    Books

    Fantastic C or C++ related books.

    Coding Style

    Podcasts

    • CppCast - The first podcast by C++ developers for C++ developers.

    Talks

    Videos

    Fantastic C or C++ related videos.

    Websites

    Useful C or C++ related websites.

    • Standard C++ ⚡ - 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.

    Other Awesome Projects

    Collection of useful codes, snippets, ...

    Other Awesome Lists

    Other amazingly awesome lists

    Contributing

    Please see CONTRIBUTING for details.

    About

    A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

    Resources

    Code of conduct

    Contributing

    Stars

    0 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    0