C and C++ Language
C and C++ are general-purpose, procedural computer programming languages supporting structured programming, lexical variable scope, and recursion, with a static type system. By design they provide constructs that map efficiently to typical machine instructions. They have found lasting use in applications previously coded in assembly language. Such applications include operating systems and various application software for computer architectures that range from supercomputers to PLCs and embedded systems.
Standard Libraries
- Standard Template Library - The Standard Template Library (STL).
- C POSIX library - A specification of a C standard library for POSIX systems.
- ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. website
- The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
Frameworks
- abseil-cpp - Abseil C++ Common Libraries. [Apache2]
- Apache C++ Standard Library - STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [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]
- 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]
- EASTL - Electronic Arts Standard Template Library. [BSD]
- 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]
- 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]
- 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]
- 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]
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]
- 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
- 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
- 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
- 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
- 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
- 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]
- 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]
- 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
- alpaka - Abstraction library for parallel kernel acceleration. [LGPLv3+]
- Fire - 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
- 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::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
- 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]
- 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. [?]
- Nettle - A low-level cryptographic library. [LGPL]
Database
- 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]
- 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]
Debug
- 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]
- CMocka - unit testing framework for C with support for mock objects. [Apache2]
- CppUnit - C++ port of JUnit. [LGPL2]
- 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++.
- 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.
- 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
- 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]
- Flounder - A high speed C++17 Vulkan game engine. [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]
- Oxygine - A cross-platform 2D C++ game engine. [MIT]
- Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
GUI
- 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]
- Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
- libigl - Simple C++ geometry processing library. [MPL2]
- 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]
- 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]
- FreeImage - An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPL2 or GPL3]
- DCMTK - DICOM Toolkit.
- GDCM - Grassroots DICOM library.
- ITK - An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
- 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]
- libjson-rpc-cpp - JSON-RPC framework for C++ servers and clients. [MIT]
- simple-rpc-cpp - A simple RPC wrapper generator to C/C++ functions. [BSD]
- 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]
- 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]
- CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
- Minerva - A fast and flexible system for deep learning. [Apache2]
- 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]
- 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]
- blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
- Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost]
- ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
- cml - free C++ math library for games and graphics. [Boost]
- 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]
- 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]
- 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]
- MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
- SDL ⚡ - Simple DirectMedia Layer. [zlib]
Networking
- 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]
- curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT]
- Dyad.c - Asynchronous networking for C. [MIT]
- evpp - C++ high performance networking with TCP/UDP/HTTP protocols. [BSD]
- HTTP Parser ⚡ - A http request/response parser for C. [MIT]
- libcurl - Multiprotocol file transfer library. [MIT/X derivate license]
- 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]
- 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]
- 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]
- 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
- 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
- Box2D - A 2D physics engine for games. [BSD-like]
- LiquidFun - A 2D physics engine for games. [BSD-like]
- Newton Dynamics - An integrated solution for real time simulation of physics environments. [zlib]
- 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]
- Robotics Library (RL) - A self-contained C++ library for robot kinematics, motion planning and control. [BSD]
- 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]
- Trilinos - High performance PDE solvers. [BSD]
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]
- djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
- JavaCpp - The missing bridge between Java and native C++. [Apache2]
- Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
- 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]
- 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]
- 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]
- 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]
Miscellaneous
- 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]
- 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]
- 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]
- Mach7 - A Pattern-matching library for C++. [BSD]
- pdqsort - Pattern-defeating quicksort. [zlib]
- Remote Call Framework - Inter-process communication framework for C++. [GPL2/Commercial]
- 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]
- ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
- 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]
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]
- Intel C++ Compiler - Developed by Intel.
- LLVM - Collection of modular and reusable compiler and toolchain technologies.
- TCC - Tiny C Compiler. [LGPL]
Online Compilers
- codepad - An online compiler/interpreter, and a simple collaboration tool.
- CodeTwist - A simple online compiler/interpreter, where you can paste your C, C++ or Java code and execute it online and see results.
- 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.
- Wandbox - An online Clang/GCC compiler with Boost available.
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/x86 debugger for windows.
Integrated Development Environment
- 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]
- 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.
- 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]
- 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.
Static Code Analysis
- 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]
- 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
- Clang-Tidy - Clang-based C++ linter tool.
- Uncrustify - Code beautifier.
API Design
Coding Style
- C++ Dos and Don'ts - The Chromium Projects > For Developers > Coding Style > C++ Dos and Don'ts.
Videos
- C++ - by VoidRealms.
- C++ Qt Programming - by VoidRealms.
- C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
- C++ Programming Tutorials from thenewboston - These are all of thenewboston's C++ programming tutorials.
- C++ GUI with Qt Playlist - Official Playlist for thenewboston C++ GUI with Qt tutorials.
- C Programming Tutorials - All of TheNewBoston's C programming tutorials are right here.
- Bo Qian's playlist - Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, …
Websites
- 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.
- C++ Quiz - C++ quiz in which you propose to find errors in code fragments of open source projects.
- 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
- Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
- ridiculousfish - Will It Optimize?