fucking-awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. With repository starsβ and forksπ΄
https://github.com/Correia-jpv/fucking-awesome-cpp
Last synced: 6 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".
- C++ Compilation - A short description of the C++ compilation process.
- modern-cpp-features - A cheatsheet of modern C++ language and library features.
- C++ 17 Features - A comprehensive list of C++17 features.
-
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]
- 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](mxnet.apache.org)
- PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration. π [website](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](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]
- fastmcpp - C++ port of the fastmcp Python library. [Apache2]
-
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/)
- Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost] π [website](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
- 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]
- Amplitude Audio SDK - A cross-platform audio engine designed with the needs of games in mind. [Apache-2.0] π [website](amplitudeaudiosdk.com)
- Aubio - A library for audio and music analysis.[GPL-3.0] π [website](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](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]
- 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]
- Verovio - Verovio is a fast and lightweight music notation engraving library. [LGPL] π [website](www.verovio.org)
- PocketSphinx - A lightweight speech recognition engine. [BSD-2-Clause] π [website](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]
- PortAudio - PortAudio is a free, cross-platform, open-source, audio I/O library. [MIT]
-
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]
- 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
- List of Free C or C++ Books
- Free C++ Books - vhf/free-programming-books/C++.
- List of Free C or C++ Books
- cppbestpractices - Collaborative Collection of C++ Best Practices.
- Practical Guide to Bare Metal C++
-
Build Systems
- Sconsolidator - Scons build system integration for Eclipse CDT.
- 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]
- Ninja - A small build system with a focus on speed.
- 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]
- XMake - A C/C++ cross-platform build utility based on Lua. [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]
- 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](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](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](lammps.sandia.gov/)
- MADNESS - Multiresolution Adaptive Numerical Environment for Scientific Simulation. [GPL] <b><code> 209β</code></b> <b><code> 70π΄</code></b> [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](mpqc.org/)
- Psi - An ab initio computational chemistry package. [GPL] π [website](psicode.org/)
-
CLI
- 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](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](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]
- 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]
- indicators - Activity indicators for Modern C++. [MIT]
- Crossline - A small, self-contained, zero-config, MIT licensed, cross-platform, readline and libedit replacement. [MIT]
-
Coding Standards
-
Coding Style
- GNU Coding Standard
- Google C++ Style Guide
- 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
- 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
- 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]
- GCC - GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
- 8cc - A Small C Compiler.
- c - Compile and execute C "scripts" in one go! [MIT]
- PCC - A very old C compiler. Supports C99.
- movfuscator - The single instruction C compiler, compiling programs into only mov instructions. [MIT]
-
Compression
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- ZLib - A very compact compression library for data streams. [zlib]
- 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]
- LZMAT - An extremely fast real-time lossless data compression library. [GPL]
- bit7z - A C++ static library offering a clean and simple interface to the 7-zip shared libraries. [MPL2]
- Brotli - Brotli compression format. Developed by Google. [MIT]
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- FastLZ - Small & portable byte-aligned LZ77 compression. [MIT]
- FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0.
- heatshrink - data compression library for embedded/real-time systems [ISC]
- Kanzi - a modern, modular, portable and efficient lossless data compressor implemented in C++. [Apache-2.0]
- libarchive - Multi-format archive and compression library. [New BSD] [website](http://www.libarchive.org/)
- LZ4 - Extremely Fast Compression algorithm. [BSD] [website](http://www.lz4.org/)
- LZFSE - LZFSE compression library and command line tool. Developed by Apple.
- miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [MIT]
- minizip-ng - Fork of the popular zip manipulation library found in the zlib distribution. [zlib]
- Rapidgzip - Gzip Decompression and Random Access for Modern Multi-Core Machines. [Apache-2/MIT]
- smaz - Small strings compression library. [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]
- bzip3 - A better and stronger spiritual successor to BZip2. [LGPL]
- cmix - A lossless data compression program that aims for the highest compression ratios at the cost of speed. [GPL-3.0]
- LZSSE-SIMDe - A portable SIMD implementation of LZSSE compression. [BSD-2-Clause]
- Zopfli - A compression library that performs very good but slow deflate/zlib compression. [Apache-2.0]
- OpenZL - A novel data compression framework. [BSD] π [website](openzl.org/)
- ZXC - High-performance asymmetric lossless compression. [BSD-3-Clause]
- Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
- FSST - efficient random-access string compression. [MIT]
- LZAV - Fast In-Memory Data Compression Algorithm. [MIT]
- misa77 - Ridiculously fast decompression at good ratios. [MIT]
Programming Languages
Categories
Miscellaneous
99
Networking
66
Math
55
Database
46
Debug
45
Concurrency
45
Frameworks
45
JSON
41
Image Processing
37
CLI
32
Compression
31
Graphics
30
Other Awesome Projects
29
GUI
29
Scripting
29
Cryptography
28
Containers
28
Game Engine
26
Articles
25
Machine Learning
24
Audio
23
Serialization
21
Logging
21
Build Systems
21
Reflection
19
Artificial Intelligence
18
Websites
18
Physics
17
Inter-process communication
17
Web Application Framework
16
Memory Allocation
15
Regular Expression
14
Configuration
12
Multimedia
12
Integrated Development Environment
11
Static Code Analysis
11
CSV
10
XML
10
Asynchronous Event Loop
9
PDF
9
Compiler
8
Weblogs
8
Scientific Computing
8
Yaml
7
Chemistry
7
Robotics
7
Office Open XML
7
Video
7
Internationalization
7
Documentation
7
Online Compiler
7
Biology
6
DSP
6
Books
5
Coding Style
5
Data visualization
5
Font
4
BitTorrent
4
Sorting
4
Standard Libraries
4
Videos
3
Virtual Machines
3
Debugger
3
Coding Style Tools
3
Serial Port
3
Graph
2
Talks
2
Coding Standards
2
Source
1
API Design
1
Sub Categories
Keywords
cpp
193
c-plus-plus
110
c
91
cpp17
64
header-only
63
cross-platform
42
cpp11
38
cplusplus
36
json
36
cpp20
36
library
35
python
31
cpp14
30
linux
24
windows
23
serialization
22
machine-learning
22
simd
21
opengl
20
cmake
20
game-engine
18
http
18
cpp-library
18
game-development
17
modern-cpp
17
gamedev
17
parser
17
reflection
16
embedded
14
deep-learning
14
graphics
13
audio
13
http-server
13
high-performance
12
javascript
12
java
12
clang
12
c-plus-plus-11
11
no-dependencies
11
neural-network
11
cuda
11
database
11
macos
11
logging
11
performance
11
scientific-computing
11
data-structures
11
android
10
networking
10
cli
10