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
-
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
- awesome-awesomeness - A curated list of awesome awesomeness.
- Awesome C++ - LibHunt's mirror.
- Awesome C
- papers-we-love - Papers from the computer science community to read and discuss.
- awesome-algorithms - A curated list of awesome places to learn and/or practice algorithms.
- awesome-talks - A lot of screencasts, recordings of user group gatherings and conference talks.
- CONTRIBUTING
- algorithms - Algorithms & Data Structures in C++.
- c-algorithms - C algorithms library.
- lists - List of (awesome) lists curated on GitHub.
- awesome - A curated list of awesome lists.
- C++ links - A categorized list of C++ resources.
- Awesome C
- AwesomePerfCpp - A curated list of awesome C/C++ performance optimization resources.
- Projects - A list of practical projects that anyone can solve in any programming language.
- Awesome interview questions - A list of lists of interview questions for the most popular technologies, including C and C++.
- free-programming-books - List of Freely Available Programming Books.
- nothings/single_file_libs - List of single-file C/C++ libraries.
-
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)
Categories
Miscellaneous
41
Build Systems
38
Networking
33
Frameworks
31
Math
26
Debug
26
JSON
24
GUI
24
Concurrency
24
Graphics
21
Cryptography
21
Scripting
21
Database
20
Compression
19
Other Awesome Projects
18
Game Engine
17
Image Processing
16
Logging
14
Websites
14
Inter-process communication
13
CLI
13
Machine Learning
13
Integrated Development Environment
12
Articles
12
Artificial Intelligence
11
Web Application Framework
11
XML
10
Physics
10
Audio
9
Serialization
9
Containers
9
Multimedia
9
Videos
8
Compiler
8
Online Compiler
7
PDF
6
Static Code Analysis
6
Coding Style
5
Standard Libraries
5
Video
5
Biology
5
Scientific Computing
5
Regular Expression
5
BitTorrent
4
Robotics
4
Internationalization
4
Asynchronous Event Loop
4
Books
3
Weblogs
3
Virtual Machines
3
Debugger
3
Memory Allocation
2
Coding Style Tools
2
API Design
1
Talks
1
Sorting
1
Sub Categories
Keywords
c-plus-plus
55
cpp
55
c
41
cross-platform
16
header-only
14
opengl
13
python
13
cplusplus
13
machine-learning
12
library
12
json
11
gamedev
10
game-development
10
game-engine
9
cpp17
9
graphics
9
cpp11
9
cpp14
8
vulkan
8
windows
7
modern-cpp
7
deep-learning
7
cryptography
7
engine
6
clang
6
http
6
neural-network
6
java
6
cuda
6
audio
6
rpc
5
c-plus-plus-11
5
linux
5
android
5
scientific-computing
5
performance
5
webserver
5
logging
5
embedded
5
crypto
5
awesome
5
ios
5
directx
5
websockets
5
d3d11
5
javascript
5
cmake
5
gpgpu
4
opencl
4
framework
4