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

  • Graphics

    • TinySpline - A small, yet powerful ANSI C library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and Bézier curves. [MIT]
    • urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT]
    • Yocto/GL - Tiny C++ Libraries for Data-Driven Physically-based Graphics. [MIT]
    • olive.c - Simple 2D Graphics Library. [MIT]
    • Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
    • Cairo - A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
    • OpenSceneGraph - An open source high performance 3D graphics toolkit. [OSGPL]
  • GUI

    • CEGUI - Flexible, cross-platform GUI library.
    • FLTK - Fast, light, cross-platform C++ GUI toolkit. [LGPL2]
    • FOX Toolkit - an open-source, cross-platform widget toolkit. [LGPL]
    • iup - Multi-platform toolkit for building graphical user interfaces. [MIT]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • QCustomPlot - Qt plotting widget without further dependencies. [GPLv3]
    • QwtPlot3D - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
    • wxWidgets - A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]
    • FOX Toolkit - an open-source, cross-platform widget toolkit. [LGPL]
    • Boden - Native, mobile, cross-platform GUI Framework. [GPL/LGPL/Proprietary] [website](https://www.boden.io)
    • CEGUI - Flexible, cross-platform GUI library.
    • Elements - Lightweight, fine-grained, resolution independent, modular GUI library. [MIT]
    • GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
    • gtkmm - The official C++ interface for the popular GUI library GTK+. [LGPL]
    • imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
    • implot - Immediate Mode Plotting widgets for imgui. [MIT]
    • libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT]
    • MyGUI - Fast, flexible and simple GUI. [MIT]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • NanoGui - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
    • NAppGUI - SDK for building cross-platform desktop apps in ANSI-C. [MIT] [website](https://nappgui.com/en/home/web/home.html)
    • nuklear - A single-header ANSI C gui library. [PublicDomain]
    • RmlUi - The HTML/CSS User Interface library evolved. Fork of libRocket. [MIT]
    • Saucer - A modern, cross-platform C++ webview library. [MIT]
    • Slint - Lightweight GUI toolkit for desktop and embedded. [GPL/Free/Proprietary] [website](https://slint.dev/)
    • TGUI - Cross-platform modern c++ GUI. [Zlib] [website](https://tgui.eu/)
    • WebUI - Use any web browser as GUI, with your preferred language in the backend and HTML5 in the frontend. [MIT] [website](https://webui.me/)
    • wxCharts - A library to create charts in wxWidgets applications. [MIT] [website](https://www.wxishiko.com/wxCharts/)
    • Yue - A library for creating native cross-platform GUI apps. [LGPLv2]
    • Brisk - Cross-platform C++20 GUI framework. MVVM, reactive capabilities. Scalable, accelerated GPU rendering [GPL/Proprietary] [website](https://brisklib.com)
    • Qwt - Qt Widgets for Technical Applications. [Own based on LGPL]
    • QwtPlot3D - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
    • gtkmm - The official C++ interface for the popular GUI library GTK+. [LGPL]
    • GuiLite - The smallest header-only GUI library (5 KLOC) for all platforms. [Apache-2.0]
    • LCUI - A small C library for building user interfaces with C, XML and CSS. [MIT]
  • Image Processing

    • CImg - A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
    • CxImage - An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
    • FreeImage - An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPL2 or GPL3]
    • DCMTK - DICOM Toolkit.
    • ITK - An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
    • Magick++ - ImageMagick program interfaces for C++. [Apache2]
    • MagickWnd - ImageMagick program interfaces for C. [Apache2]
    • OpenCV - Open source computer vision. [Apache2] [website](https://opencv.org)
    • OpenEXR - Cross-platform library for high dynamic range imaging. [Modified BSDF]
    • stb-image - STB single-header image loading library. [Public Domain]
    • tesseract-ocr - An OCR engine. [Apache2]
    • Boost.GIL - Generic Image Library. [Boost] [website](https://boost.org/libs/gil)
    • BitmapPlusPLus - Simple and Fast header only Bitmap C++ library. [MIT]
    • fpng - Super fast C++ .PNG writer/reader. [Unlicense]
    • GD - GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] [website](http://libgd.github.io/)
    • Leptonica - Leptonica is an open source library containing software that is broadly useful for image processing and image analysis applications. [BSD-2-Clause] [website](http://leptonica.org/index.html)
    • libavif - Library for encoding and decoding .avif files. [BSD-2-Clause]
    • libfacedetection - Open source library for face detection in images. The face detection speed can reach 1500FPS. [BSD]
    • libjpeg-turbo - A JPEG image codec that uses SIMD instructions to accelerate baseline JPEG encoding and decoding. [IJG & BSD-3-Clause & zlib] [website](https://libjpeg-turbo.org/)
    • libjxl - JPEG XL image format reference implementation. [BSD-3-Clause]
    • libpng - the reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. [libpng-2.0] [website](https://libpng.sourceforge.io/)
    • libspng - Simple, modern libpng alternative. [BSD-2] [website](https://libspng.org/)
    • libvips - A fast image processing library with low memory needs. [LGPL] [website](http://www.vips.ecs.soton.ac.uk/)
    • LodePNG - PNG encoder and decoder in C and C++. [Zlib]
    • MozJPEG - Improved JPEG encoder. [BSD/BSD-3-Clause/ZLIB]
    • OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
    • OpenJPEG - an open-source JPEG 2000 codec written in C language. [BSD-2-Clause]
    • PlutoFilter - A single-header, zero-allocation image filter library in C. [MIT]
    • QOI - The “Quite OK Image Format” for fast, lossless image compression. [MIT]
    • Simd - C++ image processing library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM. [MIT]
    • TinyDNG - Header-only Tiny DNG/TIFF loader and writer in C++. [MIT]
    • TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
    • TinyTIFF - lightweight TIFF reader/writer library. [GPL-3.0]
    • Video++ - A C++14 high performance video and image processing library. [MIT]
    • VIGRA - A generic C++ computer vision library for image analysis. [MIT X11]
    • CxImage - An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
    • SAIL - Easy-to-use cross-platform image decoding library with pluggable image codecs. [MIT]
    • FreeImage - An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPL2 or GPL3]
    • GDCM - Grassroots DICOM library.
    • OpenImageDenoise - High-performance, high-quality denoising library for ray-traced images. [Apache-2.0] [website](https://www.openimagedenoise.org/)
    • bitmap - C++ Bitmap Library for reading, writing, and processing BMP image files. [MIT]
  • Integrated Development Environment

    • Anjuta DevStudio - The GNOME IDE. [GPL3]
    • Cevelop - Cross-platform C and C++ IDE based on Eclipse CDT with additional plug-ins.
    • Dev-C++ - A portable C/C++/C++11 IDE.
    • Eclipse CDT - A fully functional C and C++ IDE based on the Eclipse platform.
    • IBM VisualAge - A family of computer integrated development environments from IBM.
    • KDevelop - A free, open source IDE.
    • Microsoft Visual Studio - An IDE from Microsoft.
    • C Playground - Online C Programming IDE - An online IDE to practice C Programming where you can write, edit, and run code online.
    • color_coded - A vim plugin for libclang-based highlighting. [MIT]
    • Embarcadero Dev-CPP - A fork of Dev-C++ that comes preinstalled with new themes and modern compilers. [GPLv2] [website](https://www.embarcadero.com/free-tools/dev-cpp)
    • Irony-mode - A C/C++ minor mode for Emacs powered by libclang.
    • juCi++ - Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
    • Microsoft Visual Studio Code - An open-source IDE from Microsoft. [MIT] [website](https://code.visualstudio.com)
    • Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt. [GPL3 with exceptions] [website](https://www.qt.io/product/development-tools)
    • rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
    • Xcode - Developed by Apple.
    • YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
    • Microsoft Visual Studio - An IDE from Microsoft.
    • Code::Blocks - A free C, C++ and Fortran IDE.
    • Eclipse CDT - A fully functional C and C++ IDE based on the Eclipse platform.
  • Internationalization

    • gettext - GNU 'gettext'. [GPL2]
    • libiconv - An encoding conversion library between different character encodings. [GPL]
    • gettext - GNU 'gettext'. [GPL2]
    • simdutf - Unicode routines (UTF8, UTF16, UTF32): billions of characters per second using SSE2, AVX2, NEON, AVX-512. [Apache-2/MIT]
    • uni-algo - Unicode Algorithms Implementation for C/C++. [Unlicense or MIT]
    • utf8.h - Single header utf8 string functions for C and C++. [Unlicense]
    • utf8proc - A clean C library for processing UTF-8 Unicode data. [MIT]
  • Inter-process communication

    • Apache Thrift - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developed by Facebook. [Apache2]
    • WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
    • xmlrpc-c - A lightweight RPC library based on XML and HTTP. [BSD]
    • WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
    • Boost.Interprocess - Header-only Boost library that supports kernel-level shared memory and memory-mapped files, with in-built synchronization mechanisms (semaphores, mutexes, and more). [Boost] [website](https://boost.org/libs/interprocess)
    • bRPC - bRPC is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. [Apache2] [website](https://brpc.apache.org/)
    • Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT] [website](https://capnproto.org/)
    • eCAL - Pub/sub, client/server, C++/Python/C#, various message protocols (protobuf, capnproto ..). [Apache2] [website](http://www.ecal.io/)
    • gRPC - A high performance, open source, general-purpose RPC framework. [BSD] [website](http://www.grpc.io/)
    • Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more. [GPLv2]
    • iceoryx - True zero-copy inter-process communication framework for safety critical systems with bindings for C, Rust. Runs on Linux, QNX, Windows, Mac OS, FreeBSD. [Apache2] [website](https://iceoryx.io/)
    • libjson-rpc-cpp - JSON-RPC framework for C++ servers and clients. [MIT]
    • nanomsg - A simple high-performance implementation of several "scalability protocols". [MIT] [website](http://nanomsg.org/)
    • nng - nanomsg-next-generation, a light-weight brokerless messaging library. [MIT] [website](https://nanomsg.github.io/nng/)
    • rpclib - A modern C++ msgpack-RPC server and client library. [MIT]
    • simple-rpc-cpp - A simple RPC wrapper generator to C/C++ functions. [BSD]
    • SRPC - A lightweight RPC system that supports multiple protocols and OpenTelemetry. [Apache2]
    • WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
    • xmlrpc-c - A lightweight RPC library based on XML and HTTP. [BSD]
  • JSON

    • libjson - Lightweight JSON library. [?]
    • Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost] [website](https://boost.org/libs/property_tree)
    • cJSON - Ultralightweight JSON parser in ANSI C. [MIT]
    • DAW JSON Link - Fast, convenient JSON serialization and parsing in C++. [BSL-1.0]
    • frozen - JSON parser and generator for C/C++. [GPL & GPL2]
    • Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
    • jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
    • JeayeSON - A very sane (header only) C++ JSON library. [BSD]
    • Jsmn - A minimalistic JSON parser in C. [MIT]
    • json - JSON for Modern C++. [MIT] [website](https://json.nlohmann.me)
    • JSON++ - A JSON parser in C++. [MIT]
    • json.cpp - a baroque JSON parsing / serialization library for C++. [Apache-2.0]
    • json.h - A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
    • json-build - C89 tiny zero-allocation JSON serializer. [MIT]
    • json-c - A JSON implementation in C. [MIT]
    • jsoncons - A C++ header-only library for JSON and JSON-like binary formats with JSONPointer, JSONPatch, JSONPath and JMESPath. [Boost]
    • JsonCpp - A C++ library for interacting with JSON. [MIT]
    • Jsonifier - A few classes for parsing and serializing objects from/into JSON - very rapidly. [MIT]
    • jsonParse - A simple JSON parser in ANSI C. [MIT]
    • json11 - A tiny JSON library for C++11. [MIT]
    • json-struct - High performance, single header JSON parser parsing to and from C++ structs. [MIT]
    • json-voorhees - JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
    • jute - Very simple C++ JSON Parser. [PublicDomain]
    • libjson - A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
    • LIBUCL - Universal configuration library parser. [BSD-2-Clause]
    • meojson - Next-gen C++ JSON/JSON5 Serialization Engine | Zero Dependency | Header-Only | Unleash JSON Potential. [MIT]
    • parson - Parson is a lighweight json library written in C. [MIT]
    • PicoJSON - A header-file-only, JSON parser serializer in C++. [BSD]
    • QJson - A qt-based library that maps JSON data to QVariant objects. [LGPL2]
    • RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT] [website](https://rapidjson.org)
    • sajson - Lightweight, extremely high-performance JSON parser for C++11. [MIT]
    • simdjson - Extremely fast JSON library that can parse gigabytes of JSON per second. [Apache-2.0]
    • Sonic-Cpp - A fast JSON serializing & deserializing library, accelerated by SIMD. [Apache-2.0]
    • taoJSON - Zero-dependency C++ header-only JSON library. [MIT]
    • ujson - µjson is a a small, C++11, UTF-8, JSON library. [MIT]
    • UltraJSON - Ultra fast JSON decoder and encoder written in C. [BSD-3-Clause]
    • YAJL - A fast streaming JSON parsing library in C. [ISC]
    • yyjson - A high performance JSON library written in ANSI C. [MIT]
    • libjson - Lightweight JSON library. [?]
    • JSON Toolkit - JSON, JSON Pointer, JSON Schema, and JSONL library for C++20. [AGPL/Commercial]
    • json-parser - Very low footprint JSON parser written in portable ANSI C. [BSD]
    • libdart - A high-performance, network-optimized JSON manipulation library. [MIT]
    • qt-json - A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
  • Logging

    • Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
    • templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
    • P7Baical - An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU and memory. [LGPL]
    • Abseil Logging - The Abseil Logging library provides facilities for writing log messages to stderr, files, or other sinks. [Apache-2.0]
    • Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
    • Boost.Log - Designed to be very modular and extensible. [Boost] [website](https://boost.org/libs/log)
    • BqLog - A lightweight, high-performance logging system used in projects such as "Honor of Kings". [Apache-2.0]
    • fmtlog - A performant fmtlib-style logging library with latency in nanoseconds. [MIT]
    • G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain]
    • glog - C++ implementation of the Google logging module.
    • haclog - An extremely fast plain C logging library. [MIT]
    • 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]
    • lwlog - Very fast synchronous and asynchronous C++17 logging library. [MIT]
    • ng-log - C++14 library for application-level logging. [BSD-3-Clause]
    • 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]
    • Quill - Asynchronous cross platform low latency logging library. [MIT]
    • Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
    • logfault - A simple, elegant and efficient C++ header-only logging library. [MIT]
  • Machine Learning

    • sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]
    • Caffe - A fast framework for neural networks. [BSD]
    • catboost - A fast, scalable, high performance Gradient Boosting on Decision Trees library. [Apache2]
    • CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
    • darknet - Open source neural network framework written in C and CUDA. [PublicDomain] [website](https://pjreddie.com/darknet/)
    • FAISS - A library for efficient similarity search and clustering of dense vectors. [MIT]
Sub Categories