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: 13 days ago
JSON representation

  • Miscellaneous

    • licensepp - A software license management library for C++ projects. [Apache-2.0]
    • Patternia - Providing pattern matching for modern c++. [MIT] [website](https://patternia.tech/)
  • 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

  • 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

    • 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)
    • 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]
Sub Categories