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: 5 days ago
JSON representation
-
Miscellaneous
- 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]
- licensepp - A software license management library for C++ projects. [Apache-2.0]
- Patternia - Providing pattern matching for modern c++. [MIT] [website](https://patternia.tech/)
- 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]
- 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++.
- Inqlude - The Qt library archive.
-
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]
- 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]
- 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
- CppCast - The first podcast by C++ developers for C++ developers.
- CppChat - A (sometimes) weekly look at what's going on in the world of C++ chatting with a guest from the community.
- CppCast - The first podcast by C++ developers for C++ developers.
- CppChat - A (sometimes) weekly look at what's going on in the world of C++ chatting with a guest from the community.
-
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)
Programming Languages
Categories
Miscellaneous
108
Networking
70
Websites
63
Math
63
Frameworks
53
Debug
51
Concurrency
47
Database
47
JSON
43
Image Processing
42
Compression
37
Scripting
37
GUI
36
CLI
35
Graphics
32
Cryptography
31
Articles
31
Audio
29
Build Systems
29
Containers
28
Game Engine
28
Machine Learning
26
Other Awesome Projects
25
Logging
23
Integrated Development Environment
21
Serialization
21
Web Application Framework
20
Inter-process communication
19
Reflection
19
Artificial Intelligence
18
Online Compiler
17
Static Code Analysis
17
Physics
17
XML
16
Memory Allocation
15
Weblogs
15
PDF
14
Regular Expression
14
Compiler
14
Videos
13
Configuration
12
Multimedia
12
Robotics
10
CSV
10
Asynchronous Event Loop
10
Video
9
Biology
8
Coding Style
8
Scientific Computing
8
Internationalization
7
Yaml
7
Office Open XML
7
Documentation
7
Chemistry
7
Font
6
Debugger
6
Standard Libraries
6
DSP
6
Coding Style Tools
6
Coding Standards
5
Talks
5
Data visualization
5
Podcasts
4
BitTorrent
4
Sorting
4
Serial Port
3
Virtual Machines
3
Books
3
API Design
2
Graph
2
Sub Categories
Keywords
cpp
194
c-plus-plus
109
c
90
cpp17
64
header-only
63
cross-platform
42
cpp11
38
json
37
cplusplus
36
cpp20
35
library
35
python
31
cpp14
30
linux
24
windows
23
serialization
22
machine-learning
22
simd
21
opengl
20
cmake
20
game-engine
18
http
18
cpp-library
18
modern-cpp
17
gamedev
17
game-development
17
parser
17
reflection
16
embedded
14
deep-learning
14
http-server
14
audio
13
graphics
13
clang
12
javascript
12
java
12
cuda
11
logging
11
neural-network
11
scientific-computing
11
data-structures
11
c-plus-plus-11
11
high-performance
11
performance
11
database
11
no-dependencies
11
android
10
macos
10
cli
10
compression
10