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: 23 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
- PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration. ๐ website
- 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
- 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
- Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost] ๐ website
- C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] website
- 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
- Aubio - A library for audio and music analysis.[GPL-3.0] ๐ website
- 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
- Maximilian - C++ Audio and Music DSP Library. [MIT]
- miniaudio - Single file audio playback and capture library. [Unlicense] ๐ website
- 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
- PocketSphinx - A lightweight speech recognition engine. [BSD-2-Clause] ๐ website
- 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
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
- 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
- gromacs - A message-passing parallel molecular dynamics implementation. [GPL] website
- Reaktoro - A computational framework in C++ and Python for modeling chemically reactive systems. [LGPL] ๐ website
- 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
- MADNESS - Multiresolution Adaptive Numerical Environment for Scientific Simulation. [GPL] ย ย ย 209โญ ย ย ย ย 70๐ด website)
- 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
- Psi - An ab initio computational chemistry package. [GPL] ๐ website
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
- Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost] ๐ website
- 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
- LZ4 - Extremely Fast Compression algorithm. [BSD] website
- 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
- 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]