A list of open source C++ libraries
A list of open source C++ libraries
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.
Generic
- Boost - large collection of generic libraries
- Navajo - light and powerful http server for web application development
- 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.
- OnPosix - C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.
- Ultimate++ - Cross-platform rapid application development framework
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++
- zeromq - fast message queue
- 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
Graphic user interface
- FLTK
- nana
- WxWidgets[src][doc]
- OWLNext - Modern update to OWL for writing GUI applications in standard C++ on Windows
- GTK+
- Qt
General Multimedia
Graphics
- Plotting
- Formats
Audio
- Fingerprinting
- Formats
- Tagging
- CD
Video
3D Graphics
- Ogre3D
- OpenGL
- GLEW OpenGL function loading
- GLFW OpenGL window manager
- GLM Header only C++ mathematics library for rendering
- assimp 3D model loading
- VTK
- Magnum C++11 and OpenGL/GLES/WebGL graphics engine
- Irrlicht
- Horde3D
Game Engine Architecture
Internationalization
Math
- GNU MP bignum C++ interface
- Boost.Multiprecision
- Boost.Math.Special Functions and Statistical Distributions
- Boost.Random
- Linear algebra
- Graph theory
- Class Library for Numbers
- Machine Learning
- liblinear
- Dlib - machine learning tools
- MLPACK - machine learning package
- Shogun - large scale machine learning toolbox
- Computational geometry
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
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.
Serialization
- Boost.Serialization
- libs11n
- sweet_persist
- protobuf
- C++ XML objects
- yaml-cpp
- YAS (Yet Another Serialization)
- cereal (C++11 serialization)
Testing
- Boost.Test
- cppunit
- Google Test
- Catch
- jest - A sane and minimal C++14 unit test framework
Benchmarking
XML
JSON
- jsonme--
- ThorsSerializer
- JsonBox
- jsoncpp
- zoolib
- JOST
- CAJUN
- libjson
- nosjob
- rapidjson
- jsoncons - jsoncons is a C++ library for the construction of tree structured json values. It also supports an event-based streaming API.
- 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
Web
GPS
Databases
- QxOrm - C++ Qt Object-Relational Mapping (ORM)
- mysql++
- libpqxx
- brig
- SOCI
- DTL
- sqlpp11
- ODB - C++ Object-Relational Mapping (ORM)
- QUINCE: QUeries IN C++ Expressions (ORM+EDSL)
Cryptography
File metadata
Text
- Parse
- PEGTL - Parsing Expression Grammar Template Library
- Search
Terminal
Configuration
Embedded languages bindings
Embedded/realtime
- QP/C++ - RTOS kernel, dual GPL
- FreeRTOS C++ Handler - handler, looper, state machine, CLI, portable
相關文章
- Viva:Open Java的Source (轉)Java
- [Open Source] RabbitMQ 安裝與使用MQ
- [Open Source] 負載均衡之Nginx負載Nginx
- 使用JFrog Artifactory Open Source 搭建私服
- Top free and open source log management software
- [Open Source] RabbitMQ 高可用叢集方案MQ
- OpenStack Open Source Cloud Needs To Pick Up The PaceCloud
- mORMot and Open Source friends SynProject Tutorial (SynProject教程)ORMProject
- Signals-The Boost C++ LibrariesC++
- InfluxDB 2.x Open Source Time Series DatabaseUXDatabase
- Microsoft 釋出Rotor,一場Shared Source對Open Source的速度比賽 (轉)ROS
- C++ list (tcy)C++
- C++ STL listC++
- C++ STL -- listC++
- C++ list eraseC++
- Welcome to Open Source & Drupal Camp Shanghai 2008AI
- 原始碼為你而開嗎??Is Open Source for You? (轉)原始碼
- DBLOGIN ERROR: Failed to open data source for user OGG.ErrorAI
- Open Source專案SuperWaba徵求IME開發人員
- Open Source 103:開源與雲的商業碰撞
- [Open Source] .NET 基於StackExchange.Redis的擴充套件Redis套件
- esb的核心功能由 open source esb in action 定義
- c++ list sort方法C++
- Google 公佈 Open Source Peer Bonus 最新 25 名貢獻者Go
- 那些開源與科技的紀錄片(上)|Open Source Prism
- 微軟表示 Open Source 運動反而壓抑了創新 (轉)微軟
- Source Insight:使用Source Insight檢視C/C++原始碼C++原始碼
- error while loading shared libraries: libstdc++.so.5: cannot openErrorWhileC++
- Open Source 102:開源的商業競爭優勢
- “no source“: Error: #5: cannot open source input file “C:\Users\xxx\AppData\Local\Temp\p4228: PermiErrorAPP
- C++ STL list連結串列C++
- error while loading shared libraries: libcap.so.1: cannot open sharedErrorWhile
- shared libraries: libpthread.so.0: cannot open shared object file: No such file or directorythreadObject
- 使用Source Insight閱讀C++程式碼C++
- 讓source insight支援C++原始檔*.ccC++
- 從開源界發現的商機——What Business Can Learn from Open Source
- c++中的查詢list元素C++
- C++中list的使用方法及常用list操作總結C++