awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things.
https://github.com/DanylovskyiAM/awesome-cpp
Last synced: 10 days ago
JSON representation
-
API Design
-
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.
-
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]
- Evolving Objects - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
-
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]
-
Audio
- KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
- 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]
- Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
- mini_al - Single file audio playback and capture library. [Unlicense]
- Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [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]
- BioC++ - C++ Computational Libraries for Bioinformatics. [BSD]
-
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]
-
Books
- List of Free C or C++ Books
- Free C++ Books - vhf/free-programming-books/C++.
- cppbestpractices - Collaborative Collection of C++ Best Practices.
-
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.
-
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]
-
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.
-
Coding Style Tools
- Uncrustify - Code beautifier.
- Artistic Style - A tool to format C/C++/C#/Obj-C/Java code. Also known as astyle.
-
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.
- Intel C++ Compiler - Developed by Intel.
-
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]
- LZMAT - An extremely fast real-time lossless data compression library. [GPL]
- 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]
- miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [Unlicense]
- LZMA - The default and general compression method of 7z format. [PublicDomain]
- Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
- LZ4 - Extremely Fast Compression algorithm. [BSD]
-
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]
- Cpp-Taskflow - Fast C++ Parallel Programming with Task Dependencies. [MIT]
- Intel Parallel STL - Intel® implementation of C++17 STL for C++11 and above. [Apache2]
- libdill - Introduces structured concurrency in C. [MIT]
- libdispatch - Grand Central Dispatch (GCD), developed by Apple Inc., is a task parallelism technology based on the thread pool pattern. libdispatch is a library that provides the implementation of GCD's services. [Apache-2.0] [website](https://apple.github.io/swift-corelibs-libdispatch/)
-
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]
- C++ B-tree - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
- ring_span lite - A simplified implementation of Arthur O'Dwyer's ring_span implementation ie. a circular buffer view. [MIT]
-
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+]
- LibreSSL - A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
- Nettle - A low-level cryptographic library. [LGPL]
- Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
- 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.
- 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]
- s2n - An implementation of the TLS/SSL protocols. [Apache]
-
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]
Categories
Miscellaneous
40
Build Systems
38
Networking
33
Frameworks
31
Math
27
Debug
26
Concurrency
24
GUI
24
JSON
24
Cryptography
21
Graphics
21
Compression
20
Database
20
Scripting
20
Other Awesome Projects
18
Game Engine
17
Image Processing
16
Websites
14
Logging
13
Inter-process communication
13
CLI
13
Machine Learning
13
Integrated Development Environment
12
Articles
12
Artificial Intelligence
11
Web Application Framework
11
Serialization
10
Physics
10
Audio
10
Multimedia
9
Containers
9
XML
9
Videos
8
Compiler
8
Online Compiler
7
PDF
6
Static Code Analysis
6
Biology
5
Video
5
Standard Libraries
5
Coding Style
5
Scientific Computing
5
Regular Expression
5
Robotics
4
BitTorrent
4
Asynchronous Event Loop
4
Internationalization
4
Weblogs
3
Debugger
3
Virtual Machines
3
Books
3
Memory Allocation
2
Coding Style Tools
2
API Design
1
Sorting
1
Talks
1
Sub Categories
Keywords
c-plus-plus
55
cpp
55
c
41
cross-platform
16
header-only
14
opengl
13
python
13
cplusplus
13
machine-learning
12
library
12
json
11
gamedev
10
game-development
10
game-engine
9
cpp17
9
graphics
9
cpp11
9
cpp14
8
vulkan
8
windows
7
modern-cpp
7
deep-learning
7
cryptography
7
engine
6
clang
6
http
6
neural-network
6
java
6
cuda
6
audio
6
rpc
5
c-plus-plus-11
5
linux
5
android
5
scientific-computing
5
performance
5
webserver
5
logging
5
embedded
5
crypto
5
awesome
5
ios
5
directx
5
websockets
5
d3d11
5
javascript
5
cmake
5
gpgpu
4
opencl
4
framework
4