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.
https://github.com/DanylovskyiAM/awesome-cpp

Last synced: 17 days ago
JSON representation

  • Logging

    • P7Baical - An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU and memory. [LGPL]
    • Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
    • Easylogging++ - Single header only, extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] [website](https://muflihun.github.io/easyloggingpp)
    • G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain]
    • glog - C++ implementation of the Google logging module.
    • log4cplus - A simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. [BSD & Apache2]
    • loguru - A lightweight C++ logging library. [PublicDomain]
    • plog - Portable and simple log for C++ in less than 1000 lines of code. [MPL2]
    • reckless - Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
    • spdlog - Super fast, header only, C++ logging library.
    • templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
    • Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
    • P7Baical - An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU and memory. [LGPL]
  • Machine Learning

    • Caffe - A fast framework for neural networks. [BSD]
    • Caffe2 - A lightweight, modular, and scalable deep learning framework. [Apache2] [website](https://caffe2.ai/)
    • CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
    • Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] [website](http://fidoproject.github.io/)
    • 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/)
    • 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]
    • 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]
  • 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]
    • 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]
    • 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]
    • blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
    • 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/)
    • Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
    • GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT]
    • 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/)
    • StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] [website](https://www.kthohr.com/statslib.html)
    • 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).
    • xtensor - A C++14 library for numerical analysis with multi-dimensional
    • 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]
    • Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
    • BSD 3-clause
  • Memory Allocation

    • Hoard - Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac. [GPL, commercial] [website](http://hoard.org/)
    • jemalloc - General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support. [BSD] [website](http://jemalloc.net/)
  • Miscellaneous

    • libsigc++ - A typesafe callback system for standard C++. [LGPL]
    • libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
    • StrTk - A C++ library consisting of high performance string processing routines. [MIT]
    • libsigc++ - A typesafe callback system for standard C++. [LGPL]
    • 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]
    • Better Enums - Reflective enums (to string, iteration). Single header. [BSD] [website](http://aantron.github.io/better-enums/)
    • DynaMix - A library which allows you to compose and modify objects at run time. [MIT]
    • {fmt} - Small, safe and fast formatting library for C++. [Simplified BSD]
    • casacore - A set of c++ core libraries derived from aips++. [LGPL]
    • QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
    • c-smart-pointers - Smart pointers for the (GNU) C programming language. [MIT]
    • cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
    • gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
    • Kangaru - A dependency injection container for C++11 and C++14. [MIT]
    • Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
    • libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
    • libevil - The Evil License Manager. [GPLv3]
    • libnih - A lightweight library of C functions and structures. [GPL2.1]
    • Mach7 - A Pattern-matching library for C++. [BSD]
    • meta - Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT]
    • PEGTL - The Parsing Expression Grammar Template Library, a C++11 parser library. [MIT]
    • PHP-CPP - A library to build PHP extensions with C++. [Apache2] [website](http://www.php-cpp.com/)
    • SDS - Simple Dynamic Strings library for C. [BSD]
    • semver.c - A semver parser and render in ANSI C. [MIT]
    • Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT]
    • SimpleSignal - High performance C++11 signals. [PublicDomain]
    • Stage - Mobile robot simulator. [GPL2]
    • stdman
    • stb - A range of single-file libraries for C/C++. [PublicDomain]
    • 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
    • Remote Call Framework - Inter-process communication framework for C++. [GPL2/Commercial]
    • libsigc++ - A typesafe callback system for standard C++. [LGPL]
    • sigslot - C++ Signal/Slot Library. [PublicDomain]
    • American fuzzy lop - fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
    • 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]
    • VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
    • ZXing - An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]
    • FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD]
  • Multimedia

    • LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
    • libVLC - libVLC (VLC SDK) media framework. [GPL]
    • libav - A collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. [LGPL v2.1+ and others] [website](https://www.libav.org/)
    • LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
    • MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
    • QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] [website](http://wang-bin.github.io/QtAV/)
    • SFML - Simple and Fast Multimedia Library. [zlib] [website](http://www.sfml-dev.org/)
    • TagLib - A library for reading and editing the metadata of several popular audio formats. [LGPL/MPL] [website](https://taglib.org/)
    • GStreamer - A library for constructing graphs of media-handling components. [LGPL]
  • Networking

    • ACE - An OO Network Programming Toolkit in C++. [?MIT?]
    • Libmicrohttpd - GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application. [LGPL v2.1+]
    • POCO - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] [website](http://pocoproject.org/)
    • ACE - An OO Network Programming Toolkit in C++. [?MIT?]
    • Breep - Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
    • C++ REST SDK - C++ REST SDK (previously named Casablanca). [Apache2]
    • Restbed - C++11 Asynchronous RESTful framework. [AGPL]
    • c-ares - A C library for asynchronous DNS requests. [MIT]
    • curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT]
    • Dyad.c - Asynchronous networking for C. [MIT]
    • ENet - Reliable UDP networking library. [MIT] [website](http://enet.bespin.org/)
    • evpp - C++ high performance networking with TCP/UDP/HTTP protocols. [BSD]
    • H2O - An optimized HTTP server with support for HTTP/1.x and HTTP/2. It can also be used as a library. [MIT]
    • HTTP Parser - A http request/response parser for C. [MIT]
    • libpcap - A portable C/C++ library for network traffic capture. [BSD] [website](https://www.tcpdump.org/)
    • libquic - A QUIC protocol library extracted from Chromium's QUIC Implementation. [BSD]
    • libwebsockets - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] [website](https://libwebsockets.org/)
    • Mongoose - Extremely lightweight webserver. [GPL2]
    • Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
    • nghttp2 - HTTP/2 C Library. [MIT] [website](https://nghttp2.org/)
    • Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
    • PicoHTTPParser - A tiny, primitive, fast HTTP request/response parser. [MIT]
    • Proxygen - Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
    • Seasocks - Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
    • Tufão - An asynchronous web framework for C++ built on top of Qt. [LGPL2]
    • uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
    • Wangle - A client/server application framework to build asynchronous, event-driven modern C++ services. [Apache-2.0]
    • wdt - An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause]
    • WebSocket++ - C++/Boost Asio based websocket client/server library. [BSD]
    • libjingle - Google talk voice and P2P interoperability library. [BSD]
    • cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] [website](https://whoshuu.github.io/cpr/)
    • RakNet - A cross platform, open source, C++ networking engine for game programmers. [BSD]
    • nope.c - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
  • Online Compiler

    • codepad - An online compiler/interpreter, and a simple collaboration tool.
    • coliru - Online compiler/shell with support for various C++ compilers.
    • Rise4Fun - Online Visual C++ compiler.
    • Try It Online - TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages.
    • Wandbox - An online Clang/GCC compiler with Boost available.
    • coliru - Online compiler/shell with support for various C++ compilers.
    • CompileOnline - Compile and Execute C++ online on Linux.
  • Other Awesome Projects

  • PDF

    • MuPDF - A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial]
    • Poppler - Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3]
    • Xpdf - Xpdf is a free PDF viewer and toolkit, including a text extractor, image converter, HTML converter, and more. [GPL v2/GPL v3]
    • libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
    • PoDoFo - A library to work with the PDF file format. [LGPL]
    • PoDoFo - A library to work with the PDF file format. [LGPL]
  • Physics

    • Box2D - A 2D physics engine for games. [BSD-like]
    • Bullet - A 3D physics engine for games. [zlib] [website](http://bulletphysics.org)
    • Chipmunk - A fast and lightweight 2D game physics library. [MIT] [website](https://chipmunk-physics.net/)
    • LiquidFun - A 2D physics engine for games. [BSD-like]
    • Newton Dynamics - An integrated solution for real time simulation of physics environments. [zlib]
    • ofxBox2d - openFrameworks wrapper for Box2D. [BSD-like]
    • PhysX - An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause]
    • Project Chrono - An open source multi-physics simulation engine. [BSD-3-Clause] [website](https://projectchrono.org/)
    • Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
    • ODE - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
  • Regular Expression

    • CppVerbalExpressions - C++ regular expressions made easy. [MIT]
    • CTRE - A Compile time PCRE (almost) compatible regular expression matcher. [MIT]
    • RE2 - A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
    • SLRE - Super Light Regexp engine for C/C++. [GPLv2/Commercial]
    • sregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD]
  • Robotics

    • RobWork - A collection of C++ libraries for simulation and control of robot systems. [Apache2]
    • PCL - Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloud processing [BSD] [website](http://www.pointclouds.org/)
    • MOOS-IvP - A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine vehicles.
    • ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]
  • Scientific Computing

    • FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
    • GSL - GNU scientific library. [GPL]
    • AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT]
    • Trilinos - High performance PDE solvers. [BSD]
    • Torch - A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause] [website](http://torch.ch/)
  • Scripting

    • V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
    • SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
    • cppimport - Import C++ files directly from Python! [MIT]
    • CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
    • ctypes.sh - A foreign function interface for bash. [MIT]
    • Cython - Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] [website](http://cython.org/)
    • djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
    • Duktape - An embeddable Javascript engine with compact footprint. [MIT] [website](http://duktape.org)
Sub Categories