A list of open source C++ libraries
- Boost - large collection of generic libraries (Boost License)
- BDE - The Bloomberg Development Environment core libraries from Bloomberg L.P. (Apache License)
- Dlib - networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks (Boost License)
- JUCE - An extensive, mature, cross-platform C++ toolkit (GPL License)
- Loki - design patterns
- Reason - xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression (GPL License)
- Yomm11 - Open multi-methods for C++11 (Boost License)
- Folly - Facebook Open-source LibrarY. Library of C++11 components designed with practicality and efficiency in mind.
- cxxomfort - Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).
- libsourcey - Cross-platform C++11 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more...
- OnPosix - C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.
- Ultimate++ - Cross-platform rapid application development framework
- CAF - The C++ Actor Framework (CAF) is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more (BSD License).
- cpp-mmf - A C++98 library that encapsulates memory-mapped-files for POSIX or Windows
- CommonPP - Multi-purpose library with a strong emphasis on getting metrics out of a project. (BSD)
- Better Enums - Reflective enums (enum to string, iteration, etc.) with constexpr support. (BSD)
- Smart Enum - "to_string", "from_string" and more for your enums. (Boost License)
- nytl - Generic C++17 header-only utility template library. (Boost License)
- SaferCPlusPlus - SaferCPlusPlus - Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. (Boost License)
- fcppt - Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.
- bitfield.h - Bit field structure facility, more portable/flexible than the base language facility.
- composite_op.h - Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.
- Abstract Intrusive Containers - More flexible than boost::instrusive, but not STL-compatible.
- Yato - Modern C++(11/14) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools and experiments (MIT License)
- libnavajo - a light but powerful API including http server for web and RESTful application development, supporting SSL, authentification, cookies and session management, including Websocket server support... (LGPL License)
- C++ RESTful framework - C++ micro-framework designed to be embedded into a wide range of applications.
- C++ REST SDK - asynchronous HTTP client and listener, asynchronous Stream, URI, JSON
- cpr - a modern C++ HTTP requests library
- cpp-netlib - cpp-netlib: The C++ Network Library
- cpp-redis - C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.
- tacopie - C++11 TCP Library
- Boost.Asio - asynchronous and synchronous networking, timers, serial I/O
- gsoap - C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services
- POCO - networking: encryption, HTTP; Zip files
- omniORB - the fastest, complete and portable CORBA ORB implementation in C++
- ACE - asynchronous networking, event demultiplexing, messaging, CORBA
- Unicomm - asynchronous networking, high-level TCP communication framework
- restful_mapper - ORM for consuming RESTful JSON APIs in C++
- zeromq - fast message queue
- curlpp - C++ wrapper for CURL library
- libashttp - asynchronous HTTP client library
- Simple C++ REST library - Very simple and self documenting library for creating a REST API in your c++ application
- libtins - Network packet crafting and sniffing library
- HTTPP - Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. (BSD)
- The Silicon C++14 Web Framework - Fast and Robust Web APIs (MIT).
- ngrest - Fast and easy in use JSON RESTful Web Services Framework (Apache2).
- restc-cpp - Takes the pain out of accessing JSON API's from C++. HTTP Client, native C++ class to/from JSON serialization, asynchronous IO trough boost::asio coroutines. C++14. (MIT)
Graphic user interface
- nana[doc] - GUI programming in modern C++ style (Boost License)
- OWLNext - Modern update to OWL for writing GUI applications in standard C++ on Windows
- tiny file dialogs - a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)
- qwt5 - Qt Widgets for Technical Applications
- QuickQanava - C++14 library for drawing directed graphs in a Qt/QML application; project homepage: http://www.qanava.org
- QuickProperties - C++/QML library for QObject/QtObject properties edition; project homepage: http://www.qanava.org
- SFML (Simple and Fast Multimedia Library)
- SDL (Simple DirectMedia Layer) - cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D (zlib license)
- SIGIL (Sound, Input, and Graphics Integration Library) - mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images
- Adobe/boost GIL - high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options.
- GraphicsMagick - Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002
- Skia Graphics Engine - Google's core graphics library as of 2005, used in Chrome, Chrome OS, Android, and also in Firefox and Sublime Text enwiki:Skia_Graphics_Engine
- Anti-Grain Evolution - cross-platform 2D rasterization and rendering engine
- KFR - Fast, modern DSP framework, DFT/FFT, Audio resampling, FIR/IIR filters, Biquad
- Aquila - cross-platform DSP library
- bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
- GLEW OpenGL function loading
- Epoxy Modern successor to GLEW. Abstracts difference between some kinds of GL contexts, which makes it sometimes simpler to use than GLEW. Used by GTK+ project since 2015.
- GLFW OpenGL window manager
- GLM Header only C++ mathematics library for rendering
- assimp 3D model loading
- Magnum C++11 and OpenGL/GLES/WebGL graphics engine
- Visionaray A C++ ray tracing template library
Game Engine Architecture
- IBM ICU
- spirit-po - A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.
- ArrayFire High Performance Computation Library
- GNU MP bignum C++ interface
- Boost.Math.Special Functions and Statistical Distributions
- NTL - A Library for doing Number Theory
- cpp-measures - A header-only C++11 library to handle physical measures
- G+Smo cross-platform library for isogeometric analysis
- Linear algebra
- Graph theory
- OGDF - Open Graph Drawing Framework
- NGraph - a simple (Network) Graph library in C++
- GTpo - C++14 generic graph topology library with Protocol Buffer serialization; project homepage: http://www.qanava.org
- Class Library for Numbers
- Machine Learning
- Dlib - machine learning tools
- MLPACK - machine learning package
- Shogun - large scale machine learning toolbox
- Computational geometry
- CGAL - Computational geometry algorithms library
- Wykobi - Computational geometry library
- PCL - Point Cloud library
- Automata theory
- Intel TBB
- RaftLib C++ stream like concurrent actors
- Thrust STL-like algorithms and data-structures for CUDA
- ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends
- VexCL C++ expression templates library for OpenCL and CUDA
- Boost.Compute (unofficial) STL-like algorithms and data-structures for OpenCL
- HPX A general purpose C++ runtime system for parallel and distributed applications of any scale
- SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.
- Boost.Pointer Container
- cpp-btree - btree_map, btree_set, btree_multimap, btree_multiset.
- strict_variant - A fast, never-empty variant targetting C++11. Prevents many undesirable implicit conversions.
- eggs::variant - Eggs.Variant is a C++11/14 generic, type-safe, discriminated union. It is notable in particular for having very good `constexpr` support.
- Boost.MPL - Original metaprogramming library, targeted at C++03, slow
- Boost.Hana - New metaprogramming library for both types and values
- Metal - Uses lazy metafunctions (like MPL), 100% SFINAE-friendly, optimized for SLOC
- Brigand - Uses eager metafunctions, optimized for best performance
- Meta - Uses eager metafunctions, middle ground between metal and brigand wrt performance
- Boost.Metaparse - Compile-time parser library, producing types, values, and metafunctions from compile-time strings
- Boost.Proto - A library for building expression template-backed EDSLs
- CoMeta - Lightweight, header-only C++14 metaprogramming library
- visit_struct - A miniature reflection library, providing structure visitors for C++11. Self-contained, 100-200 lines of code depending how you count.
- C++ XML objects
- YAS (Yet Another Serialization)
- cereal (C++11 serialization)
- jios (JSON serialization)
- Google Test
- jest - A sane and minimal C++14 unit test framework
- doctest - The lightest feature-rich C++ single-header testing framework for unit tests and TDD
- liblittletest - Portable, one file header-only testing framework
- gperftools - 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization.
- ArduinoJson - ArduinoJson
- json - JSON for Modern C++
- jsoncons - jsoncons is a C++ library for the construction of tree structured json values. It also supports an event-based streaming API.
- jansson - Jansson is C library for encoding, decoding and manipulating JSON data.
- json11 - json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.
- JSON Voorhees - Killer JSON for C++
- jeayeson - A very sane (header only) C++14 JSON library
- ujson - µjson is a small, C++11, UTF-8, JSON library
- minijson - C++ DOM-less and allocation-free JSON parsing and serialization
- jios (JSON Input Output Streams)
- Chromium Embedded
- QtWebApp HTTP(s) Server in C++ inspired by Java Servlets
- lmdb++ - C++11 wrapper for the LMDB embedded B+ tree database library.
- mongocxx - C++11 driver library for MongoDB
- ODB - C++ Object-Relational Mapping (ORM)
- QUINCE: QUeries IN C++ Expressions (ORM+EDSL)
- QxOrm - C++ Qt Object-Relational Mapping (ORM)
- PEGTL - Parsing Expression Grammar Template Library
Embedded languages bindings
- QP/C++ - RTOS kernel, dual GPL
- FreeRTOS C++ Handler - handler, looper, state machine, CLI, portable
- ETL - Embedded Template Library - C++ 03, Portable template library tailored for low resource platforms
- distortos - object-oriented C++ RTOS for microcontrollers
- µcuREST - C++11 REST/JSON server framework for microcontrollers
- Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations (LGPL)
- spdlog - Super fast, header only, C++ logging library
- plog - Portable and simple log for C++ in less than 1000 lines of code (MPL2)
C documentation for Non-ANSI/ISO Libraries