awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things.
https://github.com/DanylovskyiAM/awesome-cpp
Last synced: 4 days ago
JSON representation
-
Frameworks
- abseil-cpp - Abseil C++ Common Libraries. [Apache2]
- ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
- Boost - A large collection of generic C++ libraries. [Boost] [website](http://www.boost.org/)
- Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
- GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
- MiLi - Minimal headers-only C++ Library. [Boost]
- 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]
- uSTL - The small STL library. [MIT]
- Qt - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
- Qt - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
- ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
- BDE - The BDE Development Environment from Bloomberg Labs. [Apache2]
- Dlib - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost] [website](http://dlib.net/)
- 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]
- JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial] [website](http://www.juce.com/)
- 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]
- OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] [website](http://www.openframeworks.cc/)
- STLport - An exemplary version of STL. [Free]
- tbox - A glib-like multi-platform c library. [Apache2] [website](http://tboox.org/)
- Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes [Yomm11](https://github.com/jll63/yomm11) [Boost]
- Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
- Cxxomfort - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
- Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
-
Standard Libraries
- C++ Standard Library - A collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
- Standard Template Library - The Standard Template Library (STL).
- C POSIX library - A specification of a C standard library for POSIX systems.
- ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. [website](http://www.open-std.org/JTC1/SC22/WG21/)
- The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
-
Compression
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- PhysicsFS - A library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem. [zlib]
- KArchive - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
- ZLib - A very compact compression library for data streams. [zlib]
- LZ4 - Extremely Fast Compression algorithm. [BSD]
- 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]
- 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.
- libarchive - Multi-format archive and compression library. [New BSD] [website](http://www.libarchive.org/)
- LZFSE - LZFSE compression library and command line tool. Developed by Apple.
- smaz - Small strings compression library. [BSD]
- Snappy - A fast compressor/decompressor. [BSD]
- 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]
- LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
-
Audio
- KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
- mini_al - Single file audio playback and capture library. [Unlicense]
- Maximilian - C++ Audio and Music DSP Library. [MIT]
- SELA - SimplE Lossless Audio. [MIT]
- SoLoud - Easy, portable audio engine for games. [zlib]
- Tonic - Easy and efficient audio synthesis in C++. [Unlicense]
- minimp3 - Public domain, header-only MP3 decoder with clean-room implementation. [CC0]
- Speex - A free codec for free speech. Obsoleted by Opus. [BSD]
-
Biology
- Chaste - An open source C++ library for the computational simulation of mathematical models developed for physiology and biology. [BSD]
- libsequence - A C++ library for representing and analyzing population genetics data. [GPL]
- 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]
-
Concurrency
- OpenCL - The open standard for parallel programming of heterogeneous systems.
- alpaka - Abstraction library for parallel kernel acceleration. [LGPLv3+]
- ArrayFire - A general purpose GPU library. [BSD]
- Async++ - A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard proposal. [MIT]
- Boost.Compute - A C++ GPU Computing Library for OpenCL. [Boost]
- Bolt - A C++ template library optimized for GPUs. [Apache2]
- ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
- concurrentqueue - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
- 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 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]
- 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]
- readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++. [BSD]
- transwarp - A header-only C++ library for task concurrency. [MIT]
- VexCL - A C++ vector expression template library for OpenCL/CUDA. [MIT]
-
Cryptography
- GnuPG - A complete and free implementation of the OpenPGP standard. [GPL]
- Libgcrypt - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
- Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
- LibreSSL - A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
- Nettle - A low-level cryptographic library. [LGPL]
- 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+]
- Crypto++ - A free C++ class library of cryptographic schemes. [Boost] [website](http://www.cryptopp.com/)
- digestpp - C++11 header-only message digest (hash) library. [PublicDomain]
- 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]
- 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](https://tls.mbed.org/)
- Nettle - A low-level cryptographic library. [LGPL]
- OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] [website](http://www.openssl.org/)
- 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]
-
Database
- LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
- ODB - An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
- 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++ - 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]
- 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]
- 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]
- sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]
- TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] [website](https://tiledb.io/)
-
Debug
- CMocka - unit testing framework for C with support for mock objects. [Apache2]
- CTest - The CMake test driver program. [BSD]
- MemTrack - Tracking memory allocations in C++.
- microprofile - Profiler with web-view for multiple platforms. [PublicDomain]
- Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects.
- VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
- backward-cpp - A beautiful stack trace pretty printer for C++. [MIT]
- benchmark - Google provided small microbenchmark support library. [Apache2]
- 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]
- fff - A micro-framework for creating fake C functions. [MIT]
- 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]
- Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] [website](http://www.plflib.org/nanotimer.htm)
- 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]
- Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks.
-
Game Engine
- Banshee 3D - Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting. [LGPL3/Commercial]
- Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
- toy engine - toy is a thin and modular c++ game engine and offers simple expressive c++ idioms to design full featured 2D or 3D games in fast iterations.
- Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
- Atomic Game Engine - A multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript. [Commercial]
- Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
- 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](http://www.klayge.org/)
- OpenXRay - a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only]
- Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] [website](https://www.panda3d.org/)
- PixelGameEngine - The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. [OLC3]
- Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] [website](http://polycode.org/)
- Torque2D - An open-source and cross-platform C++ engine built for 2D game development. [MIT] [website](https://www.garagegames.com/products/torque-2d)
- Torque3D - An open-source C++ engine built for 3D game development. [MIT] [website](https://www.garagegames.com/products/torque-3d)
-
GUI
- CEGUI - Flexible, cross-platform GUI library.
- libRocket - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
- MyGUI - Fast, flexible and simple GUI. [MIT]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- CEGUI - Flexible, cross-platform GUI library.
- GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
- imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
- 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]
- 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]
- Yue - A library for creating native cross-platform GUI apps. [LGPLv2]
-
Image Processing
- CImg - A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
- CxImage - An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
- stb-image - STB single-header image loading library. [Public Domain]
- tesseract-ocr - An OCR engine. [Apache2]
- MagickWnd - ImageMagick program interfaces for C. [Apache2]
- GD - GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] [website](http://libgd.github.io/)
- libvips - A fast image processing library with low memory needs. [LGPL] [website](http://www.vips.ecs.soton.ac.uk/)
- OpenCV - Open source computer vision. [BSD]
- OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
- Simd - C++ image processing library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM. [MIT]
- TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
- Video++ - A C++14 high performance video and image processing library. [MIT]
- VIGRA - A generic C++ computer vision library for image analysis. [MIT X11]
- CxImage - An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
-
Internationalization
-
Inter-process communication
- Apache Thrift - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developed by Facebook. [Apache2]
- WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
- Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
- gRPC - A high performance, open source, general-purpose RPC framework. [BSD] [website](http://www.grpc.io/)
- Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more. [GPLv2]
- libjson-rpc-cpp - JSON-RPC framework for C++ servers and clients. [MIT]
- nanomsg - A simple high-performance implementation of several "scalability protocols". [MIT] [website](http://nanomsg.org/)
- nng - nanomsg-next-generation, a light-weight brokerless messaging library. [MIT] [website](https://nanomsg.github.io/nng/)
- rpclib - A modern C++ msgpack-RPC server and client library. [MIT]
- simple-rpc-cpp - A simple RPC wrapper generator to C/C++ functions. [BSD]
- WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
- Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
-
Logging
- templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
- P7Baical - An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU and memory. [LGPL]
- Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
- Easylogging++ - Single header only, extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] [website](https://muflihun.github.io/easyloggingpp)
- G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain]
- glog - C++ implementation of the Google logging module.
- log4cplus - A simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. [BSD & Apache2]
- loguru - A lightweight C++ logging library. [PublicDomain]
- plog - Portable and simple log for C++ in less than 1000 lines of code. [MPL2]
- reckless - Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
- spdlog - Super fast, header only, C++ logging library.
- templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
-
Math
- 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]
- 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]
- GMP - A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
- muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
- 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]
- Armadillo - A high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2] [website](http://arma.sourceforge.net/)
- 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]
- Apophenia - A C library for statistical and scientific computing [GPL2]
- blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
- 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](http://www.cgal.org/)
- Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
- GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT]
- LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] [website](http://www.libtom.net/)
- 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](http://www.openblas.net/)
- QuantLib - A free/open-source library for quantitative finance. [Modified BSD] [website](http://quantlib.org/)
- StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] [website](https://www.kthohr.com/statslib.html)
- 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).
- xtensor - A C++14 library for numerical analysis with multi-dimensional
-
Multimedia
- LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
- libVLC - libVLC (VLC SDK) media framework. [GPL]
- libav - A collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. [LGPL v2.1+ and others] [website](https://www.libav.org/)
- LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
- MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
- QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] [website](http://wang-bin.github.io/QtAV/)
- SFML - Simple and Fast Multimedia Library. [zlib] [website](http://www.sfml-dev.org/)
- TagLib - A library for reading and editing the metadata of several popular audio formats. [LGPL/MPL] [website](https://taglib.org/)
-
Networking
- ACE - An OO Network Programming Toolkit in C++. [?MIT?]
- Libmicrohttpd - GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application. [LGPL v2.1+]
- POCO - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] [website](http://pocoproject.org/)
- libjingle - Google talk voice and P2P interoperability library. [BSD]
- Silicon - A high performance, middleware oriented C++14 http web framework. [MIT]
- ACE - An OO Network Programming Toolkit in C++. [?MIT?]
- Breep - Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
- C++ REST SDK - C++ REST SDK (previously named Casablanca). [Apache2]
- Restbed - C++11 Asynchronous RESTful framework. [AGPL]
- c-ares - A C library for asynchronous DNS requests. [MIT]
- cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] [website](https://whoshuu.github.io/cpr/)
- curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT]
- Dyad.c - Asynchronous networking for C. [MIT]
- ENet - Reliable UDP networking library. [MIT] [website](http://enet.bespin.org/)
- 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]
- libpcap - A portable C/C++ library for network traffic capture. [BSD] [website](https://www.tcpdump.org/)
- 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](https://libwebsockets.org/)
- 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](https://nghttp2.org/)
- Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
- PicoHTTPParser - A tiny, primitive, fast HTTP request/response parser. [MIT]
- Proxygen - Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [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]
- Wangle - A client/server application framework to build asynchronous, event-driven modern C++ services. [Apache-2.0]
- wdt - An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause]
- WebSocket++ - C++/Boost Asio based websocket client/server library. [BSD]
-
PDF
- MuPDF - A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial]
- Poppler - Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3]
- Xpdf - Xpdf is a free PDF viewer and toolkit, including a text extractor, image converter, HTML converter, and more. [GPL v2/GPL v3]
- libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
- PoDoFo - A library to work with the PDF file format. [LGPL]
-
Robotics
-
Scientific Computing
- FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
- GSL - GNU scientific library. [GPL]
- AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT]
- 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](http://torch.ch/)
-
Video
- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
- x265 - Open h.265 video codec implementation. [GPL2] [website](https://x265.readthedocs.io/en/default/)
- libde265 - Open h.265 video codec implementation. [LGPL] [website](http://www.libde265.org/)
- OpenH264 - Open Source H.264 Codec. [BSD] [website](http://www.openh264.org/)
-
Web Application Framework
- Kore - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
- 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](https://cutelyst.org/)
- facil.io - Evented, high performance C web framework supporting HTTP, WebSockets, SSE and more. [MIT] [website](http://facil.io)
- lwan - Experimental, scalable, high performance HTTP server. [GPL2]
- oat++ - Light, zero-dependency framework to create high-performance web-services. [Apache-2.0] [website](https://oatpp.io/)
- QDjango - A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django's API, hence its name. [LGPL]
- TreeFrog Framework - High-speed and full-stack web application framework based on C++ and Qt, which supports HTTP and WebSocket protocol (with O/R mapping). [BSD] [website](http://www.treefrogframework.org/)
-
XML
- Expat - An XML parser library written in C. [MIT]
- Expat - An XML parser library written in C. [MIT]
- Mini-XML - A small XML parsing library written in ANSI C. [LGPL2 with exceptions]
- TinyXML2 - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
- TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
-
Miscellaneous
- libsigc++ - A typesafe callback system for standard C++. [LGPL]
- libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
- StrTk - A C++ library consisting of high performance string processing routines. [MIT]
- libsigc++ - A typesafe callback system for standard C++. [LGPL]
- casacore - A set of c++ core libraries derived from aips++. [LGPL]
- FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD]
- access_profiler - A tool to count accesses to member variables in c++ programs. [GPL3]
- Better Enums - Reflective enums (to string, iteration). Single header. [BSD] [website](http://aantron.github.io/better-enums/)
- DynaMix - A library which allows you to compose and modify objects at run time. [MIT]
- {fmt} - Small, safe and fast formatting library for C++. [Simplified BSD]
- 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]
- 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]
- meta - Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT]
- PEGTL - The Parsing Expression Grammar Template Library, a C++11 parser library. [MIT]
- PHP-CPP - A library to build PHP extensions with C++. [Apache2] [website](http://www.php-cpp.com/)
- 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]
- SimpleSignal - High performance C++11 signals. [PublicDomain]
- Stage - Mobile robot simulator. [GPL2]
- stdman
- stb - A range of single-file libraries for C/C++. [PublicDomain]
- 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
- VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
- Remote Call Framework - Inter-process communication framework for C++. [GPL2/Commercial]
-
Compiler
- GCC - GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
- PCC - A very old C compiler. Supports C99.
- 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]
- 8cc - A Small C Compiler.
- c - Compile and execute C "scripts" in one go! [MIT]
- Microsoft Visual C++ - MSVC, developed by Microsoft.
-
Online Compiler
- codepad - An online compiler/interpreter, and a simple collaboration tool.
- coliru - Online compiler/shell with support for various C++ compilers.
- Rise4Fun - Online Visual C++ compiler.
- Try It Online - TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages.
- Wandbox - An online Clang/GCC compiler with Boost available.
- coliru - Online compiler/shell with support for various C++ compilers.
- CompileOnline - Compile and Execute C++ online on Linux.
-
Debugger
- Comparison of debuggers - A list of Debuggers from Wikipedia.
- GDB - GNU Debugger.
-
Integrated Development Environment
- Anjuta DevStudio - The GNOME IDE. [GPL3]
- IBM VisualAge - A family of computer integrated development environments from IBM.
- Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
- YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
- Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
- color_coded - A vim plugin for libclang-based highlighting. [MIT]
- Irony-mode - A C/C++ minor mode for Emacs powered by libclang.
- juCi++ - Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
- rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
- Xcode - Developed by Apple.
-
Build Systems
- 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]
- Ninja - A small build system with a focus on speed.
- Sconsolidator - Scons build system integration for Eclipse CDT.
- Spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers. [Apache-2.0/MIT]
- waf - Python-based framework for configuring, compiling and installing applications. [BSD] [website](https://waf.io/)
- XMake - A C/C++ cross-platform build utility based on Lua. [Apache]
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- Bazel - A multi-language, fast and scalable build system from Google. [Apache]
- Bear - A tool to generate compilation database for clang tooling. [GPLv3]
- clib - Package manager for the C programming language. [MIT]
- C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
- Cget - Cmake package retrieval. [Boost] [website](http://cget.readthedocs.io)
- CPM - A C++ Package Manager based on CMake and Git.
- tundra - High-performance code build system designed to give the best possible incremental build times even for very large software projects.
- Vcpkg - VC++ Packaging Tool for Windows.
- Scons - A software construction tool configured with a Python script.
-
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.
- Infer - A static analyzer for Java, C and Objective-C. [BSD]
- cpplint - A C++ style checker following Google's C++ style guide.
- 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](https://include-what-you-use.org/)
- Cppcheck - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
-
API Design
-
Books
- List of Free C or C++ Books
- Free C++ Books - vhf/free-programming-books/C++.
- cppbestpractices - Collaborative Collection of C++ Best Practices.
-
Websites
- Standard C++ - News, Status & Discussion about Standard C++.
- C++ FAQ - C++ frequently asked questions.
- C++ FQA Lite - C++ frequently questioned answers.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- 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.
- C++ reference - C++98, C++03, C++11, C++14 reference.
- C++ FAQ - C++ frequently asked questions.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
- C++ reference - C++98, C++03, C++11, C++14 reference.
-
Coding Style
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- C++ Core Guidelines - "Official" set of C++ guidelines, reviewed by the author of C++.
- google-styleguide - Style guides for Google-originated open-source projects.
-
Videos
- List of C or C++ YouTube Videos
- Awesome C Programming Tutorials in Hi Def [HD - A collection of detailed C Programming Language Tutorials for Beginners and New Programmers.
- C++ - by VoidRealms.
- C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
- C++ Programming Tutorials from thenewboston - These are all of thenewboston's C++ programming tutorials.
- C++ GUI with Qt Playlist - Official Playlist for thenewboston C++ GUI with Qt tutorials.
- C Programming Tutorials - All of TheNewBoston's C programming tutorials are right here.
-
Weblogs
- Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
- Eric Niebler
- Sticky Bits
-
Other Awesome Projects
- awesome-awesomeness - A curated list of awesome awesomeness.
- Awesome C++ - LibHunt's mirror.
- Awesome C
- papers-we-love - Papers from the computer science community to read and discuss.
- awesome-algorithms - A curated list of awesome places to learn and/or practice algorithms.
- awesome-talks - A lot of screencasts, recordings of user group gatherings and conference talks.
- CONTRIBUTING
- algorithms - Algorithms & Data Structures in C++.
- c-algorithms - C algorithms library.
- lists - List of (awesome) lists curated on GitHub.
- awesome - A curated list of awesome lists.
- C++ links - A categorized list of C++ resources.
- Awesome C
- AwesomePerfCpp - A curated list of awesome C/C++ performance optimization resources.
- free-programming-books - List of Freely Available Programming Books.
- Projects - A list of practical projects that anyone can solve in any programming language.
- Awesome interview questions - A list of lists of interview questions for the most popular technologies, including C and C++.
-
Serialization
- upb - A small protobuf implementation in C. [BSD]
- Bond - An open source, cross-platform framework for working with schematized data. [MIT]
- 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](http://msgpack.org/)
- 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]
- YAS - Very fast **Y**et **A**nother **S**erialization library supports the binary/text/json formats. [Boost]
-
Scripting
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
- cppimport - Import C++ files directly from Python! [MIT]
- CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
- 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](http://cython.org/)
- djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
- Duktape - An embeddable Javascript engine with compact footprint. [MIT] [website](http://duktape.org)
- JavaCpp - The missing bridge between Java and native C++. [Apache2]
- libffi - A portable foreign-function interface library. [MIT] [website](https://sourceware.org/libffi/)
- LuaBridge - A lightweight, dependency-free library for binding Lua to C++. [MIT]
- luacxx - C++11 API for creating Lua bindings. [MIT]
- nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT]
- pybind11 - Seamless operability between C++11 and Python. [BSD]
- sol2 - A C++ <-> Lua API wrapper with advanced features and top notch performance. [MIT]
- SWIG - A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed] [website](http://www.swig.org/)
- V7 - An embedded JavaScript engine. [GPL2]
- ChakraCore - A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
-
Graphics
- Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
- assimp - Open Asset Import Library (assimp) is a cross-platform 3D model import library which aims to provide a common API for different 3D asset file formats. [BSD-3-Clause] [website](http://www.assimp.org)
- bgfx - A cross-platform rendering library. [BSD]
- bs::framework - Modern C++14 library for the development of real-time graphical applications. [MIT]
- 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](http://simonrodriguez.fr/dragon/)
- 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](https://google.github.io/ion/)
- libigl - Simple C++ geometry processing library. [MPL2]
- magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] [website](http://magnum.graphics)
- NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
- OpenSubdiv - Pixar's library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
- 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](https://sites.google.com/site/skiadocs/home)
- TinySpline - A small, yet powerful ANSI C library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and Bézier curves. [MIT]
- urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT]
- Yocto/GL - Tiny C++ Libraries for Data-Driven Physically-based Graphics. [MIT]
-
Artificial Intelligence
- ANNetGPGPU - A GPU (CUDA) based Artificial Neural Network library. [LGPL]
- btsk - Game Behavior Tree Starter Kit. [zlib]
- 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](http://think-async.com/)
- C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] [website](http://actor-framework.org/)
- libuv - Cross-platform asychronous I/O. [BSD]
- uvw - C++ wrapper for libuv. [MIT]
-
BitTorrent
- jech/dht - BitTorrent DHT library in C. [MIT]
- libtorrent - rasterbar) - An efficient feature complete C++ bittorrent implementation. [BSD]
- LibTorrent - rakshasa) - BitTorrent library. [GPL]
- libutp - uTorrent Transport Protocol library. [MIT]
-
CLI
- Argh! - A minimalist, frustration-free, header-only argument handler. [BSD]
- Taywee/args - A simple header-only C++ argument parser library. [MIT]
- CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD]
- jarro2783/cxxopts - Lightweight C++ command line option parser. [MIT]
- docopt.cpp - A library to generate option parser from docstring. [MIT/Boost]
- gflags - Commandline flags module for C++. [BSD]
- linenoise - A small self-contained alternative to readline and libedit. [BSD-2-Clause]
- linenoise-ng - A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. [BSD]
- PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
- replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints, works on Unix and Windows. [BSD]
- TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
- termbox - A C library for writing text-based user interfaces. [MIT]
- Ncurses - A terminal user interfaces. [MIT]
-
Containers
- Colony - An unordered "bag"-type container which outperforms std containers in high-modification scenarios while maintaining permanent pointers to non-erased elements regardless of insertion/erasure. [zLib] [website](http://www.plflib.org/colony.htm)
- 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](http://www.plflib.org/list.htm)
- plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] [website](http://www.plflib.org/stack.htm)
- sparsepp - A fast, memory efficient hash map for C++. [BSD 3-clause]
-
JSON
- frozen - JSON parser and generator for C/C++. [GPL & GPL2]
- Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
- jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
- JeayeSON - A very sane (header only) C++ JSON library. [BSD]
- Jsmn - A minimalistic JSON parser in C. [MIT]
- json - 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]
- 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]
- LIBUCL - Universal configuration library parser [BSD-2-Clause]
- PicoJSON - A header-file-only, JSON parser serializer in C++. [BSD]
- 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]
- sajson - Lightweight, extremely high-performance JSON parser for C++11. [MIT]
- ujson - µjson is a a small, C++11, UTF-8, JSON library. [MIT]
- YAJL - A fast streaming JSON parsing library in C. [ISC]
- libjson - Lightweight JSON library. [?]
-
Machine Learning
- Caffe - A fast framework for neural networks. [BSD]
- Caffe2 - A lightweight, modular, and scalable deep learning framework. [Apache2] [website](https://caffe2.ai/)
- 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](http://fidoproject.github.io/)
- MeTA - A modern C++ data sciences toolkit. [MIT] [website](https://meta-toolkit.org/)
- Minerva - A fast and flexible system for deep learning. [Apache2]
- mlpack - A scalable c++ machine learning library. [LGPLv3] [website](http://www.mlpack.org/)
- 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]
- VLFeat - The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. [BSD-2-Clause] [website](http://www.vlfeat.org/)
- 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]
- sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]
-
Memory Allocation
-
Physics
- Box2D - A 2D physics engine for games. [BSD-like]
- Bullet - A 3D physics engine for games. [zlib] [website](http://bulletphysics.org)
- Chipmunk - A fast and lightweight 2D game physics library. [MIT] [website](https://chipmunk-physics.net/)
- 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]
- PhysX - An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause]
- Project Chrono - An open source multi-physics simulation engine. [BSD-3-Clause] [website](https://projectchrono.org/)
- 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]
- CTRE - A Compile time PCRE (almost) compatible regular expression matcher. [MIT]
- RE2 - A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
- SLRE - Super Light Regexp engine for C/C++. [GPLv2/Commercial]
- sregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD]
-
Sorting
- pdqsort - Pattern-defeating quicksort. [zlib]
-
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]
-
Coding Style Tools
- Uncrustify - Code beautifier.
-
Articles
- CppCon 2018 Presentation Materials - CppCon 2018 Presentation Materials.
- CppCon 2017 Presentation Materials - CppCon 2017 Presentation Materials.
- CppCon 2016 Presentation Materials - CppCon 2016 Presentation Materials.
- CppCon 2015 Presentation Materials - CppCon 2015 Presentation Materials.
- CppCon 2014 Presentation Materials - CppCon 2014 Presentation Materials.
- C++Now 2018 Presentations - Presentation materials presented at C++Now 2018.
- C++Now 2017 Presentations - Presentation materials presented at C++Now 2017.
- C++Now 2016 Presentations - Presentation materials presented at C++Now 2016.
- C++Now 2015 Presentations - Presentation materials presented at C++Now 2015.
- C++Now 2014 Presentations - Presentation materials presented at C++Now 2014.
- C++Now 2013 Presentations - Presentation materials presented at C++Now 2013.
- C++Now 2012 Presentations - Presentation materials presented at C++Now 2012.
-
Talks
- Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
Categories
Build Systems
38
Miscellaneous
36
Networking
32
Frameworks
30
Math
25
Debug
24
JSON
22
Cryptography
21
Concurrency
20
Graphics
19
Database
19
Scripting
19
Compression
18
Game Engine
17
Other Awesome Projects
17
GUI
15
Image Processing
14
Machine Learning
13
CLI
13
Websites
13
Logging
12
Inter-process communication
12
Articles
12
Web Application Framework
11
Serialization
10
Artificial Intelligence
10
Integrated Development Environment
10
Physics
9
Multimedia
8
Audio
8
Containers
7
Videos
7
Compiler
7
Online Compiler
7
Static Code Analysis
6
XML
5
Standard Libraries
5
Coding Style
5
Regular Expression
5
Scientific Computing
5
PDF
5
Video
4
BitTorrent
4
Asynchronous Event Loop
4
Internationalization
4
Biology
4
Weblogs
3
Virtual Machines
3
Books
3
Memory Allocation
2
Robotics
2
Debugger
2
Sorting
1
API Design
1
Coding Style Tools
1
Talks
1
Sub Categories
Keywords
cpp
56
c-plus-plus
55
c
42
cross-platform
16
header-only
15
cplusplus
13
opengl
13
python
13
library
12
machine-learning
12
json
11
game-development
10
gamedev
10
cpp11
10
cpp17
10
game-engine
9
cpp14
9
graphics
9
vulkan
8
cryptography
8
deep-learning
7
windows
7
modern-cpp
7
audio
6
cuda
6
crypto
6
http
6
neural-network
6
clang
6
engine
6
java
6
awesome
5
javascript
5
c-plus-plus-11
5
embedded
5
linux
5
websockets
5
rpc
5
ios
5
cmake
5
android
5
scientific-computing
5
performance
5
logging
5
d3d11
5
directx
5
webserver
5
opencl
4
webgl
4
networking
4