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

  • Machine Learning

    • Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] [website](http://fidoproject.github.io/)
    • ggml - Tensor library for machine learning with 16-bit and 4-bit quantization support. [MIT]
    • libsvm - A simple, easy-to-use, efficient library for Support Vector Machines. [BSD-3-Clause] [website](https://www.csie.ntu.edu.tw/~cjlin/libsvm/)
    • m2cgen - A CLI tool to transpile trained classic ML models into a native C code with zero dependencies. [MIT]
    • MeTA - A modern C++ data sciences toolkit. [MIT] [website](https://meta-toolkit.org/)
    • Minerva - A fast and flexible system for deep learning. [Apache2]
    • mlpack - A scalable c++ machine learning library. [LGPLv3] [website](http://www.mlpack.org/)
    • ncnn - A high-performance neural network inference computing framework optimized for mobile platforms. [BSD]
    • ONNX runtime - C and C++ library for training and inference ONNX models. ONNX is a standard that AI models can be converted into, regardless of the library they are trained with. [MIT] [website](https://onnxruntime.ai/)
    • Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
    • RNNLIB - RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3]
    • SHOGUN - The Shogun Machine Learning Toolbox. [GPLv3]
    • USearch - Fast search and clustering library for vectors and strings. [Apache2]
    • VLFeat - The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. [BSD-2-Clause] [website](http://www.vlfeat.org/)
    • xgboost - Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Flink and DataFlow. [Apache2]
    • sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]
    • oneDAL - A powerful machine learning library that helps speed up big data analysis. [Apache]
    • TensorComprehensions - A fully-functional C++ library to automatically synthesize high-performance machine learning kernels. [Apache-2.0]
    • kann - A lightweight C library for artificial neural networks. [MIT]
  • Math

    • ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
    • cml - free C++ math library for games and graphics. [Boost]
    • ExprTk - The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. [MIT]
    • Geometric Tools - C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] [website](https://www.geometrictools.com)
    • GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
    • GMP - A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
    • muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
    • lp_solve - A library used to formulate and solve linear programming problems. [LGPL] [website](http://lpsolve.sourceforge.net)
    • PCG-rand - PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. [Apache]
    • Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
    • Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
    • Apophenia - A C library for statistical and scientific computing. [GPL2]
    • Armadillo - Fast C++ library for linear algebra & scientific computing. [Apache2] [website](http://arma.sourceforge.net/)
    • autodiff - A modern, fast and expressive C++ library for automatic differentiation. [MIT] [website](https://autodiff.github.io)
    • blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
    • Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost] [website](https://boost.org/libs/multiprecision)
    • ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
    • CGAL - Collection of efficient and reliable geometric algorithms. [LGPL&GPL] [website](http://www.cgal.org/)
    • cml - The configurable math library. [Boost]
    • DirectXMath - An all inline SIMD C++ linear algebra library for use in games and graphics apps.
    • GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT] [website](https://glm.g-truc.net/)
    • Klein - A fast, SIMD-optimized C++17 Geometric Algebra library for point, line, and plane projections, intersections, joins, rigid-body motion, and more. [MIT] [website](https://jeremyong.com/klein)
    • libfixmath - Cross Platform Fixed Point Maths Library. [MIT]
    • linalg.h - Single header, public domain, short vector math library for C++. [Unlicense]
    • MATIO - MATLAB MAT File I/O Library. [BSD-2-Clause] [website](https://sourceforge.net/projects/matio/)
    • MatX - A GPU-accelerated C++17 numerical computing library with a MATLAB/Python-like syntax. [BSD 3-clause]
    • mexce - A single-header, dependency-free JIT compiler for scalar mathematical expressions that generates optimized x87 FPU machine code. [BSD]
    • NumCpp - A templatized header only C++ implementation of the Python Numpy library. [MIT]
    • OMath - Cross-platform modern general purpose math library written in C++23 that suitable for cheat/game development. [ZLIB]
    • LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] [website](http://www.libtom.net/)
    • linmath.h - A lean linear math library, aimed at graphics programming. [WTFPL]
    • OpenBLAS - An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] [website](http://www.openblas.net/)
    • QuantLib - A free/open-source library for quantitative finance. [Modified BSD] [website](http://quantlib.org/)
    • sebsjames/maths - A templated C++20 math library which emphasizes convenience and pleasure for the client programmer (used in [mathplot](https://github.com/sebsjames/mathplot)). [Apache2] [website](https://sebsjames.github.io/maths/)
    • SimSIMD - Vector distance functions for x86 AVX2, AVX-512, Arm NEON, and SVE. [Apache2]
    • StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] [website](https://www.kthohr.com/statslib.html)
    • SymEngine - Fast symbolic manipulation library, a rewriting of SymPy's core in C++. [MIT]
    • TinyExpr - A C library for parsing and evaluating math expressions from strings. [zlib]
    • Vc - SIMD Vector Classes for C++. [BSD]
    • Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
    • Wagyu - A general library for geometry operations of union, intersections, difference, and xor. [mapbox-wagyu original]
    • xtensor - A C++14 library for numerical analysis with multi-dimensional array expressions, inspired by NumPy syntax. [BSD 3-clause] [website](https://xtensor-stack.github.io/xtensor)
    • universal - A C++14 header-only library implementing arbitrary posit arithmetic. The posit number system is a tapered floating point that is more efficient than IEEE floating point. Posits enable reproducible computational science. [MIT license]
    • utl::random - A C++17 header-only library implementing fast random for Monte-Carlo simulations & gamedev. [MIT]
    • XAD - Powerful Automatic Differentiation for C++. [AGPL] [website](https://auto-differentiation.github.io/)
    • MIRACL - A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
    • GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
    • CNL - A Compositional Numeric Library for C++. [Boost]
    • Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
    • Fastor - A lightweight high performance tensor algebra framework for modern C++. [MIT]
    • geogram - A programming library of geometric algorithms. [BSD-3-Clause]
    • std-simd - A portable implementation of std::experimental::simd for C++. [BSD-3-Clause]
    • libdivide - Optimized integer division for C/C++ using libdivide. [zlib] [website](https://libdivide.com)
    • fpsqrt - Fast fixed point and floating point square root for C. [MIT]
    • fastmod - Header-only fast C/C++ library for computing remainders and modular reductions. [Apache-2.0]
    • Spectra - A C++ library for large scale eigenvalue problems, built on top of Eigen. [MPL2] [website](https://spectralib.org)
    • FastNoiseSIMD - A library for SIMD-accelerated noise generation functions. [MIT]
    • NumKong - SIMD-accelerated distances, dot products, matrix ops, geospatial & geometric kernels for 16 numeric types. [Apache2] (previously named SimSIMD)
    • geo-utils - Header-only C++17 library for spherical lat/lng geometry: distance, bearing, area, point-in-polygon. [Apache2]
    • muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
    • Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
  • Memory Allocation

    • Boehm GC - Conservative garbage collector for C and C++. [similar to X11] [website](http://www.hboehm.info/gc/)
    • C Smart Pointers - Smart pointers for the (GNU) C programming language. [MIT]
    • Hoard - Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac. [Apache-2.0] [website](http://hoard.org/)
    • jemalloc - General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support. [BSD] [website](http://jemalloc.net/)
    • memory - STL compatible C++ memory allocator library. [ZLib]
    • memory-allocators - Custom memory allocators to improve the performance of dynamic memory allocation. [MIT]
    • mimalloc - A compact general purpose allocator with excellent performance. [MIT]
    • rpmalloc - Cross platform lock free thread caching 16-byte aligned memory allocator implemented in C. [PublicDomain]
    • snmalloc - Message passing based high-performance allocator. [MIT]
    • TCMalloc - Google's fast, multi-threaded malloc implementation. [Apache-2.0] [website](https://google.github.io/tcmalloc/)
    • buddy_alloc - A single header buddy memory allocator for C with bounded allocation costs. [0BSD]
    • tgc - A tiny garbage collector for C written in \~500 LOC. [BSD]
    • Mesh - A memory allocator that automatically reduces the memory footprint of C/C++ applications. [Apache-2.0]
    • rpmalloc - A public domain cross-platform lock-free thread-caching 16-byte aligned memory allocator. [PublicDomain]
    • TLSF - Two-Level Segregated Fit memory allocator, a general purpose dynamic memory allocator. [BSD]
  • Miscellaneous

    • American fuzzy lop - fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
    • Cheat Sheets of HackingCPP - Cool cheat sheets and infographics for algorithms, views, containers, randomness, etc.
    • FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios. [Simplified BSD]
    • libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
    • Remote Call Framework - Inter-process communication framework for C++. [GPL2/Proprietary]
    • Scintilla - A free source code editing component. [MIT]
    • sigslot - C++ Signal/Slot Library. [PublicDomain]
    • StrTk - A C++ library consisting of high performance string processing routines. [MIT]
    • Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL]
    • ZBar - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2]
    • casacore - A set of c++ core libraries derived from aips++. [LGPL]
    • access_profiler - A tool to count accesses to member variables in c++ programs. [GPL3]
    • Argon2 - The password hash Argon2, winner of PHC. [CC0/Apache2]
    • AsmJit - Low-latency machine code generation. [Zlib] [website](https://asmjit.com)
    • Boost.Signals2 - An implementation of a managed signals and slots system. [Boost] [website](https://boost.org/libs/signals2)
    • casacore - A set of c++ core libraries derived from aips++. [LGPL]
    • CCTZ - a C++ library for translating between absolute and civil times using the rules of a time zone. [Apache-2.0]
    • Concord - A Discord API wrapper library written in C. [MIT] [website](https://cogmasters.github.io/concord)
    • CPPItertools - Range-based for loop add-ons inspired by the Python builtins and itertools library. [BSD-2-Clause]
    • CPP-JWT - JSON Web Token library for C++. [MIT]
    • cpp-lazy - a fast and easy lazy evaluation library for C++11/14/17/20. [MIT]
    • CRCpp - Easy to use and fast C++ CRC library. [BSD-3-Clause]
    • cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
    • date - A date and time library based on the C++11/14/17 <chrono> header. [MIT] [website](https://howardhinnant.github.io/date/date.html)
    • D++ (DPP) - A lightweight, high performance and scalable C++ library for creating Discord Bots. [Apache2] [website](https://dpp.dev)
    • DynaMix - A library which allows you to compose and modify objects at run time. [MIT]
    • emio - A safe and fast high-level and low-level character input/output library. [MIT]
    • faker-cxx - C++20 Faker library for generating fake (but realistic) data for testing and development. [MIT]
    • fast_float - Fast, Exact C++ from_chars, 4x to 10x faster than strtod, part of GCC 12, Chromium, Redis, Webkit/Safari. [Apache2/BSL-1.0/MIT]
    • fast_io - Significantly faster input/output for C++20. [MIT]
    • fccf - A command-line tool that recursively searches a directory to find C/C++ source code matching a search string. [MIT]
    • {fmt} - Small, safe and fast formatting library for C++. [Simplified BSD] [website](https://fmt.dev)
    • gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
    • happly - A C++ header-only parser for the PLY file format. Parse .ply happily! [MIT]
    • hedley - A C/C++ header file designed to smooth over some platform-specific annoyances. [website](https://nemequ.github.io/hedley/)
    • Hexi - Header-only, lightweight C++ library for binary streaming & serialization. [Apache-2.0/MIT]
    • HighwayHash - Fast strong hash functions: SipHash/HighwayHash. [Apache-2.0]
    • inja - A Template Engine for Modern C++. [MIT]
    • Jinja2С++ - almost full-conformance template engine implementation. [website](https://jinja2cpp.github.io/)
    • jwt-cpp - A header only library for creating and validating JSON web tokens in C++. [MIT]
    • Kangaru - A dependency injection container for C++11 and C++14. [MIT]
    • Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
    • KOMIHASH - Very fast, high-quality hash function, discrete-incremental and streamed hashing-capable. [MIT]
    • libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
    • libenvpp - A modern C++ library for type-safe environment variable parsing. [Apache-2.0]
    • libevil - The Evil License Manager. [GPLv3]
    • libnih - A lightweight library of C functions and structures. [GPL2.1]
    • libONVIF - Yet another ONVIF library. [GPL-3.0]
    • libpopcnt - Fast C/C++ bit population count library. [BSD-2-Clause]
    • libsigc++ - A typesafe callback system for standard C++. [LGPL] [website](https://libsigcplusplus.github.io/libsigcplusplus)
    • Mach7 - A Pattern-matching library for C++. [BSD]
    • minja.hpp - A minimalistic C++ Jinja templating engine for LLM chat templates. [MIT]
    • MPark.Variant - C++17 `std::variant` for C++11/14/17. [BSL-1.0]
    • MPH - C++20 [Minimal] Static Perfect Hash library. [MIT]
    • PEGTL - The Parsing Expression Grammar Template Library. [MIT]
    • Pipes - Pipelines for expressive code on collections in C++. [MIT]
    • pprint - Pretty Printer for Modern C++. [MIT]
    • pspsdk - An open-source SDK for PSP homebrew development. [BSD/GNU GPL3]
    • QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
    • RapidFuzz - Rapid fuzzy string matching in C++ using the Levenshtein Distance. [MIT] [website](https://rapidfuzz.github.io/rapidfuzz-cpp/)
    • rapidhash - Very fast, high quality, platform-independent hashing algorithm. [BSD-2-Clause]
    • Reaction - A lightweight, header-only reactive programming framework leveraging modern C++20 features for building efficient dataflow applications. [MIT]
    • reproc - A cross-platform (C99/C++11) process library. [MIT]
    • SafetyHook - C++23 procedure hooking library. [BSL-1.0]
    • scnlib - scanf for modern C++. [Apache-2.0] [website](https://v1.scnlib.dev/)
    • SDS - Simple Dynamic Strings library for C. [BSD]
    • semver.c - A semver parser and render in ANSI C. [MIT]
    • SLJIT - Platform independent low-level JIT compiler. [BSD] [website](https://zherczeg.github.io/sljit/)
    • palacaze/sigslot - A simple, header only, C++14 signal-slots implementation [MIT]
    • simdzone - Fast and standards compliant DNS zone parser. [BSD-3-Clause]
    • SimpleSignal - High performance C++11 signals. [PublicDomain]
    • Stage - Mobile robot simulator. [GPL2]
    • stb - A range of single-file libraries for C/C++. [PublicDomain]
    • stdman - A tool that parses archived HTML files from [cppreference](https://cppreference.com) and generates groff-formatted manual pages for Unix-based systems. [MIT]
    • StringZilla - the Godzilla of string libraries, splitting, sorting, and shuffling large textual datasets faster than you can say "Tokyo Tower". [Apache-2.0]
    • tgbotxx - Telegram Bot C++ Library. [MIT]
    • Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL]
    • ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
    • value-category-cheatsheet
    • VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
    • xxHash - Extremely fast non-cryptographic hash algorithm. [BSD-2-Clause] [website](https://xxhash.com/)
    • xxhash_cpp - Port of the xxhash library to C++17. [BSD-2-Clause]
    • Remote Call Framework - Inter-process communication framework for C++. [GPL2/Proprietary]
    • sigslot - C++ Signal/Slot Library. [PublicDomain]
    • mio - Cross-platform C++11 header-only library for memory mapped file IO. [MIT]
    • American fuzzy lop - fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
    • xjb - A fast float to string algorithm. [Apache-2.0]
    • Better String - An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]
    • Dragonbox - Reference implementation of a new float-to-string conversion algorithm in C++. [Apache2/BSL-1.0]
    • Gear-Lib - A collection of basic libraries in POSIX C for embedded and network service development. [MIT]
    • single_file_libs - C/C++ open-source libraries with minimal dependencies. [Various]
    • spy - A C++17 constexpr library for detecting OS, compiler, architecture, and SIMD at compile time. [MIT]
    • tinydir - A lightweight, portable, and easy to integrate C directory and file reader. [BSD-2-Clause]
    • Cello - Higher level programming in C, including generic data structures and polymorphism. [BSD-2-Clause] [website](http://libcello.org/)
    • dyno - A C++ library for runtime polymorphism with value semantics. [Boost]
    • PolyHook - A C++ x86/x64 hooking library. [MIT]
    • Verdigris - A header-only library that allows using Qt without the need for moc. [MIT]
    • Flicks - A unit of time defined by Facebook/Oculus for exact representation of common frame rates. [BSD]
    • Linq - Provides a LINQ syntax for list comprehension in C++. [Boost]
    • libcorrect - A C library for convolutional codes and Reed-Solomon error correction. [BSD-3-Clause]
    • libfsm - A library for building and executing finite state machines, including regex and glob. [BSD-2-Clause]
    • origin - A C++ library for concepts, diagnostics, and other foundational utilities.
    • SIMD Everywhere - Implementations of SIMD instruction sets for systems which don't natively support them. [MIT]
    • The RaBitQ Library - A lightweight library for the RaBitQ algorithm. [Apache-2.0] [website](https://vectordb-ntu.github.io/RaBitQ-Library/)
    • ZXing - An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]
Sub Categories