awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
https://github.com/fffaraz/awesome-cpp
Last synced: 12 days ago
JSON representation
-
API Design
-
Articles
- CppCon 2023 Presentation Materials - CppCon 2023 Presentation Materials.
- CppCon 2022 Presentation Materials - CppCon 2022 Presentation Materials.
- CppCon 2021 Presentation Materials - CppCon 2021 Presentation Materials.
- CppCon 2020 Presentation Materials - CppCon 2020 Presentation Materials.
- CppCon 2019 Presentation Materials - CppCon 2019 Presentation Materials.
- 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 2023 Presentations - Presentation materials presented at C++Now 2023.
- C++Now 2022 Presentations - Presentation materials presented at C++Now 2022.
- C++Now 2021 Presentations - Presentation materials presented at C++Now 2021.
- C++Now 2019 Presentations - Presentation materials presented at C++Now 2019.
- 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.
- cpp17_in_TTs - Descriptions of C++17 features, presented mostly in "Tony Tables".
- All C++20 core language features with examples - A reference of all C++20 core language features with examples.
- Memory Footprint of GUI Toolkits - A comparison of the memory footprint of various GUI toolkits.
- C++ UI Libraries - A comprehensive list of C++ UI solutions.
- C++ Compilation - A short description of the C++ compilation process.
- Books on C++17 - A list of books on C++17.
- modern-cpp-features - A cheatsheet of modern C++ language and library features.
- Choosing Some C++ Over C - An article about when to use C++ instead of C.
- C++ 17 Features - A comprehensive list of C++17 features.
- Master C Programming with Open Source Books - A curated list of open source books for learning C programming.
-
Artificial Intelligence
- Evolving Objects - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
- 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]
- MXNet - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, JavaScript and more. [website](https://mxnet.apache.org)
- PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration. [website](https://pytorch.org)
- flashlight - Flashlight is a fast, flexible machine learning library written entirely in C++. [BSD]
- 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]
- Txeo - A modern C++ wrapper for TensorFlow. [Apache]
- oneDNN - An open-source cross-platform performance library for deep learning applications. [Apache] [website](https://01.org/onednn)
- 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]
- cpp-mcp - Lightweight C++ MCP (Model Context Protocol) SDK. [MIT]
-
Asynchronous Event Loop
- libevent - An event notification library. [BSD]
- Asio - A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] [website](http://think-async.com/)
- Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost] [website](https://boost.org/libs/asio)
- C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] [website](http://actor-framework.org/)
- Ichor - An event queue which focuses on thread safety and provides dependency injection. [MIT]
- libhv - Cross-platform event loop library. [BSD]
- libuv - Cross-platform asynchronous I/O. [BSD]
- promise-cpp - Header only library that implements Promise/A+ standard. [Anti-996]
- uvw - C++ wrapper for libuv. [MIT]
- uv-cpp - a simple interface, high-performance network library based on C++11. [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/Proprietary]
- LAME - LAME is a high quality MPEG Audio Layer III (MP3) encoder. [LGPL]
- Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
- PortAudio - PortAudio is a free, cross-platform, open-source, audio I/O library. [MIT]
- Speex - A free codec for free speech. Obsoleted by Opus. [BSD]
- Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
- Amplitude Audio SDK - A cross-platform audio engine designed with the needs of games in mind. [Apache-2.0] [website](https://amplitudeaudiosdk.com)
- Aubio - A library for audio and music analysis.[GPL-3.0] [website](https://aubio.org/)
- AudioFile - A simple C++ library for reading and writing audio files. [MIT]
- audioFlux - A C library for audio and music analysis, feature extraction. [MIT]
- dr_libs - Single file audio decoding libraries for C and C++. [Unlicense]
- libsoundio - C library for cross-platform real-time audio input and output. [MIT] [website](http://libsound.io/)
- Maximilian - C++ Audio and Music DSP Library. [MIT]
- miniaudio - Single file audio playback and capture library. [Unlicense] [website](https://miniaud.io/)
- ni-media - C++ library for reading and writing audio files. [MIT]
- rnnoise - Recurrent neural network for audio noise reduction. [BSD-3-Clause]
- 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]
- Verovio - Verovio is a fast and lightweight music notation engraving library. [LGPL] [website](https://www.verovio.org)
- Wav2Letter++ - Public domain, a fast open source speech processing toolkit written entirely in C++ and uses the ArrayFire tensor library and the flashlight machine learning library for maximum efficiency. [BSD]
- PocketSphinx - A lightweight speech recognition engine. [BSD-2-Clause] [website](https://cmusphinx.github.io/)
- Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
- Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
-
Biology
- BioC++ - C++ Computational Libraries for Bioinformatics. [BSD]
- Chaste - An open source C++ library for the computational simulation of mathematical models developed for physiology and biology. [BSD]
- SeqAn - Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause]
- 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]
- htslib - A C library for reading/writing high-throughput sequencing data. [MIT/BSD] [website](http://www.htslib.org/)
-
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
- Free C++ Books - vhf/free-programming-books/C++.
- cppbestpractices - Collaborative Collection of C++ Best Practices.
- Practical Guide to Bare Metal C++
-
Build Systems
- build2 - cross-platform build, packaging and dependency management toolchain for developing and packaging C/C++ projects. [MIT]
- CMake - Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
- Conan - C/C++ Package Manager, open sourced. [MIT]
- FASTBuild - High performance, open-source build system supporting highly scalable compilation, caching and network distribution.
- 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]
- SW - Cross-platform C++ (and other langs) Build System and Package Manager with a lot of packages available. [GPLv3]
- tup - File-based build system that monitors in the background for changed files.
- Premake - A tool configured with a Lua script to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux.
- XMake - A C/C++ cross-platform build utility based on Lua. [Apache]
- Ccache - A fast C/C++ compiler cache. [GPLv3]
- Bazel - A multi-language, fast and scalable build system from Google. [Apache]
- Bear - A tool to generate compilation database for clang tooling. [GPLv3]
- Buck - A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages including C++ developed and used at Facebook. Written in Java. [Apache]
- clib - Package manager for the C programming language. [MIT]
- Cget - Cmake package retrieval. [Boost] [website](http://cget.readthedocs.io)
- CPM - A C++ Package Manager based on CMake and Git.
- Sccache - A fast compiler cache for C/C++, with cross-platform support and cloud backed storage options.
- Sconsolidator - Scons build system integration for Eclipse CDT.
- tundra - High-performance code build system designed to give the best possible incremental build times even for very large software projects.
- Vcpkg - C++ library manager for Windows, Linux, and MacOS. [MIT]
- waf - Python-based framework for configuring, compiling and installing applications. [BSD] [website](https://waf.io/)
- Scons - A software construction tool configured with a Python script.
- awesome-cmake - A curated list of awesome CMake scripts, modules, and resources.
- boost-cmake - CMake modules for Boost libraries. [BSD-3-Clause]
- cmake-examples - A collection of useful CMake examples for various scenarios. [MIT]
-
Chemistry
- d-SEAMS - A molecular dynamics trajectory analysis engine in C++ and Lua with Nix. It is an acronym for Deferred Structural Elucidation Analysis for Molecular Simulations. [GPL] [website](https://dseams.info)
- gromacs - A message-passing parallel molecular dynamics implementation. [GPL] [website](http://www.gromacs.org)
- Reaktoro - A computational framework in C++ and Python for modeling chemically reactive systems. [LGPL] [website](https://reaktoro.org)
- LAMMPS - A classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. [GPL] [website](https://lammps.sandia.gov/)
- MADNESS - Multiresolution Adaptive Numerical Environment for Scientific Simulation. [GPL] [website](https://github.com/m-a-d-n-e-s-s/madness)
- MPQC - The Massively Parallel Quantum Chemistry program, MPQC, computes properties of atoms and molecules from first principles using the time independent Schrödinger equation. [GPL] [website](https://mpqc.org/)
- Psi - An ab initio computational chemistry package. [GPL] [website](https://psicode.org/)
-
CLI
- Ncurses - A terminal user interface. [MIT]
- TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
- Argh! - A minimalist, frustration-free, header-only argument handler. [BSD]
- argparse - Argument Parser for Modern C++. [MIT]
- args - A simple header-only C++ argument parser library. [MIT]
- Argy - Command-Line Argument Parsing Library for Modern C++ — Simple, Intuitive, and Header-only with Zero Dependencies [MIT]
- barkeep - Small C++ header to display async animations, counters, and progress bars. [Apache-2.0] [website](https://oir.github.io/barkeep/)
- Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost] [website](https://boost.org/libs/program_options)
- cli - A cross-platform header only C++14 library for interactive command line interfaces (Cisco style). [Boost]
- CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD]
- clipp - Easy to use, powerful and expressive command line argument handling for C++11/14/17 contained in a single header file. [MIT]
- cpp-terminal - Small header only C++ library for writing multiplatform terminal applications. [MIT]
- Ctrl+C - Crossplatform C++11 library to handle Ctrl+C event in custom functions. [MIT]
- cxxopts - Lightweight C++ command line option parser. [MIT]
- docopt.cpp - A library to generate option parser from docstring. [MIT/Boost]
- FINAL CUT - Library for creating terminal applications with text-based widgets. [LGPL]
- FTXUI - C++ Functional Terminal User Interface. [MIT]
- gflags - Commandline flags module for C++. [BSD]
- imtui - Immediate Mode Text-based User Interface. [MIT]
- 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]
- Lyra - A simple to use, composable, command line parser for C++ 11 and beyond. [Boost]
- oof - Convenient, high-performance RGB color and position control for console output. [MIT]
- PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
- popl - A single-header templated command line arguments and ini file parser for C++ 11 and beyond. [MIT]
- replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints, works on Unix and Windows. [BSD]
- tabulate - Table Maker for Modern C++. [MIT]
- 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]
- TermOx - C++17 Terminal User Interface(TUI) Library. [MIT]
- tuibox - A single-header terminal UI (TUI) library, capable of creating mouse-driven, interactive applications on the command line. [MIT]
- Ncurses - A terminal user interface. [MIT]
- Ginseng - A C++ command-line argument parser. [MIT]
- Crossline - A small, self-contained, zero-config, MIT licensed, cross-platform, readline and libedit replacement. [MIT]
- indicators - Activity indicators for Modern C++. [MIT]
-
Coding Standards
-
Coding Style
- C++ Dos and Don'ts - The Chromium Projects > For Developers > Coding Style > C++ Dos and Don'ts.
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- LLVM Coding Standards
- 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
- Artistic Style - A tool to format C/C++/C#/Obj-C/Java code. Also known as astyle.
- ClangFormat - A tool to format C/C++/Obj-C code.
- Clang-Tidy - Clang-based C++ linter tool.
- EditorConfig - EditorConfig helps maintain consistent coding styles across different editors and IDEs.
- 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.
- Intel C++ Compiler - Developed by Intel.
- Microsoft Visual C++ - MSVC, developed by Microsoft.
- Open WatCom - Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
- Oracle Solaris Studio - C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN Developer License]
- 8cc - A Small C Compiler.
- c - Compile and execute C "scripts" in one go! [MIT]
- Fil-C - a fanatically compatible memory-safe implementation of C and C++.
- PCC - A very old C compiler. Supports C99.
Programming Languages
Categories
Miscellaneous
107
Networking
70
Math
61
Websites
61
Frameworks
53
Debug
51
Concurrency
47
Database
44
JSON
43
Image Processing
41
Compression
37
Scripting
35
GUI
35
CLI
35
Graphics
32
Cryptography
31
Articles
31
Containers
28
Game Engine
28
Build Systems
27
Audio
27
Machine Learning
25
Other Awesome Projects
24
Logging
22
Serialization
21
Integrated Development Environment
20
Web Application Framework
20
Inter-process communication
19
Reflection
19
Artificial Intelligence
18
Physics
17
Online Compiler
17
Static Code Analysis
16
Memory Allocation
15
XML
15
Regular Expression
14
Compiler
14
Weblogs
13
Videos
13
PDF
13
Configuration
12
Multimedia
12
CSV
10
Asynchronous Event Loop
10
Robotics
10
Video
9
Biology
8
Scientific Computing
8
Chemistry
7
Internationalization
7
Yaml
7
Office Open XML
7
Coding Style
7
Font
6
DSP
6
Standard Libraries
6
Coding Style Tools
6
Documentation
6
Coding Standards
5
Debugger
5
Data visualization
5
Sorting
4
Talks
4
BitTorrent
4
Serial Port
3
Virtual Machines
3
Books
3
API Design
2
Graph
2
Podcasts
2
Sub Categories
Keywords
cpp
193
c-plus-plus
109
c
89
cpp17
64
header-only
62
cross-platform
42
cpp11
38
json
37
cplusplus
36
cpp20
35
library
34
python
31
cpp14
30
linux
24
windows
23
machine-learning
22
serialization
22
simd
21
opengl
20
cmake
20
http
18
game-engine
18
cpp-library
18
parser
17
modern-cpp
17
gamedev
17
game-development
17
reflection
16
deep-learning
14
embedded
14
http-server
14
graphics
13
audio
13
javascript
12
java
12
clang
12
logging
11
database
11
performance
11
cuda
11
c-plus-plus-11
11
no-dependencies
11
scientific-computing
11
high-performance
11
data-structures
11
csv
10
networking
10
compression
10
neon
10
gui
10