A list of open source C++ libraries - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# A list of open source C++ libraries

From cppreference.com
< cpp‎ | links

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, 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 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.

## [edit] Generic

- Boost - large collection of generic libraries
- BDE - The BDE Development Environment from Bloomberg L.P.
- Dlib - networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks
- JUCE - An extensive, mature, cross-platform C++ toolkit
- Loki - design patterns
- Reason - xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression
- Yomm11 - Open multi-methods for C++11
- Folly - Facebook Open-source LibrarY. Library of C++11 components designed with practicality and efficiency in mind.
- cxxomfort - Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).
- libsourcey - Cross-platform C++11 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more...
- Neu - C++11 framework for AI, networking and distributed objects, simulation and modeling, languages and compiler construction, concurrency, and more.

## [edit] Communication

- C++ RESTful framework - C++ micro-framework designed to be embedded into a wide range of applications.
- C++ REST SDK - asynchronous HTTP client and listener, asynchronous Stream, URI, JSON
- cpp-netlib - cpp-netlib: The C++ Network Library
- Boost.Asio - asynchronous and synchronous networking, timers, serial I/O
- POCO - networking: encryption, HTTP; Zip files
- ACE - asynchronous networking, event demultiplexing, messaging, CORBA
- wvstreams
- gsoap
- Unicomm - asynchronous networking, high-level TCP communication framework
- restful_mapper - ORM for consuming RESTful JSON APIs in C++

## [edit] Graphic user interface

- FLTK
- nana
- WxWidgets[src][doc]

GTK+

- glibmm
- gtkmm
- goocanvasmm
- libglademm
- libgnomecanvasmm
- webkitgtk
- flowcanvas
- evince

Qt

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

## [edit] General Multimedia

- SFML (Simple and Fast Multimedia Library)
- SDL (Simple DirectMedia Layer)

## [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
- OpenGL
- GLEW OpenGL function loading
- GLFW OpenGL window manager
- assimp 3D model loading

## [edit] Game Engine Architecture

- EntityX
- Anax

## [edit] Internationalization

- IBM ICU
- gettext

## [edit] Math

- GNU MP bignum C++ interface
- Boost.Multiprecision
- Boost.Math.Special Functions and Statistical Distributions
- Boost.Random

Linear algebra

- Boost.uBLAS
- Eigen
- Armadillo
- Blitz++
- IT++
- Dlib - linear algebra tools

Graph theory

- Boost.Graph
- LEMON
- alglib
- OGDF - Open Graph Drawing Framework

Class Library for Numbers

- cln

Machine Learning

- liblinear
- Dlib - machine learning tools
- MLPACK - machine learning package

Computational geometry

- CGAL - Computational geometry algorithms library
- Wykobi - Computational geometry library

## [edit] Concurrency

- Intel TBB
- OpenMP
- Thrust STL-like algorithms and data-structures for CUDA
- ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends
- VexCL C++ expression templates library for OpenCL and CUDA
- Boost.Compute (unofficial) STL-like algorithms and data-structures for OpenCL
- 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

## [edit] Containers

- 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.

## [edit] Serialization

- Boost.Serialization
- libs11n
- sweet_persist
- protobuf
- C++ XML objects
- yaml-cpp
- YAS (Yet Another Serialization)
- cereal (C++11 serialization)

## [edit] Testing

- Boost.Test
- cppunit
- Google Test
- Catch

## [edit] Benchmarking

- Celero

## [edit] XML

- libxml++
- pugixml
- tinyxml
- Xerces

## [edit] JSON

- jsonme--
- ThorsSerializer
- JsonBox
- jsoncpp
- zoolib
- JOST
- CAJUN
- libjson
- nosjob
- rapidjson
- jsoncons
- JSON++
- qjson
- json-cpp

## [edit] Web

- libmusicbrainz5
- liblastfm
- libkcddb
- Chromium Embedded
- Wt[src][doc]

## [edit] GPS

- gpsd

## [edit] Databases

- mysql++
- libpqxx
- sqlapi
- brig
- SOCI
- DTL
- sqlpp11
- ODB - C++ Object-Relational Mapping (ORM)

## [edit] Cryptography

- Botan
- gnutls
- openssl
- crypto++

## [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 bindings

- ExprTk
- mozjs
- lua
- muparser
- PythonQt

## [edit] Embedded/realtime

- QP/C++ - RTOS kernel, dual GPL
- FreeRTOS C++ Handler - handler, looper, state machine, CLI, portable

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/links/libs&oldid=72473"