Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/links/libs"

From cppreference.com
< cpp‎ | links
Line 21: Line 21:
 
==Audio==
 
==Audio==
  
*{{lib| soundtouch | http://www.surina.net/soundtouch/ }}
+
{{libtablebegin}}
*{{lib| KFR | https://www.kfrlib.com | Fast, modern DSP framework, DFT/FFT, Audio resampling, FIR/IIR filters, Biquad }}
+
{{librow | soundtouch | http://www.surina.net/soundtouch/ }}
*{{lib| Aquila| http://aquila-dsp.org/ | cross-platform DSP library }}
+
{{librow | KFR | https://www.kfrlib.com | Fast, modern DSP framework, DFT/FFT, Audio resampling, FIR/IIR filters, Biquad }}
*{{lib| FFTW| http://www.fftw.org/ | library for computing the DFT }}
+
{{librow | Aquila | http://aquila-dsp.org/ | cross-platform DSP library }}
 +
{{librow | FFTW | http://www.fftw.org/ | library for computing the DFT }}
 +
{{libtableend}}
  
 
; Fingerprinting
 
; Fingerprinting
*{{lib| chromaprint | http://acoustid.org/chromaprint }}
+
 
*{{lib| libofa | https://github.com/tanob/libofa/ }}
+
{{libtablebegin}}
*{{lib| libmusicbrainz | http://musicbrainz.org }}
+
{{librow | chromaprint | http://acoustid.org/chromaprint }}
 +
{{librow | libofa | https://github.com/tanob/libofa/ }}
 +
{{librow | libmusicbrainz | http://musicbrainz.org }}
 +
{{libtableend}}
  
 
; Formats
 
; Formats
*{{lib| audiofile | http://audiofile.68k.org/ }}
+
 
*{{lib| flac | http://flac.sourceforge.net/ }}
+
{{libtablebegin}}
*{{lib| libsndfile | http://www.mega-nerd.com/libsndfile/ }}
+
{{librow | audiofile | http://audiofile.68k.org/ }}
 +
{{librow | flac | http://flac.sourceforge.net/ }}
 +
{{librow | libsndfile | http://www.mega-nerd.com/libsndfile/ }}
 +
{{libtableend}}
  
 
; Tagging
 
; Tagging
*{{lib| id3lib | http://id3lib.sourceforge.net/ }}
+
 
*{{lib| taglib | http://developer.kde.org/~wheeler/taglib.html }}
+
{{libtablebegin}}
 +
{{librow | id3lib | http://id3lib.sourceforge.net/ }}
 +
{{librow | taglib | http://developer.kde.org/~wheeler/taglib.html }}
 +
{{libtableend}}
  
 
; CD
 
; CD
*{{lib| libkcompactdisc | http://www.kde.org/ }}
 
 
==Benchmarking==
 
  
 
{{libtablebegin}}
 
{{libtablebegin}}
 +
{{librow | libkcompactdisc | http://www.kde.org/ }}
 +
{{libtableend}}
  
{{librow | Celero | https://github.com/DigitalInBlue/Celero
+
==Benchmarking==
|
+
| Apache License
+
| CMake
+
}}
+
 
+
{{librow | benchmark | https://github.com/google/benchmark
+
| A library to benchmark code snippets, similar to unit tests
+
| Apache License 2.0
+
| CMake
+
}}
+
 
+
{{librow | gperftools | https://github.com/gperftools/gperftools
+
| 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization.
+
| BSD 3-Clause "New" or "Revised" License
+
| configure
+
}}
+
 
+
{{librow | plf::nanotimer | https://github.com/mattreecebentley/plf_nanotimer
+
| Lowest-overhead, cross-platform simple timer class for benchmarking.
+
| zlib license
+
}}
+
  
 +
{{libtablebegin}}
 +
{{librow | Celero | https://github.com/DigitalInBlue/Celero |  | Apache License | CMake}}
 +
{{librow | benchmark | https://github.com/google/benchmark | A library to benchmark code snippets, similar to unit tests | Apache License 2.0 | CMake}}
 +
{{librow | gperftools | https://github.com/gperftools/gperftools | 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization. | BSD 3-Clause "New" or "Revised" License | configure}}
 +
{{librow | plf::nanotimer | https://github.com/mattreecebentley/plf_nanotimer | Lowest-overhead, cross-platform simple timer class for benchmarking. | zlib license}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 75: Line 69:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
 
 
{{librow | sockpp | https://github.com/fpagliughi/sockpp | A simple, modern C++ socket library | BSD 3-Clause "New" or "Revised" License | CMake}}
 
{{librow | sockpp | https://github.com/fpagliughi/sockpp | A simple, modern C++ socket library | BSD 3-Clause "New" or "Revised" License | CMake}}
 
{{librow | libnavajo | https://github.com/titi38/libnavajo | C++ framework including a fast multithreaded http server, HTML5 Websockets, SSL, X509 and HTTP authentification, compression, cookies and advanced session management, IPv4 and IPv6 (CeCILL-C). | CeCILL-C FREE SOFTWARE LICENSE AGREEMENT | CMake}}
 
{{librow | libnavajo | https://github.com/titi38/libnavajo | C++ framework including a fast multithreaded http server, HTML5 Websockets, SSL, X509 and HTTP authentification, compression, cookies and advanced session management, IPv4 and IPv6 (CeCILL-C). | CeCILL-C FREE SOFTWARE LICENSE AGREEMENT | CMake}}
{{librow | C++ RESTful framework | https://github.com/corvusoft/restbed | C++ micro-framework designed to be embedded into a wide range of applications. | | CMake}}
+
{{librow | C++ RESTful framework | https://github.com/corvusoft/restbed | C++ micro-framework designed to be embedded into a wide range of applications. | | CMake}}
 
{{librow | C++ REST SDK | https://github.com/Microsoft/cpprestsdk | asynchronous HTTP client and listener, asynchronous Stream, URI, JSON | MIT License | CMake}}
 
{{librow | C++ REST SDK | https://github.com/Microsoft/cpprestsdk | asynchronous HTTP client and listener, asynchronous Stream, URI, JSON | MIT License | CMake}}
 
{{librow | cpr | https://github.com/whoshuu/cpr | a modern C++ HTTP requests library | MIT License | CMake}}
 
{{librow | cpr | https://github.com/whoshuu/cpr | a modern C++ HTTP requests library | MIT License | CMake}}
Line 92: Line 85:
 
{{librow | wvstreams | http://alumnit.ca }}
 
{{librow | wvstreams | http://alumnit.ca }}
 
{{librow | Unicomm | http://libunicomm.org | asynchronous networking, high-level TCP communication framework}}
 
{{librow | Unicomm | http://libunicomm.org | asynchronous networking, high-level TCP communication framework}}
{{librow | restful_mapper | https://github.com/logandk/restful_mapper | ORM for consuming RESTful JSON APIs in C++ | | CMake, Makefile}}
+
{{librow | restful_mapper | https://github.com/logandk/restful_mapper | ORM for consuming RESTful JSON APIs in C++ | | CMake, Makefile}}
{{librow | Paho MQTT | https://github.com/eclipse/paho.mqtt.cpp/ | Modern C++ client for MQTT from Eclipse | | CMake}}
+
{{librow | Paho MQTT | https://github.com/eclipse/paho.mqtt.cpp/ | Modern C++ client for MQTT from Eclipse | | CMake}}
 
{{librow | zeromq | http://zeromq.org/ | fast message queue}}
 
{{librow | zeromq | http://zeromq.org/ | fast message queue}}
 
{{librow | nanomsg | https://nanomsg.org/ | fast message queue, zeromq successor}}
 
{{librow | nanomsg | https://nanomsg.org/ | fast message queue, zeromq successor}}
Line 110: Line 103:
 
{{librow | Breep | https://github.com/Organic-Code/Breep | Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. | European Union Public License 1.1 | CMake}}
 
{{librow | Breep | https://github.com/Organic-Code/Breep | Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. | European Union Public License 1.1 | CMake}}
 
{{librow | uvw | https://github.com/skypjack/uvw | libuv wrapper in modern C++ | MIT License | CMake}}
 
{{librow | uvw | https://github.com/skypjack/uvw | libuv wrapper in modern C++ | MIT License | CMake}}
{{librow | rest_rpc | https://github.com/topcpporg/rest_rpc | modern, simple, easy to use rpc framework | | CMake}}
+
{{librow | rest_rpc | https://github.com/topcpporg/rest_rpc | modern, simple, easy to use rpc framework | | CMake}}
 
{{librow | EasyHttp | https://github.com/sony/easyhttpcpp | A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. | MIT License | CMake}}
 
{{librow | EasyHttp | https://github.com/sony/easyhttpcpp | A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. | MIT License | CMake}}
 
{{librow | nghttp2 | https://github.com/nghttp2/nghttp2 | HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) | MIT License | CMake, configure}}
 
{{librow | nghttp2 | https://github.com/nghttp2/nghttp2 | HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) | MIT License | CMake, configure}}
Line 120: Line 113:
 
{{librow | eCAL | https://github.com/continental/ecal | high performance inter-process communication | Apache License 2.0 | CMake}}
 
{{librow | eCAL | https://github.com/continental/ecal | high performance inter-process communication | Apache License 2.0 | CMake}}
 
{{librow | fineftp-server | https://github.com/continental/fineftp-server | ftp server library for windows and unix | MIT License | CMake}}
 
{{librow | fineftp-server | https://github.com/continental/fineftp-server | ftp server library for windows and unix | MIT License | CMake}}
 
 
{{libtableend}}
 
{{libtableend}}
  
Line 126: Line 118:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
 
 
{{librow | Intel TBB | http://threadingbuildingblocks.org/documentation.php}}
 
{{librow | Intel TBB | http://threadingbuildingblocks.org/documentation.php}}
 
{{librow | OpenMP | http://www.openmp.org/specifications/}}
 
{{librow | OpenMP | http://www.openmp.org/specifications/}}
Line 150: Line 141:
 
{{librow | Xenium | https://github.com/mpoeter/xenium | A header-only library providing various concurrent data structures and reclamation schemes.}}
 
{{librow | Xenium | https://github.com/mpoeter/xenium | A header-only library providing various concurrent data structures and reclamation schemes.}}
 
{{librow | subprocess | https://github.com/benman64/subprocess | a cross platform library for running subprocesses.}}
 
{{librow | subprocess | https://github.com/benman64/subprocess | a cross platform library for running subprocesses.}}
 
 
{{libtableend}}
 
{{libtableend}}
  
 
==Configuration==
 
==Configuration==
  
*{{lib| gconfmm | https://www.gtkmm.org/ }}
+
{{libtablebegin}}
*{{lib| libconfig| http://www.hyperrealm.com/libconfig/}}
+
{{librow | gconfmm | https://www.gtkmm.org/ }}
*{{lib| libconfini| https://madmurphy.github.io/libconfini/}} - INI parser
+
{{librow | libconfig | http://www.hyperrealm.com/libconfig/}}
*{{lib| Boost.Program_options | https://www.boost.org/doc/libs/1_51_0/doc/html/program_options.html}}
+
{{librow | libconfini | https://madmurphy.github.io/libconfini/ | INI parser}}
 +
{{librow | Boost.Program_options | https://www.boost.org/doc/libs/1_51_0/doc/html/program_options.html}}
 +
{{libtableend}}
  
 
;XML
 
;XML
*{{lib| libxml++ | http://libxmlplusplus.sourceforge.net/}}
+
 
*{{lib| pugixml | http://pugixml.org/}}
+
{{libtablebegin}}
*{{lib| tinyxml | http://www.grinninglizard.com/tinyxml/}}
+
{{librow | libxml++ | http://libxmlplusplus.sourceforge.net/}}
*{{lib|tinyxml2|https://github.com/leethomason/tinyxml2/|Another and work in progress of TinyXML.}}
+
{{librow | pugixml | http://pugixml.org/}}
*{{lib| Xerces | http://xerces.apache.org/xerces-c/}}
+
{{librow | tinyxml | http://www.grinninglizard.com/tinyxml/}}
*{{lib| gSOAP | http://gsoap2.sourceforge.net | XML data bindings}}
+
{{librow | tinyxml2 | https://github.com/leethomason/tinyxml2/ | Another and work in progress of TinyXML.}}
*{{lib|ai-xml|https://github.com/CarloWood/ai-xml|Serialize objects to <em>and</em> from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.}}
+
{{librow | Xerces | http://xerces.apache.org/xerces-c/}}
*{{lib|GPDS|https://github.com/simulton/gpds|General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.}}
+
{{librow | gSOAP | http://gsoap2.sourceforge.net | XML data bindings}}
 +
{{librow | ai-xml | https://github.com/CarloWood/ai-xml | Serialize objects to <em>and</em> from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.}}
 +
{{librow | GPDS | https://github.com/simulton/gpds | General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.}}
 +
{{libtableend}}
  
 
;JSON
 
;JSON
*{{lib|json|https://github.com/nlohmann/json|Niels Lohmann JSON}}
+
 
*{{lib|ArduinoJson|https://github.com/bblanchon/ArduinoJson|ArduinoJson}}
+
{{libtablebegin}}
*{{lib|jsonme--|https://github.com/pibara/jsonme--}}
+
{{librow | json | https://github.com/nlohmann/json | Niels Lohmann JSON}}
*{{lib|ThorsSerializer (JSON/YAML Input Output Streams)|https://github.com/Loki-Astari/ThorsSerializer}}
+
{{librow | ArduinoJson | https://github.com/bblanchon/ArduinoJson | ArduinoJson}}
*{{lib|JsonBox|https://github.com/anhero/JsonBox}}
+
{{librow | jsonme-- | https://github.com/pibara/jsonme--}}
*{{lib|jsoncpp|https://github.com/open-source-parsers/jsoncpp}}
+
{{librow | ThorsSerializer (JSON/YAML Input Output Streams) | https://github.com/Loki-Astari/ThorsSerializer}}
*{{lib|zoolib|http://www.zoolib.org/doc/}}
+
{{librow | JsonBox | https://github.com/anhero/JsonBox}}
*{{lib|JOST|http://ddsbench.svn.sourceforge.net/viewvc/ddsbench/trunk/jost/}}
+
{{librow | jsoncpp | https://github.com/open-source-parsers/jsoncpp}}
*{{lib|CAJUN|http://cajun-jsonapi.sourceforge.net/}}
+
{{librow | zoolib | http://www.zoolib.org/doc/}}
*{{lib|libjson|https://sourceforge.net/projects/libjson/}}
+
{{librow | JOST | http://ddsbench.svn.sourceforge.net/viewvc/ddsbench/trunk/jost/}}
*{{lib|nosjob|http://fossil.wanderinghorse.net/repos/nosjob/index.cgi/index}}
+
{{librow | CAJUN | http://cajun-jsonapi.sourceforge.net/}}
*{{lib|rapidjson|https://github.com/miloyip/rapidjson}}
+
{{librow | libjson | https://sourceforge.net/projects/libjson/}}
*{{lib|jsoncons|https://github.com/danielaparker/jsoncons/ |A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.}}
+
{{librow | nosjob | http://fossil.wanderinghorse.net/repos/nosjob/index.cgi/index}}
*{{lib|JSON++|https://bitbucket.org/tunnuz/json}}
+
{{librow | rapidjson | https://github.com/miloyip/rapidjson}}
*{{lib|qjson|http://qjson.sourceforge.net/}}
+
{{librow | jsoncons | https://github.com/danielaparker/jsoncons/ | A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.}}
*{{lib|json-cpp|https://github.com/ascheglov/json-cpp}}
+
{{librow | JSON++ | https://bitbucket.org/tunnuz/json}}
*{{lib|jansson|http://www.digip.org/jansson/ | Jansson is C library for encoding, decoding and manipulating JSON data.}}
+
{{librow | qjson | http://qjson.sourceforge.net/}}
*{{lib|json11|https://github.com/dropbox/json11 | json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.}}
+
{{librow | json-cpp | https://github.com/ascheglov/json-cpp}}
*{{lib|JSON Voorhees|http://tgockel.github.io/json-voorhees/|Killer JSON for C++}}
+
{{librow | jansson | http://www.digip.org/jansson/ | Jansson is C library for encoding, decoding and manipulating JSON data.}}
*{{lib|jeayeson|https://github.com/jeaye/jeayeson|A very sane (header only) C++14 JSON library}}
+
{{librow | json11 | https://github.com/dropbox/json11 | json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.}}
*{{lib|ujson|https://bitbucket.org/awangk/ujson|µjson is a small, C++11, UTF-8, JSON library}}
+
{{librow | JSON Voorhees | http://tgockel.github.io/json-voorhees/ | Killer JSON for C++}}
*{{lib|minijson|https://giacomodrago.github.io/minijson/|C++ DOM-less and allocation-free JSON parsing and serialization}}
+
{{librow | jeayeson | https://github.com/jeaye/jeayeson | A very sane (header only) C++14 JSON library}}
*{{lib|jios (JSON Input Output Streams)|https://github.com/castedo/jios}}
+
{{librow | ujson | https://bitbucket.org/awangk/ujson | µjson is a small, C++11, UTF-8, JSON library}}
*{{lib|simdjson|https://github.com/simdjson/simdjson|Parsing gigabytes of JSON per second}}
+
{{librow | minijson | https://giacomodrago.github.io/minijson/ | C++ DOM-less and allocation-free JSON parsing and serialization}}
*{{lib|struct_mapping|https://github.com/bk192077/struct_mapping|Mapping json to and from a c++ structure}}
+
{{librow | jios (JSON Input Output Streams) | https://github.com/castedo/jios}}
 +
{{librow | simdjson | https://github.com/simdjson/simdjson | Parsing gigabytes of JSON per second}}
 +
{{librow | struct_mapping | https://github.com/bk192077/struct_mapping | Mapping json to and from a c++ structure}}
 +
{{libtableend}}
  
 
;YAML
 
;YAML
*{{lib|yaml-cpp| https://github.com/jbeder/yaml-cpp }}
+
 
 +
{{libtablebegin}}
 +
{{librow | yaml-cpp | https://github.com/jbeder/yaml-cpp }}
 +
{{libtableend}}
  
 
;TOML
 
;TOML
*{{lib| toml11| https://github.com/ToruNiina/toml11| TOML parsing library based on C++11}}
+
 
*{{lib|toml++|https://marzer.github.io/tomlplusplus/|TOML parser and serializer for C++17 and later}}
+
{{libtablebegin}}
 +
{{librow | toml11 | https://github.com/ToruNiina/toml11 | TOML parsing library based on C++11}}
 +
{{librow | toml++ | https://marzer.github.io/tomlplusplus/ | TOML parser and serializer for C++17 and later}}
 +
{{libtableend}}
  
 
;HOCON
 
;HOCON
*{{lib| cpp-hocon| https://github.com/puppetlabs/cpp-hocon/tree/master/lib/src}} The C++ implementation of the HOCON format developed by Pupplet.
+
 
 +
{{libtablebegin}}
 +
{{librow | cpp-hocon | https://github.com/puppetlabs/cpp-hocon/tree/master/lib/src | The C++ implementation of the HOCON format developed by Pupplet.}}
 +
{{libtableend}}
  
 
;CSS
 
;CSS
*{{lib| mycss| https://github.com/lexborisov/mycss| CSS Parser}}
+
 
 +
{{libtablebegin}}
 +
{{librow | mycss | https://github.com/lexborisov/mycss | CSS Parser}}
 +
{{libtableend}}
  
 
==Containers==
 
==Containers==
  
*{{lib|Boost.Any|https://www.boost.org/doc/libs/release/libs/any/}}
+
{{libtablebegin}}
*{{lib|Boost.Array|https://www.boost.org/doc/libs/release/libs/array/}}
+
{{librow | Boost.Any | https://www.boost.org/doc/libs/release/libs/any/}}
*{{lib|Boost.Bimap|https://www.boost.org/doc/libs/release/libs/bimap/}}
+
{{librow | Boost.Array | https://www.boost.org/doc/libs/release/libs/array/}}
*{{lib|Boost.Container|https://www.boost.org/doc/libs/release/libs/container/}}
+
{{librow | Boost.Bimap | https://www.boost.org/doc/libs/release/libs/bimap/}}
*{{lib|Boost.Fusion|https://www.boost.org/doc/libs/release/libs/fusion/}}
+
{{librow | Boost.Container | https://www.boost.org/doc/libs/release/libs/container/}}
*{{lib|Boost.Heap|https://www.boost.org/doc/libs/release/libs/heap/}}
+
{{librow | Boost.Fusion | https://www.boost.org/doc/libs/release/libs/fusion/}}
*{{lib|Boost.Pointer Container|https://www.boost.org/doc/libs/release/libs/ptr_container/}}
+
{{librow | Boost.Heap | https://www.boost.org/doc/libs/release/libs/heap/}}
*{{lib|Boost.Tuple|https://www.boost.org/doc/libs/release/libs/tuple/}}
+
{{librow | Boost.Pointer Container | https://www.boost.org/doc/libs/release/libs/ptr_container/}}
*{{lib|Boost.Variant|https://www.boost.org/doc/libs/release/libs/variant/}}
+
{{librow | Boost.Tuple | https://www.boost.org/doc/libs/release/libs/tuple/}}
*{{lib|cpp-btree|https://github.com/diegocaro/cpp-btree/| btree_map, btree_set, btree_multimap, btree_multiset.}}
+
{{librow | Boost.Variant | https://www.boost.org/doc/libs/release/libs/variant/}}
*{{lib|TdhLists|https://sites.google.com/a/tdhgis.com/tdhlistsapi/}}
+
{{librow | cpp-btree | https://github.com/diegocaro/cpp-btree/ | btree_map, btree_set, btree_multimap, btree_multiset.}}
*{{lib|strict_variant|https://github.com/cbeck88/strict-variant|A fast, never-empty variant targetting C++11. Prevents many undesirable implicit conversions.}}
+
{{librow | TdhLists | https://sites.google.com/a/tdhgis.com/tdhlistsapi/}}
*{{lib|eggs::variant|https://github.com/eggs-cpp/variant|Eggs.Variant is a C++11/14 generic, type-safe, discriminated union. It is notable in particular for having very good `constexpr` support.}}
+
{{librow | strict_variant | https://github.com/cbeck88/strict-variant | A fast, never-empty variant targetting C++11. Prevents many undesirable implicit conversions.}}
*{{lib|Ygg|https://github.com/tinloaf/ygg|An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map.}}
+
{{librow | eggs::variant | https://github.com/eggs-cpp/variant | Eggs.Variant is a C++11/14 generic, type-safe, discriminated union. It is notable in particular for having very good `constexpr` support.}}
*{{lib|plf::list|http://www.plflib.org/list.htm|std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration.}}
+
{{librow | Ygg | https://github.com/tinloaf/ygg | An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map.}}
*{{lib|plf::stack|http://www.plflib.org/stack.htm|Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context.}}
+
{{librow | plf::list | http://www.plflib.org/list.htm | std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration.}}
*{{lib|plf::colony|http://www.plflib.org/colony.htm|Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure.}}
+
{{librow | plf::stack | http://www.plflib.org/stack.htm | Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context.}}
*{{lib|ring_span|https://github.com/martinmoene/ring-span-lite|A simplified implementation of Arthur O'Dwyer's ring_span - ie. a circular buffer view.}}
+
{{librow | plf::colony | http://www.plflib.org/colony.htm | Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure.}}
*{{lib|Frozen|https://github.com/serge-sans-paille | constexpr perfect-hashing-based frozen sets and maps (Apache 2.0).}}
+
{{librow | ring_span | https://github.com/martinmoene/ring-span-lite | A simplified implementation of Arthur O'Dwyer's ring_span - ie. a circular buffer view.}}
*{{lib|DataFrame|https://github.com/hosseinmoein/DataFrame | C++ DataFrame -- R's and Pandas DataFrame in modern C++ using native types, continuous memory storage, and no virtual functions.}}
+
{{librow | Frozen | https://github.com/serge-sans-paille | constexpr perfect-hashing-based frozen sets and maps | Apache 2.0}}
 +
{{librow | DataFrame | https://github.com/hosseinmoein/DataFrame | C++ DataFrame -- R's and Pandas DataFrame in modern C++ using native types, continuous memory storage, and no virtual functions.}}
 +
{{libtableend}}
  
 
==Cryptography==
 
==Cryptography==
  
*{{lib| Botan | https://botan.randombit.net/ }}
+
{{libtablebegin}}
*{{lib| gnutls | https://www.gnutls.org/ }}
+
{{librow | Botan | https://botan.randombit.net/ }}
*{{lib| openssl | https://www.openssl.org/ }}
+
{{librow | gnutls | https://www.gnutls.org/ }}
*{{lib| crypto++ | https://www.cryptopp.com/ }}
+
{{librow | openssl | https://www.openssl.org/ }}
*{{lib| TomCrypt | https://github.com/libtom/libtomcrypt }}
+
{{librow | crypto++ | https://www.cryptopp.com/ }}
 +
{{librow | TomCrypt | https://github.com/libtom/libtomcrypt }}
 +
{{libtableend}}
  
 
==Databases==
 
==Databases==
  
*{{lib|redis-plus-plus|https://github.com/sewenew/redis-plus-plus|A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface}}
+
{{libtablebegin}}
*{{lib|cpp-redis|https://github.com/Cylix/cpp_redis/|C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.}}
+
{{librow | redis-plus-plus | https://github.com/sewenew/redis-plus-plus | A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface}}
*{{lib|redis-cpp|https://github.com/tdv/redis-cpp/|C++17 Lightweight C++ client header-only library for executing Redis commands.}}
+
{{librow | cpp-redis | https://github.com/Cylix/cpp_redis/ | C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.}}
*{{lib| OTL | http://otl.sourceforge.net/ }}
+
{{librow | redis-cpp | https://github.com/tdv/redis-cpp/ | C++17 Lightweight C++ client header-only library for executing Redis commands.}}
*{{lib| DTL | http://dtemplatelib.sourceforge.net/ }}
+
{{librow | OTL | http://otl.sourceforge.net/ }}
*{{lib| libpqxx | http://pqxx.org/development/libpqxx/ }}
+
{{librow | DTL | http://dtemplatelib.sourceforge.net/ }}
*{{lib| lmdb++ | https://github.com/bendiken/lmdbxx | C++11 wrapper for the LMDB embedded B+ tree database library. }}
+
{{librow | libpqxx | http://pqxx.org/development/libpqxx/ }}
*{{lib| mongocxx | https://github.com/mongodb/mongo-cxx-driver/tree/master | C++11 driver library for MongoDB }}
+
{{librow | lmdb++ | https://github.com/bendiken/lmdbxx | C++11 wrapper for the LMDB embedded B+ tree database library. }}
*{{lib| mysql++ | https://dev.mysql.com/ }}
+
{{librow | mongocxx | https://github.com/mongodb/mongo-cxx-driver/tree/master | C++11 driver library for MongoDB }}
*{{lib| ODB - C++ Object-Relational Mapping (ORM)| https://www.codesynthesis.com/products/odb/}}
+
{{librow | mysql++ | https://dev.mysql.com/ }}
*{{lib| Pgfe - PostGres FrontEnd| https://github.com/dmitigr/pgfe/ | The modern C++ client API to PostgreSQL }}
+
{{librow | ODB - C++ Object-Relational Mapping (ORM) | https://www.codesynthesis.com/products/odb/}}
*{{lib| QUINCE: QUeries IN C++ Expressions (ORM+EDSL)| http://quince-lib.com/}}
+
{{librow | Pgfe - PostGres FrontEnd | https://github.com/dmitigr/pgfe/ | The modern C++ client API to PostgreSQL }}
*{{lib| QxOrm - C++ Qt Object-Relational Mapping (ORM) | https://www.qxorm.com/ }}
+
{{librow | QUINCE: QUeries IN C++ Expressions (ORM+EDSL) | http://quince-lib.com/}}
*{{lib| SOCI | http://soci.sourceforge.net/ }}
+
{{librow | QxOrm - C++ Qt Object-Relational Mapping (ORM) | https://www.qxorm.com/ }}
*{{lib| sqlpp11 | https://github.com/rbock/sqlpp11}}
+
{{librow | SOCI | http://soci.sourceforge.net/ }}
*{{lib| SQLAPI++ | http://www.sqlapi.com/}}
+
{{librow | sqlpp11 | https://github.com/rbock/sqlpp11}}
*{{lib| SQLiteCPP | https://github.com/SRombauts/SQLiteCpp }}
+
{{librow | SQLAPI++ | http://www.sqlapi.com/}}
*{{lib| EasyQtSql | https://github.com/kramolnic/EasyQtSql | A lightweight header-only C++11 library for quick and easy SQL querying with QtSql}}
+
{{librow | SQLiteCPP | https://github.com/SRombauts/SQLiteCpp }}
*{{lib| LevelDB | https://github.com/google/leveldb | A C++ library developed by Google that handles billion-scale Key-Value data persistence storage. }}
+
{{librow | EasyQtSql | https://github.com/kramolnic/EasyQtSql | A lightweight header-only C++11 library for quick and easy SQL querying with QtSql}}
*{{lib| QTL | https://github.com/znone/qtl | A friendly and lightweight C++ database library for MySQL, SQLite and ODBC. }}
+
{{librow | LevelDB | https://github.com/google/leveldb | A C++ library developed by Google that handles billion-scale Key-Value data persistence storage. }}
 +
{{librow | QTL | https://github.com/znone/qtl | A friendly and lightweight C++ database library for MySQL, SQLite and ODBC. }}
 +
{{libtableend}}
  
 
==Embedded languages bindings==
 
==Embedded languages bindings==
  
*{{lib| ChaiScript | https://github.com/ChaiScript/ChaiScript }}
+
{{libtablebegin}}
*{{lib| ExprTk | http://partow.net/programming/exprtk/index.html }}
+
{{librow | ChaiScript | https://github.com/ChaiScript/ChaiScript }}
*{{lib| lua | http://www.lua.org }}
+
{{librow | ExprTk | http://partow.net/programming/exprtk/index.html }}
*{{lib| sol2 | https://github.com/ThePhD/sol2 }}
+
{{librow | lua | http://www.lua.org }}
*{{lib| AngelScript | http://angelcode.com/angelscript/ |a scripting language like C++.}}
+
{{librow | sol2 | https://github.com/ThePhD/sol2 }}
*{{lib| Jinx | https://www.jinx-lang.org/ | Scripting language designed for videogames.}}
+
{{librow | AngelScript | http://angelcode.com/angelscript/ | a scripting language like C++.}}
*{{lib| mozjs | http://www.mozilla.org/js/spidermonkey/ }}
+
{{librow | Jinx | https://www.jinx-lang.org/ | Scripting language designed for videogames.}}
*{{lib| muparser | http://muparser.sourceforge.net }}
+
{{librow | mozjs | http://www.mozilla.org/js/spidermonkey/ }}
*{{lib| PythonQt | http://pythonqt.sourceforge.net/ }}
+
{{librow | muparser | http://muparser.sourceforge.net }}
*{{lib| ScriptCaller| https://github.com/Baduit/ScriptCaller | a header only library allowing us to call ruby scripts.}}
+
{{librow | PythonQt | http://pythonqt.sourceforge.net/ }}
*{{lib| v8pp | https://github.com/pmed/v8pp | Bind C++ functions and classes into V8 JavaScript engine }}
+
{{librow | ScriptCaller | https://github.com/Baduit/ScriptCaller | a header only library allowing us to call ruby scripts.}}
 +
{{librow | v8pp | https://github.com/pmed/v8pp | Bind C++ functions and classes into V8 JavaScript engine }}
 +
{{libtableend}}
  
 
==Embedded/realtime==
 
==Embedded/realtime==
  
*{{lib| QP/C++ | http://sourceforge.net/projects/qpc/files/QP_C%2B%2B/4.5.04/ | RTOS kernel, dual GPL }}
+
{{libtablebegin}}
*{{lib| ETL - Embedded Template Library | http://www.etlcpp.com | C++ 03, Portable template library tailored for low resource platforms }}
+
{{librow | QP/C++ | http://sourceforge.net/projects/qpc/files/QP_C%2B%2B/4.5.04/ | RTOS kernel, dual GPL }}
*{{lib| distortos | http://distortos.org/ | object-oriented C++ RTOS for microcontrollers }}
+
{{librow | ETL - Embedded Template Library | http://www.etlcpp.com | C++ 03, Portable template library tailored for low resource platforms }}
*{{lib| µcuREST | https://github.com/hutorny/micurest | C++11 REST/JSON server framework for microcontrollers }}
+
{{librow | distortos | http://distortos.org/ | object-oriented C++ RTOS for microcontrollers }}
 
+
{{librow | µcuREST | https://github.com/hutorny/micurest | C++11 REST/JSON server framework for microcontrollers }}
 +
{{libtableend}}
  
 
==File metadata==
 
==File metadata==
  
*{{lib| libkexiv2 | https://www.kde.org/ }}
+
{{libtablebegin}}
*{{lib| exiv2 | http://www.exiv2.org }}
+
{{librow | libkexiv2 | https://www.kde.org/ }}
*{{lib| exempi | http://libopenraw.freedesktop.org/wiki/Exempi }}
+
{{librow | exiv2 | http://www.exiv2.org }}
*{{lib| rarian | https://rarian.freedesktop.org/ }}
+
{{librow | exempi | http://libopenraw.freedesktop.org/wiki/Exempi }}
 +
{{librow | rarian | https://rarian.freedesktop.org/ }}
 +
{{libtableend}}
  
 
==Financial Calculations==
 
==Financial Calculations==
  
*{{lib|QuantLib - Quantitative finance library |http://www.quantlib.org/}}
+
{{libtablebegin}}
*{{lib|DataFrame|https://github.com/hosseinmoein/DataFrame | C++ DataFrame -- R's and Pandas DataFrame in modern C++ using native types, continuous memory storage, and no virtual functions.}}
+
{{librow | QuantLib - Quantitative finance library | http://www.quantlib.org/}}
 +
{{librow | DataFrame | https://github.com/hosseinmoein/DataFrame | C++ DataFrame -- R's and Pandas DataFrame in modern C++ using native types, continuous memory storage, and no virtual functions.}}
 +
{{libtableend}}
  
 
== Game Engine Architecture ==
 
== Game Engine Architecture ==
  
*{{lib|EntityX|https://github.com/alecthomas/entityx}}
+
{{libtablebegin}}
*{{lib|Anax|https://github.com/miguelishawt/anax}}
+
{{librow | EntityX | https://github.com/alecthomas/entityx}}
*{{lib|EntityPlus|https://github.com/Yelnats321/EntityPlus}}
+
{{librow | Anax | https://github.com/miguelishawt/anax}}
*{{lib|EnTT|https://github.com/skypjack/entt}}
+
{{librow | EntityPlus | https://github.com/Yelnats321/EntityPlus}}
*{{lib|BOX2D|http://box2d.org/}} Physics engine
+
{{librow | EnTT | https://github.com/skypjack/entt}}
 +
{{librow | BOX2D | http://box2d.org/ | Physics engine}}
 +
{{libtableend}}
  
 
== General Multimedia ==
 
== General Multimedia ==
  
*{{lib| SFML (Simple and Fast Multimedia Library) | http://www.sfml-dev.org/index.php }}
+
{{libtablebegin}}
*{{lib| SDL (Simple DirectMedia Layer) | http://www.libsdl.org/ | cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or Direct3D) (zlib license) }}
+
{{librow | SFML (Simple and Fast Multimedia Library) | http://www.sfml-dev.org/index.php }}
*{{lib| SIGIL (Sound, Input, and Graphics Integration Library) | http://www.libsigil.com/ | mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images }}
+
{{librow | SDL (Simple DirectMedia Layer) | http://www.libsdl.org/ | cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or Direct3D) | zlib license}}
*{{lib| openFrameworks | http://www.openframeworks.cc/ }}
+
{{librow | SIGIL (Sound, Input, and Graphics Integration Library) | http://www.libsigil.com/ | mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images }}
*{{lib| Kigs-framework | https://github.com/Kigs-framework/kigs | Modular Multi-purpose Cross Platform Framework (MIT license) }}
+
{{librow | openFrameworks | http://www.openframeworks.cc/ }}
 +
{{librow | Kigs-framework | https://github.com/Kigs-framework/kigs | Modular Multi-purpose Cross Platform Framework | MIT license}}
 +
{{libtableend}}
  
 
==Generic==
 
==Generic==
*{{lib|Abseil|https://github.com/abseil/abseil-cpp}}
+
 
*{{lib|Boost|https://www.boost.org/doc/libs | large collection of generic libraries (Boost License)}}
+
{{libtablebegin}}
*{{lib|GSL|https://github.com/Microsoft/GSL | Guidelines Support library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines}}
+
{{librow | Abseil | https://github.com/abseil/abseil-cpp}}
*{{lib|BDE|https://github.com/bloomberg/bde | The Bloomberg Development Environment core libraries from Bloomberg L.P. (Apache License)}}
+
{{librow | Boost | https://www.boost.org/doc/libs | large collection of generic libraries | Boost License}}
*{{lib| Cinder | https://libcinder.org/ }}
+
{{librow | GSL | https://github.com/Microsoft/GSL | Guidelines Support library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines}}
*{{lib|Dlib|https://dlib.net | networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks (Boost License)}}
+
{{librow | BDE | https://github.com/bloomberg/bde | The Bloomberg Development Environment core libraries from Bloomberg L.P. | Apache License}}
*{{lib|JUCE|http://www.juce.com/ | An extensive, mature, cross-platform C++ toolkit (GPL License)}}
+
{{librow | Cinder | https://libcinder.org/ }}
*{{lib|Loki|http://loki-lib.sourceforge.net/ | design patterns}}
+
{{librow | Dlib | https://dlib.net | networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks | Boost License}}
*{{lib|Reason|http://www.reasoning.biz/index.htm | xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression (GPL License)}}
+
{{librow | JUCE | http://www.juce.com/ | An extensive, mature, cross-platform C++ toolkit | GPL License}}
*{{lib|yomm2|https://github.com/jll63/yomm2 | Open multi-methods for C++17 (Boost License)}}
+
{{librow | Loki | http://loki-lib.sourceforge.net/ | design patterns}}
*{{lib|Folly|https://github.com/facebook/folly | Facebook open-source library. Library of C++11 components designed with practicality and efficiency in mind.}}
+
{{librow | Reason | http://www.reasoning.biz/index.htm | xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression | GPL License}}
*{{lib|Abseil|http://abseil.io/ | An open-source collection of C++ library code from Google designed to augment the C++ standard library.}}
+
{{librow | yomm2 | https://github.com/jll63/yomm2 | Open multi-methods for C++17 | Boost License}}
*{{lib|cxxomfort|http://ryan.gulix.cl/fossil.cgi/cxxomfort/|Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).}}
+
{{librow | Folly | https://github.com/facebook/folly | Facebook open-source library. Library of C++11 components designed with practicality and efficiency in mind.}}
*{{lib|libsourcey|http://sourcey.com/libsourcey/ | Cross-platform C++11 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more...}}
+
{{librow | Abseil | http://abseil.io/ | An open-source collection of C++ library code from Google designed to augment the C++ standard library.}}
*{{lib|OnPosix|http://onposix.sourceforge.net/ | C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.}}
+
{{librow | cxxomfort | http://ryan.gulix.cl/fossil.cgi/cxxomfort/ | Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).}}
*{{lib|Ultimate++|http://ultimatepp.org/ | Cross-platform rapid application development framework}}
+
{{librow | libsourcey | http://sourcey.com/libsourcey/ | Cross-platform C++11 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more...}}
*{{lib|CAF|https://github.com/actor-framework/actor-framework|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).}}
+
{{librow | OnPosix | http://onposix.sourceforge.net/ | C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.}}
*{{lib|cpp-mmf|https://github.com/carlomilanesi/cpp-mmf/|A C++98 library that encapsulates memory-mapped-files for POSIX or Windows}}
+
{{librow | Ultimate++ | http://ultimatepp.org/ | Cross-platform rapid application development framework}}
*{{lib|CommonPP|https://github.com/daedric/commonpp|Multi-purpose library with a strong emphasis on getting metrics out of a project. (BSD)}}
+
{{librow | CAF | https://github.com/actor-framework/actor-framework | 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}}
*{{lib|Better Enums|https://github.com/aantron/better-enums|Reflective enums (enum to string, iteration, etc.) with constexpr support. (BSD)}}
+
{{librow | cpp-mmf | https://github.com/carlomilanesi/cpp-mmf/ | A C++98 library that encapsulates memory-mapped-files for POSIX or Windows}}
*{{lib|Smart Enum|https://github.com/krabicezpapundeklu/smart_enum|"to_string", "from_string" and more for your enums. (Boost License)}}
+
{{librow | CommonPP | https://github.com/daedric/commonpp | Multi-purpose library with a strong emphasis on getting metrics out of a project. | BSD License}}
*{{lib|nytl|https://github.com/nyorain/nytl|Generic C++17 header-only utility template library. (Boost License)}}
+
{{librow | Better Enums | https://github.com/aantron/better-enums | Reflective enums (enum to string, iteration, etc.) with constexpr support. | BSD License}}
*{{lib|SaferCPlusPlus|https://github.com/duneroadrunner/SaferCPlusPlus | SaferCPlusPlus - Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. (Boost License)}}
+
{{librow | Smart Enum | https://github.com/krabicezpapundeklu/smart_enum | "to_string", "from_string" and more for your enums. | Boost License}}
*{{lib|fcppt|http://fcppt.org/ | 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.}}
+
{{librow | nytl | https://github.com/nyorain/nytl | Generic C++17 header-only utility template library. | Boost License}}
*{{lib|bitfield.h|https://github.com/wkaras/C-plus-plus-library-bit-fields | Bit field structure facility, more portable/flexible than the base language facility.}}
+
{{librow | SaferCPlusPlus | https://github.com/duneroadrunner/SaferCPlusPlus | SaferCPlusPlus - Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. | Boost License}}
*{{lib|composite_op.h|https://github.com/wkaras/C-plus-plus-library-default-operators | Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.}}
+
{{librow | fcppt | http://fcppt.org/ | 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.}}
*{{lib|Abstract Intrusive Containers|https://github.com/wkaras/C-plus-plus-intrusive-container-templates | More flexible than boost::intrusive, but not STL-compatible.}}
+
{{librow | bitfield.h | https://github.com/wkaras/C-plus-plus-library-bit-fields | Bit field structure facility, more portable/flexible than the base language facility.}}
*{{lib|Yato|https://github.com/agruzdev/Yato | Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. (Apache-2.0)}}
+
{{librow | composite_op.h | https://github.com/wkaras/C-plus-plus-library-default-operators | Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.}}
*{{lib|Kangaru|https://github.com/gracicot/kangaru | A dependency injection container for C++11 and C++14 (MIT License)}}
+
{{librow | Abstract Intrusive Containers | https://github.com/wkaras/C-plus-plus-intrusive-container-templates | More flexible than boost::intrusive, but not STL-compatible.}}
*{{lib|yaal|https://github.com/AmokHuginnsson/yaal | algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more (CC BY-ND-NC 4.0)}}
+
{{librow | Yato | https://github.com/agruzdev/Yato | Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. | Apache-2.0}}
*{{lib|gsl-lite|https://github.com/martinmoene/gsl-lite | A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later (MIT License).}}
+
{{librow | Kangaru | https://github.com/gracicot/kangaru | A dependency injection container for C++11 and C++14 | MIT License}}
*{{lib|nonstd-lite|https://github.com/martinmoene/nonstd-lite | Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments (Boost License).}}
+
{{librow | yaal | https://github.com/AmokHuginnsson/yaal | algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more (CC BY-ND-NC 4.0)}}
*{{lib|units|https://github.com/nholthaus/units | A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies (MIT License).}}
+
{{librow | gsl-lite | https://github.com/martinmoene/gsl-lite | A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later | MIT License}}
 +
{{librow | nonstd-lite | https://github.com/martinmoene/nonstd-lite | Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments | Boost License}}
 +
{{librow | units | https://github.com/nholthaus/units | A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies | MIT License}}
 +
{{libtableend}}
  
 
==GPS==
 
==GPS==
  
*{{lib| gpsd | http://www.catb.org/gpsd/ }}
+
{{libtablebegin}}
 +
{{librow | gpsd | http://www.catb.org/gpsd/ }}
 +
{{libtableend}}
  
 
==Graphic user interface==
 
==Graphic user interface==
  
*{{lib|Dear ImGui|https://github.com/ocornut/imgui|A bloat-free graphical user interface library that is highly optimized.}}
+
{{libtablebegin}}
*{{lib|FLTK|http://www.fltk.org/}}
+
{{librow | Dear ImGui | https://github.com/ocornut/imgui | A bloat-free graphical user interface library that is highly optimized.}}
*{{lib| nana | http://nanapro.org/|doc=http://qpcr4vir.github.io/nana-doxy/html/|GUI programming in modern C++ style (Boost License)}}
+
{{librow | FLTK | http://www.fltk.org/}}
*{{lib| nanogui | https://github.com/wjakob/nanogui|doc=https://nanogui.readthedocs.io/en/latest/| Minimalistic cross-platform widget library for OpenGL 3.x or higher }}
+
{{librow | nana | http://nanapro.org/ | doc=http://qpcr4vir.github.io/nana-doxy/html/ | GUI programming in modern C++ style (Boost License)}}
*{{lib| WxWidgets|http://wxwidgets.org/|doc=http://docs.wxwidgets.org|src=http://wxwidgets.org/downloads}}
+
{{librow | nanogui | https://github.com/wjakob/nanogui | doc=https://nanogui.readthedocs.io/en/latest/ | Minimalistic cross-platform widget library for OpenGL 3.x or higher }}
*{{lib|OWLNext|http://sourceforge.net/projects/owlnext/|Modern update to [http://en.wikipedia.org/wiki/Object_Windows_Library OWL] for writing GUI applications in standard C++ on Windows}}
+
{{librow | WxWidgets | http://wxwidgets.org/ | doc=http://docs.wxwidgets.org | src=http://wxwidgets.org/downloads}}
*{{lib| tiny file dialogs | http://tinyfiledialogs.sourceforge.net | a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)}}
+
{{librow | OWLNext | http://sourceforge.net/projects/owlnext/ | Modern update to [http://en.wikipedia.org/wiki/Object_Windows_Library OWL] for writing GUI applications in standard C++ on Windows}}
 +
{{librow | tiny file dialogs | http://tinyfiledialogs.sourceforge.net | a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)}}
 +
{{libtableend}}
  
 
; CopperSpice
 
; CopperSpice
  
*{{lib| CopperSpice|https://www.copperspice.com/|doc=https://www.copperspice.com/documentation-copperspice.html|src=https://github.com/copperspice/copperspice | CopperSpice is a set of C++ libraries used to develop cross-platform software applications. It is released under the LGPL V2.1 license. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework.}}
+
{{libtablebegin}}
*{{lib| CsSignal|https://github.com/copperspice/cs_signal|Standalone C++ thread aware signal/slot library }}
+
{{librow | CopperSpice | https://www.copperspice.com/ | doc=https://www.copperspice.com/documentation-copperspice.html | src=https://github.com/copperspice/copperspice | CopperSpice is a set of C++ libraries used to develop cross-platform software applications. It is released under the LGPL V2.1 license. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework.}}
*{{lib| CsString|https://github.com/copperspice/cs_string|Standalone C++ unicode aware string library}}
+
{{librow | CsSignal | https://github.com/copperspice/cs_signal | Standalone C++ thread aware signal/slot library }}
*{{lib| libGuarded|https://github.com/copperspice/libguarded|Standalone C++ multithreading library for managing access to shared data}}
+
{{librow | CsString | https://github.com/copperspice/cs_string | Standalone C++ unicode aware string library}}
 +
{{librow | libGuarded | https://github.com/copperspice/libguarded | Standalone C++ multithreading library for managing access to shared data}}
 +
{{libtableend}}
  
 
; GTK+
 
; GTK+
*{{lib| glibmm | http://www.gtkmm.org/ }}
+
 
*{{lib| gtkmm | http://www.gtkmm.org/ }}
+
{{libtablebegin}}
*{{lib| goocanvasmm | http://live.gnome.org/GooCanvas }}
+
{{librow | glibmm | http://www.gtkmm.org/ }}
*{{lib| libglademm | http://www.gtkmm.org/ }}
+
{{librow | gtkmm | http://www.gtkmm.org/ }}
*{{lib| libgnomecanvasmm | http://www.gtkmm.org/ }}
+
{{librow | goocanvasmm | http://live.gnome.org/GooCanvas }}
*{{lib| webkitgtk | http://webkitgtk.org/ }}
+
{{librow | libglademm | http://www.gtkmm.org/ }}
*{{lib| flowcanvas | http://drobilla.net/software/flowcanvas/ }}
+
{{librow | libgnomecanvasmm | http://www.gtkmm.org/ }}
*{{lib| evince | http://www.gnome.org/projects/evince/ }}
+
{{librow | webkitgtk | http://webkitgtk.org/ }}
 +
{{librow | flowcanvas | http://drobilla.net/software/flowcanvas/ }}
 +
{{librow | evince | http://www.gnome.org/projects/evince/ }}
 +
{{libtableend}}
  
 
; Qt
 
; Qt
*{{lib| Qt|http://qt.io/|doc=http://doc.qt.io/|src=http://qt.io/download}}
+
 
*{{lib| qwtplot3d | http://qwtplot3d.sourceforge.net }}
+
{{libtablebegin}}
*{{lib| qwt5 | http://qwt.sourceforge.net | Qt Widgets for Technical Applications }}
+
{{librow | Qt | http://qt.io/ | doc=http://doc.qt.io/ | src=http://qt.io/download}}
*{{lib| libdbusmenu-qt | https://launchpad.net/libdbusmenu-qt }}
+
{{librow | qwtplot3d | http://qwtplot3d.sourceforge.net }}
*{{lib| QuickQanava | https://github.com/cneben/QuickQanava | C++14 library for drawing directed graphs in a Qt/QML application; project homepage: http://www.qanava.org }}
+
{{librow | qwt5 | http://qwt.sourceforge.net | Qt Widgets for Technical Applications }}
*{{lib| QuickProperties | https://github.com/cneben/QuickProperties | C++/QML library for QObject/QtObject properties edition; project homepage: http://www.qanava.org }}
+
{{librow | libdbusmenu-qt | https://launchpad.net/libdbusmenu-qt }}
 +
{{librow | QuickQanava | https://github.com/cneben/QuickQanava | C++14 library for drawing directed graphs in a Qt/QML application; project homepage: http://www.qanava.org }}
 +
{{librow | QuickProperties | https://github.com/cneben/QuickProperties | C++/QML library for QObject/QtObject properties edition; project homepage: http://www.qanava.org }}
 +
{{libtableend}}
  
 
==Graphics==
 
==Graphics==
*{{lib| cairomm | http://cairographics.org/cairomm/ }}
+
 
*{{lib| nux | http://launchpad.net/nux }}
+
{{libtablebegin}}
*{{lib| pangomm | http://gtkmm.org }}
+
{{librow | cairomm | http://cairographics.org/cairomm/ }}
*{{lib| gegl | http://gegl.org/ }}
+
{{librow | nux | http://launchpad.net/nux }}
*{{lib| nanovg | https://github.com/memononen/nanovg | 2D drawing library based on openGL/DX/metal. }}
+
{{librow | pangomm | http://gtkmm.org }}
*{{lib| bgfx | https://github.com/bkaradzic/bgfx | Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on. }}
+
{{librow | gegl | http://gegl.org/ }}
 +
{{librow | nanovg | https://github.com/memononen/nanovg | 2D drawing library based on openGL/DX/metal. }}
 +
{{librow | bgfx | https://github.com/bkaradzic/bgfx | Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on. }}
 +
{{libtableend}}
  
 
==Images==
 
==Images==
*{{lib| stb | https://github.com/nothings/stb }}
+
 
*{{lib|Adobe/boost GIL|http://boost.org/libs/gil | high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options.}}
+
{{libtablebegin}}
*{{lib|GraphicsMagick|http://www.graphicsmagick.org/|Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002}}
+
{{librow | stb | https://github.com/nothings/stb }}
*{{lib|Skia Graphics Engine|https://skia.org/|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]]}}
+
{{librow | Adobe/boost GIL | http://boost.org/libs/gil | high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options.}}
*{{lib|Anti-Grain Evolution|https://github.com/tyoma/agge|cross-platform 2D rasterization and rendering engine}}
+
{{librow | GraphicsMagick | http://www.graphicsmagick.org/ | Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002}}
 +
{{librow | Skia Graphics Engine | https://skia.org/ | 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]]}}
 +
{{librow | Anti-Grain Evolution | https://github.com/tyoma/agge | cross-platform 2D rasterization and rendering engine}}
 +
{{libtableend}}
  
 
; Plotting
 
; Plotting
*{{lib| plotutils | http://www.gnu.org/software/plotutils/ }}
+
 
 +
{{libtablebegin}}
 +
{{librow | plotutils | http://www.gnu.org/software/plotutils/ }}
 +
{{libtableend}}
  
 
; Formats
 
; Formats
*{{lib| Kaitai Struct C++ runtime | https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime/blob/master/kaitai/kaitaistream.cpp }}
+
 
*{{lib| libraw | http://www.libraw.org/ }}
+
{{libtablebegin}}
*{{lib| openexr | http://www.openexr.com }}
+
{{librow | Kaitai Struct C++ runtime | https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime/blob/master/kaitai/kaitaistream.cpp }}
*{{lib| qimageblitz | http://www.kde.org/ }}
+
{{librow | libraw | http://www.libraw.org/ }}
*{{lib| imagemagick | http://www.imagemagick.org/ }}
+
{{librow | openexr | http://www.openexr.com }}
*{{lib| djvulibre | http://djvu.sourceforge.net/ }}
+
{{librow | qimageblitz | http://www.kde.org/ }}
*{{lib| poppler | http://poppler.freedesktop.org/ }}
+
{{librow | imagemagick | http://www.imagemagick.org/ }}
*{{lib| SVG++ | http://svgpp.org/ }}
+
{{librow | djvulibre | http://djvu.sourceforge.net/ }}
 +
{{librow | poppler | http://poppler.freedesktop.org/ }}
 +
{{librow | SVG++ | http://svgpp.org/ }}
 +
{{libtableend}}
  
 
==Graphics (3D)==
 
==Graphics (3D)==
  
*{{lib|Vulkan|https://www.khronos.org/vulkan/}}
+
{{libtablebegin}}
*{{lib|OpenGL|http://www.opengl.org/}}
+
{{librow | Vulkan | https://www.khronos.org/vulkan/}}
*{{lib|bgfx|https://github.com/bkaradzic/bgfx#bgfx---cross-platform-rendering-library}} Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
+
{{librow | OpenGL | http://www.opengl.org/}}
*{{lib|Ogre3D|http://www.ogre3d.org/docs/manual/}}
+
{{librow | bgfx | https://github.com/bkaradzic/bgfx#bgfx---cross-platform-rendering-library | Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.}}
*{{lib|Diligent Engine|https://github.com/DiligentGraphics/DiligentEngine}} A modern cross-platform low-level 3D graphics library.
+
{{librow | Ogre3D | http://www.ogre3d.org/docs/manual/}}
*{{lib|GLEW|http://glew.sourceforge.net/}} OpenGL function loading
+
{{librow | Diligent Engine | https://github.com/DiligentGraphics/DiligentEngine | A modern cross-platform low-level 3D graphics library.}}
*{{lib|GLAD|http://glad.dav1d.de/}} Customizable, lightweight library for loading OpenGL functions
+
{{librow | GLEW | http://glew.sourceforge.net/ | OpenGL function loading}}
*{{lib|Epoxy|https://github.com/anholt/libepoxy}} 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.
+
{{librow | GLAD | http://glad.dav1d.de/ | Customizable, lightweight library for loading OpenGL functions}}
*{{lib|GLFW|http://www.glfw.org/}} OpenGL window manager
+
{{librow | Epoxy | https://github.com/anholt/libepoxy | 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.}}
*{{lib|GLM|http://glm.g-truc.net/}} Header only C++ mathematics library for rendering
+
{{librow | GLFW | http://www.glfw.org/ | OpenGL window manager}}
*{{lib|hlsl++|http://github.com/redorav/hlslpp}} Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON
+
{{librow | GLM | http://glm.g-truc.net/ | Header only C++ mathematics library for rendering}}
*{{lib|klein|https://github.com/jeremyong/klein}} C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation
+
{{librow | hlsl++ | http://github.com/redorav/hlslpp | Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON}}
*{{lib|assimp|http://assimp.sourceforge.net/}} 3D model loading
+
{{librow | klein | https://github.com/jeremyong/klein | C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation}}
*{{lib|VTK|http://vtk.org/}}
+
{{librow | assimp | http://assimp.sourceforge.net/ | 3D model loading}}
*{{lib|Magnum|http://magnum.graphics}} Lightweight and modular C++11/C++14 graphics middleware for games and data visualization
+
{{librow | VTK | http://vtk.org/}}
*{{lib|Irrlicht|http://irrlicht.sourceforge.net/}}
+
{{librow | Magnum | http://magnum.graphics | Lightweight and modular C++11/C++14 graphics middleware for games and data visualization}}
*{{lib|Horde3D|http://www.horde3d.org/}}
+
{{librow | Irrlicht | http://irrlicht.sourceforge.net/}}
*{{lib|Visionaray|https://github.com/szellmann/visionaray}} A C++ ray tracing template library
+
{{librow | Horde3D | http://www.horde3d.org/}}
*{{lib|Open CASCADE|https://www.opencascade.com/content/core-technology}} SDK for 3D CAD/CAM/CAE applications  
+
{{librow | Visionaray | https://github.com/szellmann/visionaray | A C++ ray tracing template library}}
*{{lib|OpenSceneGraph |http://www.openscenegraph.org/}}
+
{{librow | Open CASCADE | https://www.opencascade.com/content/core-technology | SDK for 3D CAD/CAM/CAE applications }}
 +
{{librow | OpenSceneGraph | http://www.openscenegraph.org/}}
 +
{{libtableend}}
  
 
==Image Processing==
 
==Image Processing==
  
*{{lib| opencv | http://opencv.org/ }}
+
{{libtablebegin}}
*{{lib| dlib | http://dlib.net/imaging.html }}
+
{{librow | opencv | http://opencv.org/ }}
*{{lib| ITK | https://itk.org/ }}
+
{{librow | dlib | http://dlib.net/imaging.html }}
*{{lib| OTB | https://www.orfeo-toolbox.org/ }}
+
{{librow | ITK | https://itk.org/ }}
 +
{{librow | OTB | https://www.orfeo-toolbox.org/ }}
 +
{{libtableend}}
  
 
==Internationalization==
 
==Internationalization==
  
*{{lib|IBM ICU|http://site.icu-project.org/}}
+
{{libtablebegin}}
*{{lib| gettext | http://www.gnu.org/software/gettext/ }}
+
{{librow | IBM ICU | http://site.icu-project.org/}}
*{{lib| spirit-po | https://github.com/cbeck88/spirit-po | A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.}}
+
{{librow | gettext | http://www.gnu.org/software/gettext/ }}
 +
{{librow | spirit-po | https://github.com/cbeck88/spirit-po | A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.}}
 +
{{libtableend}}
  
 
==Logging==
 
==Logging==
  
*{{lib|Log4cpp|http://log4cpp.sourceforge.net/|A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations (LGPL)}}
+
{{libtablebegin}}
*{{lib|Log4cplus|https://github.com/log4cplus/log4cplus|Logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration.}}
+
{{librow | Log4cpp | http://log4cpp.sourceforge.net/ | A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations (LGPL)}}
*{{lib|spdlog|https://github.com/gabime/spdlog|Super fast, header only, C++ logging library}}
+
{{librow | Log4cplus | https://github.com/log4cplus/log4cplus | Logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration.}}
*{{lib|plog|https://github.com/SergiusTheBest/plog|Portable and simple log for C++ in less than 1000 lines of code (MPL2)}}
+
{{librow | spdlog | https://github.com/gabime/spdlog | Super fast, header only, C++ logging library}}
*{{lib|Boost.Log|https://www.boost.org/doc/libs/1_65_0/libs/log/doc/html/index.html}}
+
{{librow | plog | https://github.com/SergiusTheBest/plog | Portable and simple log for C++ in less than 1000 lines of code (MPL2)}}
*{{lib|glog|https://github.com/google/glog|Google Logging Library}}
+
{{librow | Boost.Log | https://www.boost.org/doc/libs/1_65_0/libs/log/doc/html/index.html}}
*{{lib|log4cxx|https://logging.apache.org/log4cxx/latest_stable/index.html|Apache log4cxx is a logging framework for C++ patterned after Apache log4j}}
+
{{librow | glog | https://github.com/google/glog | Google Logging Library}}
*{{lib|Pantheios|http://www.pantheios.org/|Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility}}
+
{{librow | log4cxx | https://logging.apache.org/log4cxx/latest_stable/index.html | Apache log4cxx is a logging framework for C++ patterned after Apache log4j}}
*{{lib|Backward|https://github.com/bombela/backward-cpp | Printing nice Python-styled stack traces with colors and source snippets, especially on crashes (MIT License).}}
+
{{librow | Pantheios | http://www.pantheios.org/ | Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility}}
*{{lib|Quill|https://github.com/odygrd/quill|C++14 Asynchronous Low Latency Logging Library}}
+
{{librow | Backward | https://github.com/bombela/backward-cpp | Printing nice Python-styled stack traces with colors and source snippets, especially on crashes (MIT License).}}
 +
{{librow | Quill | https://github.com/odygrd/quill | C++14 Asynchronous Low Latency Logging Library}}
 +
{{libtableend}}
  
 
==Math==
 
==Math==
  
*{{lib| stats++ | http://statsxx.com/ | Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code. }}
+
{{libtablebegin}}
*{{lib| StatsLib | https://github.com/kthohr/stats | A templated, header-only library of statistical distribution functions. }}
+
{{librow | stats++ | http://statsxx.com/ | Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code. }}
*{{lib| alglib | http://www.alglib.net/ }}
+
{{librow | StatsLib | https://github.com/kthohr/stats | A templated, header-only library of statistical distribution functions. }}
*{{lib|ArrayFire High Performance Computation Library|http://www.arrayfire.com/docs/index.htm }}
+
{{librow | alglib | http://www.alglib.net/ }}
*{{lib|GNU MP bignum C++ interface|http://gmplib.org/manual/C_002b_002b-Class-Interface.html#C_002b_002b-Class-Interface}}
+
{{librow | ArrayFire High Performance Computation Library | http://www.arrayfire.com/docs/index.htm }}
*{{lib|BigNumber|https://github.com/limeoats/BigNumber|C++ class for creating and computing arbitrary-length integers}}
+
{{librow | GNU MP bignum C++ interface | http://gmplib.org/manual/C_002b_002b-Class-Interface.html#C_002b_002b-Class-Interface}}
*{{lib|Boost.Multiprecision|https://www.boost.org/doc/libs/release/libs/multiprecision/doc/html/index.html}}
+
{{librow | BigNumber | https://github.com/limeoats/BigNumber | C++ class for creating and computing arbitrary-length integers}}
*{{lib|Boost.Math.Special Functions and Statistical Distributions|https://www.boost.org/doc/libs/release/libs/math/doc/sf_and_dist/html/}}
+
{{librow | Boost.Multiprecision | https://www.boost.org/doc/libs/release/libs/multiprecision/doc/html/index.html}}
*{{lib|Boost.Random|https://www.boost.org/doc/libs/release/doc/html/boost_random.html}}
+
{{librow | Boost.Math.Special Functions and Statistical Distributions | https://www.boost.org/doc/libs/release/libs/math/doc/sf_and_dist/html/}}
*{{lib|NTL - A Library for doing Number Theory | http://www.shoup.net/ntl/ }}
+
{{librow | Boost.Random | https://www.boost.org/doc/libs/release/doc/html/boost_random.html}}
*{{lib|cpp-measures|https://github.com/carlomilanesi/cpp-measures/|A header-only C++11 library to handle physical measures }}
+
{{librow | NTL - A Library for doing Number Theory | http://www.shoup.net/ntl/ }}
*{{lib|G+Smo|http://gs.jku.at/gismo|cross-platform library for isogeometric analysis}}
+
{{librow | cpp-measures | https://github.com/carlomilanesi/cpp-measures/ | A header-only C++11 library to handle physical measures }}
*{{lib|C++ Matrix|https://github.com/hosseinmoein/Matrix|High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators}}
+
{{librow | G+Smo | http://gs.jku.at/gismo | cross-platform library for isogeometric analysis}}
*{{lib|SEMT|https://github.com/st-gille/semt|Compile time symbolic differentiation}}
+
{{librow | C++ Matrix | https://github.com/hosseinmoein/Matrix | High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators}}
*{{lib|CasADi|https://web.casadi.org/|Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.}}
+
{{librow | SEMT | https://github.com/st-gille/semt | Compile time symbolic differentiation}}
 +
{{librow | CasADi | https://web.casadi.org/ | Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.}}
 +
{{libtableend}}
  
 
;Numeral Calculations
 
;Numeral Calculations
*{{lib|LibBF|https://bellard.org/libbf|An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits}}
+
 
 +
{{libtablebegin}}
 +
{{librow | LibBF | https://bellard.org/libbf | An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits}}
 +
{{libtableend}}
  
 
;Linear algebra
 
;Linear algebra
*{{lib|Boost.uBLAS|https://www.boost.org/doc/libs/release/libs/numeric/ublas/doc/index.htm}}  
+
 
*{{lib|Eigen|http://eigen.tuxfamily.org/index.php?title{{=}}Main_Page#Documentation}}
+
{{libtablebegin}}
*{{lib|Armadillo|http://arma.sourceforge.net/}}
+
{{librow | Boost.uBLAS | https://www.boost.org/doc/libs/release/libs/numeric/ublas/doc/index.htm}}
*{{lib|Blitz++|http://sourceforge.net/projects/blitz/}}
+
{{librow | Eigen | http://eigen.tuxfamily.org/index.php?title{{=}}Main_Page#Documentation}}
*{{lib|IT++|http://sourceforge.net/projects/itpp/}}
+
{{librow | Armadillo | http://arma.sourceforge.net/}}
*{{lib| Dlib - linear algebra tools | http://dlib.net/linear_algebra.html }}
+
{{librow | Blitz++ | http://sourceforge.net/projects/blitz/}}
*{{lib|Blaze|https://bitbucket.org/blaze-lib/blaze}}
+
{{librow | IT++ | http://sourceforge.net/projects/itpp/}}
*{{lib|ETL|https://github.com/wichtounet/etl}}
+
{{librow | Dlib - linear algebra tools | http://dlib.net/linear_algebra.html }}
*{{lib|DecompLib|https://github.com/jmatta1/DecompLib|A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.}}
+
{{librow | Blaze | https://bitbucket.org/blaze-lib/blaze}}
*{{lib|xtensor|https://xtensor.readthedocs.io/en/latest/|xtensor is a C++ library meant for numerical analysis with multi-dimensional array expressions. (BSD)}}
+
{{librow | ETL | https://github.com/wichtounet/etl}}
*{{lib|PETSc|https://www.mcs.anl.gov/petsc/|A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.}}
+
{{librow | DecompLib | https://github.com/jmatta1/DecompLib | A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.}}
 +
{{librow | xtensor | https://xtensor.readthedocs.io/en/latest/ | xtensor is a C++ library meant for numerical analysis with multi-dimensional array expressions. (BSD)}}
 +
{{librow | PETSc | https://www.mcs.anl.gov/petsc/ | A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.}}
 +
{{libtableend}}
  
 
; Optimization
 
; Optimization
*{{lib| OptimLib | https://github.com/kthohr/optim | A C++11 library of numerical optimization methods for nonlinear functions.}}
+
 
*{{lib| ceres-solver | https://github.com/ceres-solver/ceres-solver | C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. (BSD)}}
+
{{libtablebegin}}
 +
{{librow | OptimLib | https://github.com/kthohr/optim | A C++11 library of numerical optimization methods for nonlinear functions.}}
 +
{{librow | ceres-solver | https://github.com/ceres-solver/ceres-solver | C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. (BSD)}}
 +
{{libtableend}}
  
 
;Graph theory
 
;Graph theory
*{{lib|Boost.Graph|https://www.boost.org/doc/libs/release/libs/graph/doc/index.html}}
+
 
*{{lib|LEMON|http://lemon.cs.elte.hu/trac/lemon}}
+
{{libtablebegin}}
*{{lib|OGDF - Open Graph Drawing Framework|http://www.ogdf.net/}}
+
{{librow | Boost.Graph | https://www.boost.org/doc/libs/release/libs/graph/doc/index.html}}
*{{lib|NGraph - a simple (Network) Graph library in C++ |http://math.nist.gov/~RPozo/ngraph/ngraph_index.html}}
+
{{librow | LEMON | http://lemon.cs.elte.hu/trac/lemon}}
*{{lib|GTpo|https://github.com/cneben/GTpo|C++14 generic graph topology library with Protocol Buffer serialization; project homepage: http://www.qanava.org }}
+
{{librow | OGDF - Open Graph Drawing Framework | http://www.ogdf.net/}}
 +
{{librow | NGraph - a simple (Network) Graph library in C++ | http://math.nist.gov/~RPozo/ngraph/ngraph_index.html}}
 +
{{librow | GTpo | https://github.com/cneben/GTpo | C++14 generic graph topology library with Protocol Buffer serialization; project homepage: http://www.qanava.org }}
 +
{{libtableend}}
  
 
; Class Library for Numbers
 
; Class Library for Numbers
*{{lib| cln | http://www.ginac.de/CLN/ }}
+
 
*{{lib| Universal | https://github.com/stillwater-sc/universal | A C++ template library for universal number arithmetic, replacing IEEE floating point (MIT License)}}
+
{{libtablebegin}}
 +
{{librow | cln | http://www.ginac.de/CLN/ }}
 +
{{librow | Universal | https://github.com/stillwater-sc/universal | A C++ template library for universal number arithmetic, replacing IEEE floating point (MIT License)}}
 +
{{libtableend}}
  
 
; Machine Learning
 
; Machine Learning
*{{lib| stats++ | http://statsxx.com/ }}
+
 
*{{lib| liblinear | http://www.csie.ntu.edu.tw/~cjlin/liblinear/ }}
+
{{libtablebegin}}
*{{lib| Dlib| http://dlib.net/ml.html| machine learning tools}}
+
{{librow | stats++ | http://statsxx.com/ }}
*{{lib| MLPACK| http://mlpack.org| machine learning package}}
+
{{librow | liblinear | http://www.csie.ntu.edu.tw/~cjlin/liblinear/ }}
*{{lib| Shogun| http://shogun-toolbox.org| large scale machine learning toolbox }}
+
{{librow | Dlib | http://dlib.net/ml.html | machine learning tools}}
*{{lib| FANN| http://leenissen.dk/fann/wp/| Fast Artificial Neural Network Library}}
+
{{librow | MLPACK | http://mlpack.org | machine learning package}}
 +
{{librow | Shogun | http://shogun-toolbox.org | large scale machine learning toolbox }}
 +
{{librow | FANN | http://leenissen.dk/fann/wp/ | Fast Artificial Neural Network Library}}
 +
{{libtableend}}
  
 
; Computational geometry
 
; Computational geometry
*{{lib|CGAL| http://www.cgal.org/| Computational geometry algorithms library}}
+
 
*{{lib|Wykobi| http://www.wykobi.com| Computational geometry library}}
+
{{libtablebegin}}
*{{lib|PCL| http://pointclouds.org/| Point Cloud library}}
+
{{librow | CGAL | http://www.cgal.org/ | Computational geometry algorithms library}}
*{{lib|pmp-library| http://www.pmp-library.org/| Polygon Mesh Processing Library}}
+
{{librow | Wykobi | http://www.wykobi.com | Computational geometry library}}
 +
{{librow | PCL | http://pointclouds.org/ | Point Cloud library}}
 +
{{librow | pmp-library | http://www.pmp-library.org/ | Polygon Mesh Processing Library}}
 +
{{libtableend}}
  
 
; Automata theory
 
; Automata theory
*{{lib| yasmine - C++11 UML state machine framework | http://yasmine.seadex.de|doc=http://yasmine.seadex.de/Documentation.html|src=http://yasmine.seadex.de/Downloads.html }}
+
 
 +
{{libtablebegin}}
 +
{{librow | yasmine - C++11 UML state machine framework | http://yasmine.seadex.de | doc=http://yasmine.seadex.de/Documentation.html | src=http://yasmine.seadex.de/Downloads.html }}
 +
{{libtableend}}
  
 
==Metaprogramming==
 
==Metaprogramming==
  
*{{lib|Boost.MPL|https://www.boost.org/doc/libs/release/libs/mpl/doc/index.html|Original metaprogramming library, targeted at C++03, slow}}
+
{{libtablebegin}}
*{{lib|Boost.Hana|https://www.boost.org/doc/libs/release/libs/hana/doc/html/index.html|New metaprogramming library for both types and values}}
+
{{librow | Boost.MPL | https://www.boost.org/doc/libs/release/libs/mpl/doc/index.html | Original metaprogramming library, targeted at C++03, slow}}
*{{lib|Boost.Mp11|https://www.boost.org/doc/libs/release/libs/mp11/doc/html/mp11.html|}}
+
{{librow | Boost.Hana | https://www.boost.org/doc/libs/release/libs/hana/doc/html/index.html | New metaprogramming library for both types and values}}
*{{lib|Boost.CallableTraits|https://www.boost.org/doc/libs/release/libs/callable_traits/doc/html/index.html|}}
+
{{librow | Boost.Mp11 | https://www.boost.org/doc/libs/release/libs/mp11/doc/html/mp11.html | }}
*{{lib|Metal|https://github.com/brunocodutra/metal|Uses eager metafunctions, 100% SFINAE-friendly}}
+
{{librow | Boost.CallableTraits | https://www.boost.org/doc/libs/release/libs/callable_traits/doc/html/index.html | }}
*{{lib|Brigand|https://github.com/edouarda/brigand|Uses eager metafunctions, optimized for best performance}}
+
{{librow | Metal | https://github.com/brunocodutra/metal | Uses eager metafunctions, 100% SFINAE-friendly}}
*{{lib|Meta|https://github.com/ericniebler/meta|Uses eager metafunctions, middle ground between metal and brigand wrt performance}}
+
{{librow | Brigand | https://github.com/edouarda/brigand | Uses eager metafunctions, optimized for best performance}}
*{{lib|Boost.Metaparse|https://www.boost.org/doc/libs/1_61_0/doc/html/metaparse.html|Compile-time parser library, producing types, values, and metafunctions from compile-time strings}}
+
{{librow | Meta | https://github.com/ericniebler/meta | Uses eager metafunctions, middle ground between metal and brigand wrt performance}}
*{{lib|Boost.Proto|https://www.boost.org/doc/libs/1_61_0/doc/html/proto.html|A library for building expression template-backed EDSLs}}
+
{{librow | Boost.Metaparse | https://www.boost.org/doc/libs/1_61_0/doc/html/metaparse.html | Compile-time parser library, producing types, values, and metafunctions from compile-time strings}}
*{{lib|CoMeta|https://github.com/kfrlib/cometa|Lightweight, header-only C++14 metaprogramming library}}
+
{{librow | Boost.Proto | https://www.boost.org/doc/libs/1_61_0/doc/html/proto.html | A library for building expression template-backed EDSLs}}
*{{lib|visit_struct|https://github.com/garbageslam/visit_struct| A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.}}
+
{{librow | CoMeta | https://github.com/kfrlib/cometa | Lightweight, header-only C++14 metaprogramming library}}
*{{lib|refl-cpp|https://github.com/veselink1/refl-cpp| A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies}}
+
{{librow | visit_struct | https://github.com/garbageslam/visit_struct | A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.}}
 +
{{librow | refl-cpp | https://github.com/veselink1/refl-cpp | A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies}}
 +
{{libtableend}}
  
 
==PDF==
 
==PDF==
  
*{{lib| HARU | http://libharu.org/ }}
+
{{libtablebegin}}
*{{lib| PoDoFo | http://podofo.sourceforge.net/ }}
+
{{librow | HARU | http://libharu.org/ }}
*{{lib| JagPDF | http://www.jagpdf.org/ }}
+
{{librow | PoDoFo | http://podofo.sourceforge.net/ }}
 +
{{librow | JagPDF | http://www.jagpdf.org/ }}
 +
{{libtableend}}
  
 
==Physics and Simulations==
 
==Physics and Simulations==
  
*{{lib|ReactPhysics3D|https://www.reactphysics3d.com| C++ physics engine library for 3D simulations and game}}
+
{{libtablebegin}}
*{{lib|ProjectCHRONO|http://projectchrono.org| An Open Source Multi-physics Simulation Engine}}
+
{{librow | ReactPhysics3D | https://www.reactphysics3d.com | C++ physics engine library for 3D simulations and game}}
*{{lib|Bullet|https://pybullet.org/wordpress| Physics simulation for games, visual effects, robotics and reinforcement learning}}
+
{{librow | ProjectCHRONO | http://projectchrono.org | An Open Source Multi-physics Simulation Engine}}
 +
{{librow | Bullet | https://pybullet.org/wordpress | Physics simulation for games, visual effects, robotics and reinforcement learning}}
 +
{{libtableend}}
  
 
==Serialization==
 
==Serialization==
  
*{{lib|Boost.Serialization|https://www.boost.org/doc/libs/release/libs/serialization/}}
+
{{libtablebegin}}
*{{lib|libs11n|http://www.s11n.net}}
+
{{librow | Boost.Serialization | https://www.boost.org/doc/libs/release/libs/serialization/}}
*{{lib|sweet_persist|http://www.sweetsoftware.co.nz/persist_overview.html}}
+
{{librow | libs11n | http://www.s11n.net}}
*{{lib|protobuf | https://github.com/google/protobuf/ }}
+
{{librow | sweet_persist | http://www.sweetsoftware.co.nz/persist_overview.html}}
*{{lib|gSOAP|http://gsoap2.sourceforge.net|accurate XML serialization}}
+
{{librow | protobuf | https://github.com/google/protobuf/ }}
*{{lib|C++ XML objects | http://cppxmlobj.sourceforge.net}}
+
{{librow | gSOAP | http://gsoap2.sourceforge.net | accurate XML serialization}}
*{{lib|yaml-cpp| https://github.com/jbeder/yaml-cpp }}
+
{{librow | C++ XML objects | http://cppxmlobj.sourceforge.net}}
*{{lib|YAS (Yet Another Serialization)|https://github.com/niXman/yas}}
+
{{librow | yaml-cpp | https://github.com/jbeder/yaml-cpp }}
*{{lib|cereal (C++11 serialization)|http://uscilab.github.io/cereal/}}
+
{{librow | YAS (Yet Another Serialization) | https://github.com/niXman/yas}}
*{{lib|jios (JSON serialization)|https://github.com/castedo/jios}}
+
{{librow | cereal (C++11 serialization) | http://uscilab.github.io/cereal/}}
*{{lib|ThorsSerializer (JSON/YAML Input Output Streams)|https://github.com/Loki-Astari/ThorsSerializer}}
+
{{librow | jios (JSON serialization) | https://github.com/castedo/jios}}
*{{lib|iguana (universal serialization engine)|https://github.com/qicosmos/iguana}}
+
{{librow | ThorsSerializer (JSON/YAML Input Output Streams) | https://github.com/Loki-Astari/ThorsSerializer}}
*{{lib|cppcodec|https://github.com/tplgy/cppcodec|Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API (MIT License)}}
+
{{librow | iguana (universal serialization engine) | https://github.com/qicosmos/iguana}}
*{{lib|rpnx-serial|https://github.com/Exaeta/rpnx-serial}} A library that can (de)serialize types like std::map, std::vector, etc.
+
{{librow | cppcodec | https://github.com/tplgy/cppcodec | Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API (MIT License)}}
*{{lib|GPDS|https://github.com/simulton/gpds|General purpose data serializer to serialize objects  
+
{{librow | rpnx-serial | https://github.com/Exaeta/rpnx-serial | A library that can (de)serialize types like std::map, std::vector, etc.}}
 +
{{librow | GPDS | https://github.com/simulton/gpds | General purpose data serializer to serialize objects  
 +
{{libtableend}}
  
 
;Binary serialization
 
;Binary serialization
*{{lib| UBjsonCpp | https://github.com/WhiZTiM/UbjsonCpp | High-performance UBJson read-write library based on C++14}}
+
 
*{{lib|binn | https://github.com/liteserver/binn | A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format. }}
+
{{libtablebegin}}
*{{lib| bson-cxx | https://github.com/dwight/bson-cxx | C++ implementation in BSON format. }}
+
{{librow | UBjsonCpp | https://github.com/WhiZTiM/UbjsonCpp | High-performance UBJson read-write library based on C++14}}
 +
{{librow | binn | https://github.com/liteserver/binn | A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format. }}
 +
{{librow | bson-cxx | https://github.com/dwight/bson-cxx | C++ implementation in BSON format. }}
 
to and from XML. Uses TinyXML under the hood.}}
 
to and from XML. Uses TinyXML under the hood.}}
*{{lib|fast_ber|https://github.com/Samuel-Tyler/fast_ber|High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11. }}
+
{{librow | fast_ber | https://github.com/Samuel-Tyler/fast_ber | High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11. }}
 +
{{libtableend}}
  
 
==Sorting==
 
==Sorting==
  
*{{lib|Timsort|https://github.com/gfx/cpp-TimSort|Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. (MIT)}}
+
{{libtablebegin}}
*{{lib|Indiesort|https://plflib.org/indiesort.htm|Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays (zLib)}}
+
{{librow | Timsort | https://github.com/gfx/cpp-TimSort | Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. (MIT)}}
 +
{{librow | Indiesort | https://plflib.org/indiesort.htm | Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays (zLib)}}
 +
{{libtableend}}
  
 
==System==
 
==System==
  
*{{lib|Infoware|https://github.com/ThePhD/infoware|C++ Library for pulling system and hardware information, without hitting the command line. (Creative Commons Zero v1.0 Universal)}}
+
{{libtablebegin}}
 +
{{librow | Infoware | https://github.com/ThePhD/infoware | C++ Library for pulling system and hardware information, without hitting the command line. (Creative Commons Zero v1.0 Universal)}}
 +
{{libtableend}}
  
 
==Terminal==
 
==Terminal==
  
*{{lib| cwidget | https://cwidget.alioth.debian.org }}
+
{{libtablebegin}}
*{{lib| replxx | https://github.com/AmokHuginnsson/replxx | A readline and libedit replacement that supports UTF-8, syntax highlighting & hints. }}
+
{{librow | cwidget | https://cwidget.alioth.debian.org }}
 +
{{librow | replxx | https://github.com/AmokHuginnsson/replxx | A readline and libedit replacement that supports UTF-8, syntax highlighting & hints. }}
 +
{{libtableend}}
  
 
==Testing==
 
==Testing==
  
*{{lib| Boost.Test | https://www.boost.org/libs/test/ }}
+
{{libtablebegin}}
*{{lib| cppunit | http://sourceforge.net/projects/cppunit/}}
+
{{librow | Boost.Test | https://www.boost.org/libs/test/ }}
*{{lib| Google Test | https://github.com/google/googletest/}}
+
{{librow | cppunit | http://sourceforge.net/projects/cppunit/}}
*{{lib| Catch2 | https://github.com/catchorg/Catch2}}
+
{{librow | Google Test | https://github.com/google/googletest/}}
*{{lib| doctest | https://github.com/onqtam/doctest | The lightest feature-rich C++ single-header testing framework for unit tests and TDD}}
+
{{librow | Catch2 | https://github.com/catchorg/Catch2}}
*{{lib| lest | https://github.com/martinmoene/lest | A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).}}
+
{{librow | doctest | https://github.com/onqtam/doctest | The lightest feature-rich C++ single-header testing framework for unit tests and TDD}}
*{{lib| liblittletest | https://github.com/etr/liblittletest| Portable, one file header-only testing framework}}
+
{{librow | lest | https://github.com/martinmoene/lest | A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).}}
*{{lib| ELFspy | https://github.com/mollismerx/elfspy | Testing in isolation with fakes and spies - Linux only}}
+
{{librow | liblittletest | https://github.com/etr/liblittletest | Portable, one file header-only testing framework}}
*{{lib| xtd.tunit | https://github.com/gammasoft71/xtd.tunit | Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. [https://gammasoft71.wixsite.com/xtd-tunit Office site]}}
+
{{librow | ELFspy | https://github.com/mollismerx/elfspy | Testing in isolation with fakes and spies - Linux only}}
*{{lib| bandit | http://banditcpp.github.io/bandit/ | Human-friendly unit testing for C++11}}
+
{{librow | xtd.tunit | https://github.com/gammasoft71/xtd.tunit | Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. [https://gammasoft71.wixsite.com/xtd-tunit Office site]}}
 +
{{librow | bandit | http://banditcpp.github.io/bandit/ | Human-friendly unit testing for C++11}}
 +
{{libtableend}}
  
 
==Text==
 
==Text==
 
;coding
 
;coding
*{{lib| uchardet | https://github.com/BYVoid/uchardet | The ability to guess string encoding is basically the same as the uchardet function in Python. }}
+
 
*{{lib| win-iconv | https://github.com/win-iconv/win-iconv | The character set encoding conversion library for Linux and Mac The Windows implementation of iconv is based on the Win32 Character Set Conversion API. }}
+
{{libtablebegin}}
 +
{{librow | uchardet | https://github.com/BYVoid/uchardet | The ability to guess string encoding is basically the same as the uchardet function in Python. }}
 +
{{librow | win-iconv | https://github.com/win-iconv/win-iconv | The character set encoding conversion library for Linux and Mac The Windows implementation of iconv is based on the Win32 Character Set Conversion API. }}
 +
{{libtableend}}
 +
 
 
;format
 
;format
*{{lib | fmt | https://github.com/fmtlib/fmt | printf is not easy to use, ostream is not easy to use, format is easy to use}}
+
 
 +
{{libtablebegin}}
 +
{{librow | fmt | https://github.com/fmtlib/fmt | printf is not easy to use, ostream is not easy to use, format is easy to use}}
 +
{{libtableend}}
 +
 
 
; Parse
 
; Parse
*{{lib| PEGTL | https://github.com/taocpp/PEGTL | Parsing Expression Grammar Template Library}}
+
 
*{{lib| BNFlite | https://github.com/r35382/bnflite | A single file header only lightweight grammar parser library}}
+
{{libtablebegin}}
 +
{{librow | PEGTL | https://github.com/taocpp/PEGTL | Parsing Expression Grammar Template Library}}
 +
{{librow | BNFlite | https://github.com/r35382/bnflite | A single file header only lightweight grammar parser library}}
 +
{{libtableend}}
 +
 
 
; Search
 
; Search
*{{lib| clucene | http://clucene.sourceforge.net }}
+
 
*{{lib| xapian | https://xapian.org/ }}
+
{{libtablebegin}}
*{{lib| Step | https://github.com/storm-ptr/step | Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array. }}
+
{{librow | clucene | http://clucene.sourceforge.net }}
 +
{{librow | xapian | https://xapian.org/ }}
 +
{{librow | Step | https://github.com/storm-ptr/step | Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array. }}
 +
{{libtableend}}
 +
 
 
; Template Engine
 
; Template Engine
*{{lib| inja | https://github.com/pantor/inja | A Template Engine for Modern C++ }}
+
 
*{{lib| Jinja2C++ | https://github.com/jinja2cpp/Jinja2Cpp | Modern C++ implementation of Jinja2 templates }}
+
{{libtablebegin}}
 +
{{librow | inja | https://github.com/pantor/inja | A Template Engine for Modern C++ }}
 +
{{librow | Jinja2C++ | https://github.com/jinja2cpp/Jinja2Cpp | Modern C++ implementation of Jinja2 templates }}
 +
{{libtableend}}
  
 
==Version Control ==
 
==Version Control ==
*{{lib | LibGit2 | https://libgit2.org/ | Version Control System Git's core library. }}
+
 
*{{lib | coo-semver | https://github.com/easz/cpp-semver | The C++ operation library for semantic version numbers. }}
+
{{libtablebegin}}
 +
{{librow | LibGit2 | https://libgit2.org/ | Version Control System Git's core library. }}
 +
{{librow | coo-semver | https://github.com/easz/cpp-semver | The C++ operation library for semantic version numbers. }}
 +
{{libtableend}}
  
 
==Video==
 
==Video==
  
*{{lib| crystalhd | http://www.broadcom.com/support/crystal_hd/ }}
+
{{libtablebegin}}
*{{lib| mjpegtools | http://mjpeg.sourceforge.net/ }}
+
{{librow | crystalhd | http://www.broadcom.com/support/crystal_hd/ }}
*{{lib| libmatroska | http://www.matroska.org/ }}
+
{{librow | mjpegtools | http://mjpeg.sourceforge.net/ }}
*{{lib| libVLC | http://wiki.videolan.org/LibVLC }}
+
{{librow | libmatroska | http://www.matroska.org/ }}
*{{lib| gstreamermm | http://gstreamer.freedesktop.org/ }}
+
{{librow | libVLC | http://wiki.videolan.org/LibVLC }}
 +
{{librow | gstreamermm | http://gstreamer.freedesktop.org/ }}
 +
{{libtableend}}
  
 
==Web==
 
==Web==
*{{lib| libnavajo | https://github.com/titi38/libnavajo }}
+
 
*{{lib| libmusicbrainz5 | https://musicbrainz.org/doc/libmusicbrainz }}
+
{{libtablebegin}}
*{{lib| liblastfm | https://www.last.fm/ }}
+
{{librow | libnavajo | https://github.com/titi38/libnavajo }}
*{{lib| libkcddb | https://www.kde.org/ }}
+
{{librow | libmusicbrainz5 | https://musicbrainz.org/doc/libmusicbrainz }}
*{{lib| Chromium Embedded | https://bitbucket.org/chromiumembedded/cef/ }}
+
{{librow | liblastfm | https://www.last.fm/ }}
*{{lib| QtWebApp | http://stefanfrings.de/qtwebapp/index-en.html }} HTTP(s) Server in C++ inspired by Java Servlets
+
{{librow | libkcddb | https://www.kde.org/ }}
*{{lib| Wt|http://www.webtoolkit.eu/wt/|doc=http://www.webtoolkit.eu/wt/doc/reference/html/index.html|src=http://www.webtoolkit.eu/wt/download}}
+
{{librow | Chromium Embedded | https://bitbucket.org/chromiumembedded/cef/ }}
*{{lib| Tufão | https://github.com/vinipsmaker/tufao }}
+
{{librow | QtWebApp | http://stefanfrings.de/qtwebapp/index-en.html | HTTP(s) Server in C++ inspired by Java Servlets}}
*{{lib| libhttpserver | https://github.com/etr/libhttpserver}}
+
{{librow | Wt | http://www.webtoolkit.eu/wt/ | doc=http://www.webtoolkit.eu/wt/doc/reference/html/index.html | src=http://www.webtoolkit.eu/wt/download}}
*{{lib| cpp-jwt | https://github.com/arun11299/cpp-jwt}}
+
{{librow | Tufão | https://github.com/vinipsmaker/tufao }}
*{{lib| oatpp | https://oatpp.io/}} Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.
+
{{librow | libhttpserver | https://github.com/etr/libhttpserver}}
*{{lib| Drogon | https://github.com/an-tao/drogon}} A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.
+
{{librow | cpp-jwt | https://github.com/arun11299/cpp-jwt}}
 +
{{librow | oatpp | https://oatpp.io/ | Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.}}
 +
{{librow | Drogon | https://github.com/an-tao/drogon | A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.}}
 +
{{libtableend}}
  
 
===See also===
 
===See also===
Line 658: Line 792:
 
{{dsc end}}
 
{{dsc end}}
  
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
+
{{langlinks | de | es | fr | it | ja | pt | ru | zh}}

Revision as of 00:42, 4 July 2020

The objective of this page is to build a comprehensive list of open source C++ libraries, so that when one needs an implementation of particular functionality, one needn't to waste time searching on web (DuckDuckGo, Google, Bing etc.).

If you know a library that might be useful to others, please add a link to it here. There are no restrictions on what can be included except that the source of the library must be readily available to download.

The page is provided 'as is' - with the hope of being useful, but without any warranties. Outdated, misleading or wrong links might appear here. If you've noticed one of these, it would be great if you fixed the error.

Contents

Package managers

Audio

Library Description License Configuration
soundtouch
KFR Fast, modern DSP framework, DFT/FFT, Audio resampling, FIR/IIR filters, Biquad
Aquila cross-platform DSP library
FFTW library for computing the DFT
Fingerprinting
Library Description License Configuration
chromaprint
libofa
libmusicbrainz
Formats
Library Description License Configuration
audiofile
flac
libsndfile
Tagging
Library Description License Configuration
id3lib
taglib
CD
Library Description License Configuration
libkcompactdisc

Benchmarking

Library Description License Configuration
Celero Apache License CMake
benchmark A library to benchmark code snippets, similar to unit tests Apache License 2.0 CMake
gperftools 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization. BSD 3-Clause "New" or "Revised" License configure
plf::nanotimer Lowest-overhead, cross-platform simple timer class for benchmarking. zlib license

Communication

Library Description License Configuration
sockpp A simple, modern C++ socket library BSD 3-Clause "New" or "Revised" License CMake
libnavajo C++ framework including a fast multithreaded http server, HTML5 Websockets, SSL, X509 and HTTP authentification, compression, cookies and advanced session management, IPv4 and IPv6 (CeCILL-C). CeCILL-C FREE SOFTWARE LICENSE AGREEMENT CMake
C++ RESTful framework C++ micro-framework designed to be embedded into a wide range of applications. CMake
C++ REST SDK asynchronous HTTP client and listener, asynchronous Stream, URI, JSON MIT License CMake
cpr a modern C++ HTTP requests library MIT License CMake
cpp-netlib cpp-netlib: The C++ Network Library Boost Software License 1.0 CMake
tacopie C++11 TCP Library MIT License CMake
Boost.Asio asynchronous and synchronous networking, timers, serial I/O
Boost.Beast HTTP and WebSocket library built on top of Boost.Asio
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
TAO CORBA
wvstreams
Unicomm asynchronous networking, high-level TCP communication framework
restful_mapper ORM for consuming RESTful JSON APIs in C++ CMake, Makefile
Paho MQTT Modern C++ client for MQTT from Eclipse CMake
zeromq fast message queue
nanomsg fast message queue, zeromq successor
nng fast message queue, nanomsg successor
curlpp C++ wrapper for CURL library
Apache Thrift The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.
libashttp asynchronous HTTP client library GNU Lesser General Public License v3.0
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
PcapPlusPlus Multiplatform C++ network sniffing and packet parsing and crafting framework
HTTPP Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. BSD 2-Clause "Simplified" License CMake, Makefile
The Silicon C++14 Web Framework Fast and Robust Web APIs MIT
ngrest Fast and easy in use JSON RESTful Web Services Framework Apache License 2.0 CMake
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 License CMake
OpenDDS DDS implementation
Breep Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. European Union Public License 1.1 CMake
uvw libuv wrapper in modern C++ MIT License CMake
rest_rpc modern, simple, easy to use rpc framework CMake
EasyHttp A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. MIT License CMake
nghttp2 HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) MIT License CMake, configure
IXWebSocket Open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. BSD 3-Clause "New" or "Revised" License CMake, Makefile
KCP A fast and reliable ARQ protocol that helps applications to reduce network latency. MIT License CMake
gRPC gRPC is a modern open source high performance RPC framework that can run in any environment.
seastar High performance server-side application framework, based on C++14/C++17. Apache License 2.0 CMake, etc.
stream-client Lightweight, header-only, Boost-based client-side socket/connector/socket pool/resolver Apache License 2.0 CMake
eCAL high performance inter-process communication Apache License 2.0 CMake
fineftp-server ftp server library for windows and unix MIT License CMake

Concurrency

Library Description License Configuration
Intel TBB
OpenMP
Taskflow Parallel Task Programming in Modern C++
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
hipSYCL provides a clang-based toolchain and a runtime SYCL implementation that can run on multiple target devices (NVIDIA/AMD GPU,s CPU)
Boost.Compute (unofficial) STL-like algorithms and data-structures for OpenCL
Boost.Interprocess
Boost.Thread
Boost.Atomic
Boost.Lockfree
Boost.MPI
Boost.Context
libopenmpi
libsimdpp
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale
KOKKOS A programming model in C++ for writing performance portable HPC applications
SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.
BlockingCollection A C++11 thread safe collection class modeled after .NET BlockingCollection.
Xenium A header-only library providing various concurrent data structures and reclamation schemes.
subprocess a cross platform library for running subprocesses.

Configuration

Library Description License Configuration
gconfmm
libconfig
libconfini INI parser
Boost.Program_options
XML
Library Description License Configuration
libxml++
pugixml
tinyxml
tinyxml2 Another and work in progress of TinyXML.
Xerces
gSOAP XML data bindings
ai-xml Serialize objects to and from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.
JSON
Library Description License Configuration
json Niels Lohmann JSON
ArduinoJson ArduinoJson
jsonme--
ThorsSerializer (JSON/YAML Input Output Streams)
JsonBox
jsoncpp
zoolib
JOST
CAJUN
libjson
nosjob
rapidjson
jsoncons A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.
JSON++
qjson
json-cpp
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)
simdjson Parsing gigabytes of JSON per second
struct_mapping Mapping json to and from a c++ structure
YAML
Library Description License Configuration
yaml-cpp
TOML
Library Description License Configuration
toml11 TOML parsing library based on C++11
toml++ TOML parser and serializer for C++17 and later
HOCON
Library Description License Configuration
cpp-hocon The C++ implementation of the HOCON format developed by Pupplet.
CSS
Library Description License Configuration
mycss CSS Parser

Containers

Library Description License Configuration
Boost.Any
Boost.Array
Boost.Bimap
Boost.Container
Boost.Fusion
Boost.Heap
Boost.Pointer Container
Boost.Tuple
Boost.Variant
cpp-btree btree_map, btree_set, btree_multimap, btree_multiset.
TdhLists
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.
Ygg An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map.
plf::list std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration.
plf::stack Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context.
plf::colony Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure.
ring_span A simplified implementation of Arthur O'Dwyer's ring_span - ie. a circular buffer view.
Frozen constexpr perfect-hashing-based frozen sets and maps Apache 2.0
DataFrame C++ DataFrame -- R's and Pandas DataFrame in modern C++ using native types, continuous memory storage, and no virtual functions.

Cryptography

Library Description License Configuration
Botan
gnutls
openssl
crypto++
TomCrypt

Databases

Library Description License Configuration
redis-plus-plus A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface
cpp-redis C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.
redis-cpp C++17 Lightweight C++ client header-only library for executing Redis commands.
OTL
DTL
libpqxx
lmdb++ C++11 wrapper for the LMDB embedded B+ tree database library.
mongocxx C++11 driver library for MongoDB
mysql++
ODB - C++ Object-Relational Mapping (ORM)
Pgfe - PostGres FrontEnd The modern C++ client API to PostgreSQL
QUINCE: QUeries IN C++ Expressions (ORM+EDSL)
QxOrm - C++ Qt Object-Relational Mapping (ORM)
SOCI
sqlpp11
SQLAPI++
SQLiteCPP
EasyQtSql A lightweight header-only C++11 library for quick and easy SQL querying with QtSql
LevelDB A C++ library developed by Google that handles billion-scale Key-Value data persistence storage.
QTL A friendly and lightweight C++ database library for MySQL, SQLite and ODBC.

Embedded languages bindings

Library Description License Configuration
ChaiScript
ExprTk
lua
sol2
AngelScript a scripting language like C++.
Jinx Scripting language designed for videogames.
mozjs
muparser
PythonQt
ScriptCaller a header only library allowing us to call ruby scripts.
v8pp Bind C++ functions and classes into V8 JavaScript engine

Embedded/realtime

Library Description License Configuration
QP/C++ RTOS kernel, dual GPL
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

File metadata

Library Description License Configuration
libkexiv2
exiv2
exempi
rarian

Financial Calculations

Library Description License Configuration
QuantLib - Quantitative finance library
DataFrame C++ DataFrame -- R's and Pandas DataFrame in modern C++ using native types, continuous memory storage, and no virtual functions.

Game Engine Architecture

Library Description License Configuration
EntityX
Anax
EntityPlus
EnTT
BOX2D Physics engine

General Multimedia

Library Description License Configuration
SFML (Simple and Fast Multimedia Library)
SDL (Simple DirectMedia Layer) cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or 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
openFrameworks
Kigs-framework Modular Multi-purpose Cross Platform Framework MIT license

Generic

Library Description License Configuration
Abseil
Boost large collection of generic libraries Boost License
GSL Guidelines Support library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines
BDE The Bloomberg Development Environment core libraries from Bloomberg L.P. Apache License
Cinder
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
yomm2 Open multi-methods for C++17 Boost License
Folly Facebook open-source library. Library of C++11 components designed with practicality and efficiency in mind.
Abseil An open-source collection of C++ library code from Google designed to augment the C++ standard library.
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 License
Better Enums Reflective enums (enum to string, iteration, etc.) with constexpr support. BSD License
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::intrusive, but not STL-compatible.
Yato Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. Apache-2.0
Kangaru A dependency injection container for C++11 and C++14 MIT License
yaal algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more (CC BY-ND-NC 4.0)
gsl-lite A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later MIT License
nonstd-lite Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments Boost License
units A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies MIT License

GPS

Library Description License Configuration
gpsd

Graphic user interface

Library Description License Configuration
Dear ImGui A bloat-free graphical user interface library that is highly optimized.
FLTK
nana GUI programming in modern C++ style (Boost License)
nanogui Minimalistic cross-platform widget library for OpenGL 3.x or higher
WxWidgets
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)
CopperSpice
Library Description License Configuration
CopperSpice CopperSpice is a set of C++ libraries used to develop cross-platform software applications. It is released under the LGPL V2.1 license. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework.
CsSignal Standalone C++ thread aware signal/slot library
CsString Standalone C++ unicode aware string library
libGuarded Standalone C++ multithreading library for managing access to shared data
GTK+
Library Description License Configuration
glibmm
gtkmm
goocanvasmm
libglademm
libgnomecanvasmm
webkitgtk
flowcanvas
evince
Qt
Library Description License Configuration
Qt
qwtplot3d
qwt5 Qt Widgets for Technical Applications
libdbusmenu-qt
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

Graphics

Library Description License Configuration
cairomm
nux
pangomm
gegl
nanovg 2D drawing library based on openGL/DX/metal.
bgfx Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on.

Images

Library Description License Configuration
stb
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
Plotting
Library Description License Configuration
plotutils
Formats
Library Description License Configuration
Kaitai Struct C++ runtime
libraw
openexr
qimageblitz
imagemagick
djvulibre
poppler
SVG++

Graphics (3D)

Library Description License Configuration
Vulkan
OpenGL
bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Ogre3D
Diligent Engine A modern cross-platform low-level 3D graphics library.
GLEW OpenGL function loading
GLAD Customizable, lightweight library for loading OpenGL functions
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
hlsl++ Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON
klein C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation
assimp 3D model loading
VTK
Magnum Lightweight and modular C++11/C++14 graphics middleware for games and data visualization
Irrlicht
Horde3D
Visionaray A C++ ray tracing template library
Open CASCADE SDK for 3D CAD/CAM/CAE applications
OpenSceneGraph

Image Processing

Library Description License Configuration
opencv
dlib
ITK
OTB

Internationalization

Library Description License Configuration
IBM ICU
gettext
spirit-po A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.

Logging

Library Description License Configuration
Log4cpp A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations (LGPL)
Log4cplus Logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration.
spdlog Super fast, header only, C++ logging library
plog Portable and simple log for C++ in less than 1000 lines of code (MPL2)
Boost.Log
glog Google Logging Library
log4cxx Apache log4cxx is a logging framework for C++ patterned after Apache log4j
Pantheios Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility
Backward Printing nice Python-styled stack traces with colors and source snippets, especially on crashes (MIT License).
Quill C++14 Asynchronous Low Latency Logging Library

Math

Library Description License Configuration
stats++ Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.
StatsLib A templated, header-only library of statistical distribution functions.
alglib
ArrayFire High Performance Computation Library
GNU MP bignum C++ interface
BigNumber C++ class for creating and computing arbitrary-length integers
Boost.Multiprecision
Boost.Math.Special Functions and Statistical Distributions
Boost.Random
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
C++ Matrix High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators
SEMT Compile time symbolic differentiation
CasADi Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.
Numeral Calculations
Library Description License Configuration
LibBF An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits
Linear algebra
Library Description License Configuration
Boost.uBLAS
Eigen
Armadillo
Blitz++
IT++
Dlib - linear algebra tools
Blaze
ETL
DecompLib A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.
xtensor xtensor is a C++ library meant for numerical analysis with multi-dimensional array expressions. (BSD)
PETSc A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.
Optimization
Library Description License Configuration
OptimLib A C++11 library of numerical optimization methods for nonlinear functions.
ceres-solver C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. (BSD)
Graph theory
Library Description License Configuration
Boost.Graph
LEMON
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
Library Description License Configuration
cln
Universal A C++ template library for universal number arithmetic, replacing IEEE floating point (MIT License)
Machine Learning
Library Description License Configuration
stats++
liblinear
Dlib machine learning tools
MLPACK machine learning package
Shogun large scale machine learning toolbox
FANN Fast Artificial Neural Network Library
Computational geometry
Library Description License Configuration
CGAL Computational geometry algorithms library
Wykobi Computational geometry library
PCL Point Cloud library
pmp-library Polygon Mesh Processing Library
Automata theory
Library Description License Configuration
yasmine - C++11 UML state machine framework

Metaprogramming

Library Description License Configuration
Boost.MPL Original metaprogramming library, targeted at C++03, slow
Boost.Hana New metaprogramming library for both types and values
Boost.Mp11
Boost.CallableTraits
Metal Uses eager metafunctions, 100% SFINAE-friendly
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/14. Self-contained, 200-400 lines of code depending how you count.
refl-cpp A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies

PDF

Library Description License Configuration
HARU
PoDoFo
JagPDF

Physics and Simulations

Library Description License Configuration
ReactPhysics3D C++ physics engine library for 3D simulations and game
ProjectCHRONO An Open Source Multi-physics Simulation Engine
Bullet Physics simulation for games, visual effects, robotics and reinforcement learning

Serialization

Library Description License Configuration
Boost.Serialization
libs11n
sweet_persist
protobuf
gSOAP accurate XML serialization
C++ XML objects
yaml-cpp
YAS (Yet Another Serialization)
cereal (C++11 serialization)
jios (JSON serialization)
ThorsSerializer (JSON/YAML Input Output Streams)
iguana (universal serialization engine)
cppcodec Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API (MIT License)
rpnx-serial A library that can (de)serialize types like std::map, std::vector, etc.
GPDS General purpose data serializer to serialize objects
Binary serialization
to and from XML. Uses TinyXML under the hood.
Library Description License Configuration
UBjsonCpp High-performance UBJson read-write library based on C++14
binn A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.
bson-cxx C++ implementation in BSON format.
fast_ber High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11.

Sorting

Library Description License Configuration
Timsort Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. (MIT)
Indiesort Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays (zLib)

System

Library Description License Configuration
Infoware C++ Library for pulling system and hardware information, without hitting the command line. (Creative Commons Zero v1.0 Universal)

Terminal

Library Description License Configuration
cwidget
replxx A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.

Testing

Library Description License Configuration
Boost.Test
cppunit
Google Test
Catch2
doctest The lightest feature-rich C++ single-header testing framework for unit tests and TDD
lest A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).
liblittletest Portable, one file header-only testing framework
ELFspy Testing in isolation with fakes and spies - Linux only
xtd.tunit Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. Office site
bandit Human-friendly unit testing for C++11

Text

coding
Library Description License Configuration
uchardet The ability to guess string encoding is basically the same as the uchardet function in Python.
win-iconv The character set encoding conversion library for Linux and Mac The Windows implementation of iconv is based on the Win32 Character Set Conversion API.
format
Library Description License Configuration
fmt printf is not easy to use, ostream is not easy to use, format is easy to use
Parse
Library Description License Configuration
PEGTL Parsing Expression Grammar Template Library
BNFlite A single file header only lightweight grammar parser library
Search
Library Description License Configuration
clucene
xapian
Step Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array.
Template Engine
Library Description License Configuration
inja A Template Engine for Modern C++
Jinja2C++ Modern C++ implementation of Jinja2 templates

Version Control

Library Description License Configuration
LibGit2 Version Control System Git's core library.
coo-semver The C++ operation library for semantic version numbers.

Video

Library Description License Configuration
crystalhd
mjpegtools
libmatroska
libVLC
gstreamermm

Web

Library Description License Configuration
libnavajo
libmusicbrainz5
liblastfm
libkcddb
Chromium Embedded
QtWebApp HTTP(s) Server in C++ inspired by Java Servlets
Wt
Tufão
libhttpserver
cpp-jwt
oatpp Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.
Drogon A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.

See also

C documentation for Non-ANSI/ISO Libraries