A list of open source C++ libraries

From cppreference.com

The objective of this page is to build a comprehensible list of open source C++ libraries, so that when one needs an implementation of particular functionality, he doesn't need to waste time searching on Google.

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 it must be possible to download the source of the library.

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

[edit] Generic

  • Boost -  large collection of generic libraries
  • Loki -  design patterns
  • Reason -  xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression

[edit] Communication

  • boost.ASIO - asynchronous and synchronous networking, timers, serial I/O
  • POCO -  networking: zip, encryption, http
  • ACE -  asynchronous networking, event demultiplexing, messaging, CORBA
  • wvstreams
  • gsoap

[edit] Graphic user interface

[edit] FLTK

FLTK

[edit] GTK+

glibmm gtkmm goocanvasmm libglademm libgnomecanvasmm webkitgtk flowcanvas evince

[edit] QT

Qt[src][doc]-- qwtplot3d-- qwt5-- libdbusmenu-qt

[edit] Graphics

cairomm nux pangomm gegl

Plotting

plotutils

Formats

libraw openexr qimageblitz imagemagick djvulibre poppler

[edit] Audio

soundtouch

Fingerprinting

chromaprint libofa libmusicbrainz

Formats

audiofile flac

Tagging

id3lib taglib

CD

libkcompactdisc


[edit] Video

crystalhd mjpegtools libmatroska libVLC gstreamermm

[edit] 3D Graphics

Ogre3D

[edit] Internationalization

IBM ICU gettext

[edit] Math

GNU MP bignum C++ interface -- boost.math.Special Functions and Statistical Distributions -- boost.Random

Linear algebra

boost.uBLAS -- Eigen -- Armadillo -- Blitz++ -- IT++

Graph theory

boost.Graph -- LEMON

alglib

Class Library for Numbers

cln

Library for Large Linear Classification

liblinear


[edit] Concurrency

Intel TBB-- OpenMP -- boost.interprocess -- boost.thread -- boost.MPI -- boost.context libopenmpi

[edit] Containers

boost.any-- boost.array-- boost.bimap-- boost.fusion-- boost.heap-- boost.ptr_container-- boost.tuple-- boost.variant

[edit] Serialization

boost.serialization-- libs11n-- sweet_persist-- protobuf C++ XML objects yaml-cpp

[edit] Testing

boost.test cppunit Google Test

[edit] XML

libxml++-- tinyxml Xerces

[edit] JSON

JSONKit-- jsonme---- ThorsSerializer-- JsonBox-- jsoncpp-- zoolib-- JOST-- CAJUN-- libjson-- nosjob-- rapidjson-- qjson

[edit] Web

libmusicbrainz5-- liblastfm-- libkcddb

[edit] GPS

gpsd

[edit] Databases

mysql++ libpqxx sqlapi brig

[edit] Cryptography

gnutls

[edit] File metadata

libkexiv2 exiv2 exempi rarian

[edit] Text

Search

clucene xapian

[edit] Terminal

cwidget

[edit] Configuration

gconfmm libconfig boost.program_options

[edit] Embedded languages

mozjs lua muparser