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.
https://github.com/DanylovskyiAM/awesome-cpp

Last synced: 17 days ago
JSON representation

  • Database

    • RocksDB - Embedded key-value store for fast storage from facebook. [BSD]
    • SimDB - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store [Apache2]
    • SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
    • sqlite_modern_cpp - Header only C++14 wrapper around sqlite library. [MIT]
    • sqlite_orm - SQLite ORM light header only library for modern C++. [BSD-3-Clause]
    • sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]
    • TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] [website](https://tiledb.io/)
    • LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
  • Debug

    • CMocka - unit testing framework for C with support for mock objects. [Apache2]
    • CTest - The CMake test driver program. [BSD]
    • MemTrack - Tracking memory allocations in C++.
    • microprofile - Profiler with web-view for multiple platforms. [PublicDomain]
    • Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects.
    • VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
    • backward-cpp - A beautiful stack trace pretty printer for C++. [MIT]
    • benchmark - Google provided small microbenchmark support library. [Apache2]
    • Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
    • Catch2 - A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0]
    • Celero - C++ Benchmarking Framework. [Apache2]
    • CppUTest - Unit testing and mocking framework for C/C++. [BSD-3-clause]
    • fff - A micro-framework for creating fake C functions. [MIT]
    • Google Test - Google C++ Testing Framework. [BSD]
    • ig-debugheap - Multiplatform debug heap useful for tracking down memory errors. [BSD]
    • libtap - Write tests in C. [GPL2]
    • MemTrack - Tracking memory allocations in C++.
    • MinUnit - A minimal unit testing framework for C self-contained in a single header file. [MIT]
    • Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] [website](http://www.plflib.org/nanotimer.htm)
    • Remotery - Single C File Profiler with Web Viewer. [Apache2]
    • UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]
    • utest.h - Single header unit testing framework for C and C++. [Unlicense]
    • Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks.
    • CppUnit - C++ port of JUnit. [LGPL2]
    • doctest - The lightest feature rich C++ single header testing framework. [MIT]
    • Google Mock - A library for writing and using C++ mock classes. [BSD]
  • Debugger

  • Frameworks

    • ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
    • Boost - A large collection of generic C++ libraries. [Boost] [website](http://www.boost.org/)
    • Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
    • GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
    • MiLi - Minimal headers-only C++ Library. [Boost]
    • ROOT - A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
    • STLport - An exemplary version of STL. [Free]
    • uSTL - The small STL library. [MIT]
    • abseil-cpp - Abseil C++ Common Libraries. [Apache2]
    • ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
    • BDE - The BDE Development Environment from Bloomberg Labs. [Apache2]
    • Dlib - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost] [website](http://dlib.net/)
    • EASTL - Electronic Arts Standard Template Library. [BSD]
    • ETL - Embedded Template Library. [MIT]
    • ffead-cpp - Framework for Enterprise Application Development. [Apache2]
    • Folly - An open-source C++ library developed and used at Facebook. [Apache2]
    • FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT]
    • JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial] [website](http://www.juce.com/)
    • libPhenom - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
    • LibSourcey - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
    • LibU - A multiplatform utility library written in C. [BSD]
    • OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] [website](http://www.openframeworks.cc/)
    • STLport - An exemplary version of STL. [Free]
    • tbox - A glib-like multi-platform c library. [Apache2] [website](http://tboox.org/)
    • Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes [Yomm11](https://github.com/jll63/yomm11) [Boost]
    • Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
    • Cxxomfort - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
    • Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
    • Qt - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
    • STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
    • Loki - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
  • Game Engine

    • Banshee 3D - Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting. [LGPL3/Commercial]
    • Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
    • toy engine - toy is a thin and modular c++ game engine and offers simple expressive c++ idioms to design full featured 2D or 3D games in fast iterations.
    • Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
    • Atomic Game Engine - A multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript. [Commercial]
    • Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
    • EnTT - Gaming meets modern C++. [MIT]
    • GamePlay - A cross-platform native C++ game framework for creating 2D/3D mobile and desktop games. [Apache2]
    • Godot - A fully featured, open source, MIT licensed, game engine. [MIT]
    • Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
    • KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] [website](http://www.klayge.org/)
    • OpenXRay - a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only]
    • Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] [website](https://www.panda3d.org/)
    • PixelGameEngine - The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. [OLC3]
    • Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] [website](http://polycode.org/)
    • Torque2D - An open-source and cross-platform C++ engine built for 2D game development. [MIT] [website](https://www.garagegames.com/products/torque-2d)
    • Torque3D - An open-source C++ engine built for 3D game development. [MIT] [website](https://www.garagegames.com/products/torque-3d)
  • Graphics

    • assimp - Open Asset Import Library (assimp) is a cross-platform 3D model import library which aims to provide a common API for different 3D asset file formats. [BSD-3-Clause] [website](http://www.assimp.org)
    • bgfx - A cross-platform rendering library. [BSD]
    • bs::framework - Modern C++14 library for the development of real-time graphical applications. [MIT]
    • Diligent Engine - A modern cross-platform low-level 3D graphics library. [Apache2]
    • DirectXTK - A collection of helper classes for writing DirectX 11.x code in C++. [MIT]
    • GLFW - A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
    • herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/)
    • Horde3D - A small 3D rendering and animation engine. [EPL]
    • Ion - A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] [website](https://google.github.io/ion/)
    • libigl - Simple C++ geometry processing library. [MPL2]
    • magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] [website](http://magnum.graphics)
    • NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
    • OpenSubdiv - Pixar's library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
    • Partio - Library for wrangling particle data, with support for most common file formats. [Modified BSD]
    • Skia - A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] [webpage](https://sites.google.com/site/skiadocs/home)
    • 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]
    • 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.
    • libRocket - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
    • MyGUI - Fast, flexible and simple GUI. [MIT]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • CEGUI - Flexible, cross-platform GUI library.
    • GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
    • imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
    • libRocket - libRocket is a C++ HTML/CSS game interface middleware. [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]
    • NanoGui - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
    • nuklear - A single-header ANSI C gui library. [PublicDomain]
    • QCustomPlot - Qt plotting widget without further dependencies. [GPLv3]
    • Yue - A library for creating native cross-platform GUI apps. [LGPLv2]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • gtkmm - The official C++ interface for the popular GUI library GTK+. [LGPL]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • 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]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
    • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
  • 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]
    • MagickWnd - ImageMagick program interfaces for C. [Apache2]
    • stb-image - STB single-header image loading library. [Public Domain]
    • tesseract-ocr - An OCR engine. [Apache2]
    • 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/)
    • libvips - A fast image processing library with low memory needs. [LGPL] [website](http://www.vips.ecs.soton.ac.uk/)
    • OpenCV - Open source computer vision. [BSD]
    • OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
    • 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]
    • TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
    • 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]
    • 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.
  • Integrated Development Environment

    • Anjuta DevStudio - The GNOME IDE. [GPL3]
    • IBM VisualAge - A family of computer integrated development environments from IBM.
    • YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
    • color_coded - A vim plugin for libclang-based highlighting. [MIT]
    • Irony-mode - A C/C++ minor mode for Emacs powered by libclang.
    • juCi++ - Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
    • rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
    • Xcode - Developed by Apple.
    • Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
    • 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]
    • utf8.h - Single header utf8 string functions for C and C++. [Unlicense]
  • 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)
    • Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
    • 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]
    • 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]
    • WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
    • Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
    • xmlrpc-c - A lightweight RPC library based on XML and HTTP. [BSD]
  • JSON

    • 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]
    • JSON++ - A JSON parser in C++. [MIT]
    • json.h - A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
    • json-c - A JSON implementation in C. [MIT]
    • JsonCpp - A C++ library for interacting with JSON. [MIT]
    • json11 - A tiny JSON library for C++11. [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]
    • 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]
    • sajson - Lightweight, extremely high-performance JSON parser for C++11. [MIT]
    • ujson - µjson is a a small, C++11, UTF-8, JSON library. [MIT]
    • YAJL - A fast streaming JSON parsing library in C. [ISC]
    • libjson - Lightweight JSON library. [?]
    • json-parser - Very low footprint JSON parser written in portable ANSI C. [BSD]
    • qt-json - A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
  • Logging

    • templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
Sub Categories