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: 13 days ago
JSON representation
-
Miscellaneous
-
Multimedia
- LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
- libVLC - libVLC (VLC SDK) media framework. [GPL]
- libass - Portable subtitle renderer for the ASS/SSA subtitle format. [ISC]
- 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/)
- SDL - Simple DirectMedia Layer. [zlib] [website](https://libsdl.org)
- 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]
- icey - Real-time media stack and lightweight libwebrtc alternative for RTSP ingest, media processing, signaling, TURN, and browser delivery, built in C++20. [LGPL v2.1+]
-
Networking
- ACE - An OO Network Programming Toolkit in C++. [?MIT?]
- cpp-netlib - A collection of open-source libraries for high level network programming. [Boost]
- KCP - A fast and reliable ARQ protocol that helps applications to reduce network latency. [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+]
- lwIP - A lightweight TCP/IP stack. [Modified BSD]
- 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/)
- lwIP - A lightweight TCP/IP stack. [Modified BSD]
- TQUIC - A high-performance, lightweight, and cross-platform QUIC library, exposed to C and C++. [Apache2]
- ada - WHATWG-compliant and fast URL parser written in modern C++. [Apache-2.0/MIT]
- ACE - An OO Network Programming Toolkit in C++. [?MIT?]
- Boost.Beast - HTTP and WebSocket built on Boost.Asio in C++11. [Boost] [website](https://www.boost.org/libs/beast)
- 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]
- Restinio - A header-only C++14 library that gives you an embedded HTTP/Websocket server. [BSD]
- c-ares - A C library for asynchronous DNS requests. [MIT]
- cpp-httplib - A single file C++11 header-only HTTP/HTTPS server library. [MIT]
- cpp-netlib/uri - URI parser/builder library for C++, compatible with RFC 3986 and RFC 3987. [Boost]
- CppServer - Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution. [MIT]
- curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT]
- curlpp - C++ wrapper around libcURL. [MIT]
- DPDK - Data Plane Development Kit, libraries and drivers for fast packet processing. [BSD-3-Clause & GPL-2.0] [website](https://www.dpdk.org/)
- 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]
- FTP client for C++ - C++ client for making FTP requests. [MIT]
- 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]
- libhttpserver - C++ library for creating an embedded Rest HTTP server (and more). [LGPL2.1]
- 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/)
- Lithium - Build high performance C++ HTTP servers without being a C++ expert. [MIT]
- mailio - mailio is a cross platform C++ library for MIME format and SMTP, POP3 and IMAP protocols. [BSD]
- Mongoose - Extremely lightweight webserver. [GPL2]
- MQTT-C - A portable MQTT C client for embedded systems and PCs alike. [MIT] [website](https://liambindle.ca/MQTT-C)
- mTCP - Highly scalable user-level TCP stack for multicore systems. [Modified BSD]
- Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
- nghttp2 - HTTP/2 C Library. [MIT] [website](https://nghttp2.org/)
- nghttp3 - HTTP/3 library written in C. [MIT] [website](https://nghttp2.org/nghttp3/)
- Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
- PF_RING™ - High-speed packet processing framework. [LGPL-2.1] [website](https://www.ntop.org/products/packet-capture/pf_ring/)
- 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]
- RedPanda - Streaming data platform for developers. Kafka API compatible. 10x faster. [BSL]
- restclient-cpp - Simple REST client for C++. It wraps libcurl for HTTP requests. [MIT]
- Seasocks - Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
- tlse - Single C file TLS 1.2/1.3 implementation, using tomcrypt as crypto library [BSD-2-Clause]
- Tufão - An asynchronous web framework for C++ built on top of Qt. [LGPL2]
- uriparser - Strictly RFC 3986 compliant URI parsing and handling library. [BSD-3-Clause]
- uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
- UCall - A high-performance SIMD-accelerated RPC library on io_uring. [Apache2]
- WAFer - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
- 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]
- PcapPlusPlus - a multiplatform C++ network sniffing and packet parsing and crafting framework. [Unlicense]
- ZeroMQ - High-speed, modular asynchronous communication library. [LGPL3/MPL2] [website](http://zeromq.org/)
- CZMQ - High-level C binding for ØMQ. [MPL2] [website](http://czmq.zeromq.org/)
- Zyre - Local Area Clustering for Peer-to-Peer Applications. [MPL2]
- cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] [website](https://docs.libcpr.org)
- RakNet - A cross platform, open source, C++ networking engine for game programmers. [BSD]
- wspp - a zero-dependency single-header, modern WebSocket client & server, ws/wss library. [MIT]
- OpenDDS - An open source C++ implementation of the Object Management Group (OMG) Data Distribution Service (DDS). [Apache2]
- easyhttpcpp - A cross-platform HTTP client library providing a caching facility from Sony. [MIT]
- GameNetworkingSockets - Reliable & unreliable messages over UDP by Valve. Connection-oriented API (like TCP). [BSD-3-Clause]
- wepoll - A Windows epoll wrapper based on Winsock. [BSD-2-Clause]
- librdkafka - Apache Kafka client library for C and C++. [BSD-2-Clause]
- AGENT++ - C++ framework provides a complete tri-lingual SNMP v1/2c/3 protocol engine and dispatcher for the development of SNMP agents. [Apache-2.0]
- SNMP++ - a C++ API which supports SNMP v1/2c/v3. [custom permissive license]
-
Office Open XML
- FreeXL - an open source library to extract valid data from within Spreadsheets. [MPL/GPL-2/LGPL-2]
- SimpleXlsxWriter - XLSX files writer for Microsoft Excel 2007 and above. [zlib]
- DuckX - C++ library for creating and modifying Microsoft Word (.docx) files. [MIT]
- libxls - Read binary Excel files from C/C++ [BSD-2-Clause]
- libxlsxwriter - A C library for creating Excel XLSX files. [BSD-2-Clause] [website](https://libxlsxwriter.github.io/)
- OpenXLSX - A C++ library for reading, writing, creating and modifying Microsoft Excel® (.xlsx) files. [BSD-3-Clause]
- XLSX I/O - C library for reading and writing .xlsx files. [MIT]
-
Online Compiler
- codechef - A simple online compiler CodeChef.
- codepad - An online compiler/interpreter, and a simple collaboration tool.
- coliru - Online compiler/shell with support for various C++ compilers.
- Compiler Explorer - An interactive compiler with assembly output available.
- Ideone - An online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.
- Programiz - An online compiler for learners and developers.
- repl.it - A powerful yet simple tools and platforms for educators, learners, and developers.
- Rextester - Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.
- 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.
- paiza.io - An online C/C++ compiler with multiple files supporting feature, Github(gist) integration and collaborative editing.
- InterviewBit - A simple and easy to use online C++ compiler.
- coliru - Online compiler/shell with support for various C++ compilers.
- CompileOnline - Compile and Execute C++ online on Linux.
- OneCompiler - An online compiler supporting over 70 programming languages and database systems.
- Wandbox - An online Clang/GCC compiler with Boost available.
- Programiz - An online compiler for learners and developers.
-
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.
- algorithms - Algorithms & Data Structures in C++.
- c-algorithms - C algorithms library.
- 30 Seconds of C++
- 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
- Awesome Modern C++ - A collection of resources on modern C++.
- AwesomePerfCpp - A curated list of awesome C/C++ performance optimization resources.
- awesome-hpp - A curated list of awesome header-only C++ libraries.
- 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.
- awesome-ld-preload - A curated list of resources related to LD_PRELOAD.
- awesome-static-analysis - A curated list of static analysis tools for all programming languages.
- cpp_functional_programming - A list of materials and links for C++ functional programming.
- algorithms_and_data_structures - Implementation of algorithms and data structures in C++.
-
PDF
- litePDF - Library to create and edit PDF documents that uses GDI functions through a device context to draw the page content. [LGPL v3 and zlib]
- MuPDF - A lightweight PDF, XPS, and E-book viewer. [AGPL/Proprietary]
- PDFium - PDF generation and rendering library. [BSD-3-Clause]
- 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]
- DynaPDF - An easy-to-use PDF generation library. [Commercial]
- libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
- PDF-Writer - High performance library for creating, modiyfing and parsing PDF files in C++ [Apache-2.0] [website](https://www.pdfhummus.com/)
- pdfio - A simple C library for reading and writing PDF files. [Apache-2] [website](https://www.msweet.org/pdfio/)
- QPDF - A tool and C++ library for content-preserving transformations of PDF files. [Apache-2.0] [website](https://qpdf.sourceforge.io/)
- PoDoFo - A library to work with the PDF file format. [LGPL]
- DynaPDF - An easy-to-use PDF generation library. [Commercial]
- PDFium - PDF generation and rendering library. [BSD-3-Clause]
-
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/)
- Jolt Physics - A multi core friendly rigid body physics and collision detection library. [MIT]
- Kratos - framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. [BSD] [website](http://www.cimne.com/kratos/)
- 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]
- PlayRho - An interactive physics engine & library. [Zlib]
- Project Chrono - An open source multi-physics simulation engine. [BSD-3-Clause] [website](https://projectchrono.org/)
- QuarkPhysics - A 2D Soft Body and Rigid Body Physics Engine. [MIT]
- Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
- SOFA - SOFA is an open-source framework targeting at real-time simulation, with an emphasis on medical simulation. [LGPL] [website](https://www.sofa-framework.org)
- ODE - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
- Quantum++ - A modern C++11 quantum computing library. [MIT]
- tungsten - A high-performance physically based renderer in C++. [zlib]
-
Podcasts
-
Reflection
- config-loader - A C++17 static reflection framework, from parse configuration file to native data structure. [MIT]
- Better Enums - Reflective enums (to string, iteration). Single header. [BSD] [website](http://aantron.github.io/better-enums/)
- clReflect - C++ Reflection using clang. [MIT]
- CPFG - A C++03 library for reflection, callback and script binding. [Apache2]
- CPP-Reflection - C++ Reflection using clang. [MIT]
- Easy Reflection - Easy and fast reflection + serialization solution like in Rust, Java or Go. [Apache]
- Magic Enum - Header-only C++17 library provides static reflection for enums (to string, from string, iteration), work with any enum type without any macro or boilerplate code. [MIT]
- magic_get - std::tuple like methods for user defined types without any macro or boilerplate code. [Boost]
- meta - Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT]
- Nameof - Header-only C++17 library provides nameof macros and functions to obtain the simple name of variable, type, function, macro, and enum. [MIT]
- Ponder - A C++11 library for reflection. [MIT]
- REFLECT - C++20 Static Reflection library. [MIT]
- reflect-cpp - Serialization through reflection, including automatic field name retrieval from structs. [MIT]
- RTTR - A C++11 library for reflection. [MIT] [website](http://www.rttr.org)
- simple_enum - An Fast, Intuitive and Type-Safe C++ Enumeration Support Library. [BSL-1.0] [website](https://arturbac.github.io/simple_enum/)
- TSMP - An intrusion and macro-free C++20 library for static reflection. It uses libclang to extract reflection data from your source code and makes it usable via template specialization. [MIT]
- visit_struct - A miniature library for struct-field reflection in C++. [Boost]
- Refureku - A C++17 runtime reflection and code generation library. [MIT]
- Enchantum - modern C++17 header-only library for compile-time enum reflection. [MIT]
-
Regular Expression
- SRELL - Unicode-aware regular expression template library for C++. [BSD]
- CppVerbalExpressions - C++ regular expressions made easy. [MIT]
- CTRE - A Compile time PCRE (almost) compatible regular expression matcher. [MIT]
- Hyperscan - Hyperscan is a high-performance multiple regex matching library by Intel. Provides simultaneous matching of large numbers of regexps (up to tens of thousands). Typically used in a DPI library stack. [BSD]
- Oniguruma - A modern and flexible regular expressions library that supports a variety of character encodings. [BSD]
- PIRE - Perl Incompatible Regular Expressions library by Yandex. Can be really fast (more than 400 MB/s). [LPGL v3.0]
- 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/Proprietary]
- sregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD]
- TRE - The approximate regex matching library and agrep command line tool. [BSD-2-Clause]
- Vectorscan - A portable fork of the high-performance regular expression matching library. [BSD-3-Clause] [website](https://www.vectorcamp.gr/project/vectorscan/)
- Pawn.Regex - A Pawn plugin that provides support for regular expressions using C++11 std::regex. [MIT]
- PCRE2 - a set of C functions that implement
- BSD
-
Robotics
- MOOS-IvP - A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine vehicles.
- MRPT - Mobile Robot Programming Toolkit. [BSD]
- Robotics Library (RL) - A self-contained C++ library for robot kinematics, motion planning and control. [BSD]
Programming Languages
Categories
Miscellaneous
107
Networking
70
Math
61
Websites
61
Frameworks
53
Debug
51
Concurrency
47
Database
44
JSON
43
Image Processing
41
Compression
37
Scripting
35
GUI
35
CLI
35
Graphics
32
Cryptography
31
Articles
31
Containers
28
Game Engine
28
Build Systems
27
Audio
27
Machine Learning
25
Other Awesome Projects
24
Logging
22
Serialization
21
Integrated Development Environment
20
Web Application Framework
20
Inter-process communication
19
Reflection
19
Artificial Intelligence
18
Physics
17
Online Compiler
17
Static Code Analysis
16
Memory Allocation
15
XML
15
Regular Expression
14
Compiler
14
Weblogs
13
Videos
13
PDF
13
Configuration
12
Multimedia
12
CSV
10
Asynchronous Event Loop
10
Robotics
10
Video
9
Biology
8
Scientific Computing
8
Chemistry
7
Internationalization
7
Yaml
7
Office Open XML
7
Coding Style
7
Font
6
DSP
6
Standard Libraries
6
Coding Style Tools
6
Documentation
6
Coding Standards
5
Debugger
5
Data visualization
5
Sorting
4
Talks
4
BitTorrent
4
Serial Port
3
Virtual Machines
3
Books
3
API Design
2
Graph
2
Podcasts
2
Sub Categories
Keywords
cpp
193
c-plus-plus
109
c
89
cpp17
64
header-only
62
cross-platform
42
cpp11
38
json
37
cplusplus
36
cpp20
35
library
34
python
31
cpp14
30
linux
24
windows
23
machine-learning
22
serialization
22
simd
21
opengl
20
cmake
20
http
18
game-engine
18
cpp-library
18
parser
17
modern-cpp
17
gamedev
17
game-development
17
reflection
16
deep-learning
14
embedded
14
http-server
14
graphics
13
audio
13
javascript
12
java
12
clang
12
logging
11
database
11
performance
11
cuda
11
c-plus-plus-11
11
no-dependencies
11
scientific-computing
11
high-performance
11
data-structures
11
csv
10
networking
10
compression
10
neon
10
gui
10