An open API service indexing awesome lists of open source software.

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

  • 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

  • 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

  • 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.
Sub Categories