zz A list of open source C++ libraries
A list of open source C++ libraries
http://en.cppreference.com/w/cpp/links/libs
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 e.t.c).
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 (Boost License)
- BDE - The Bloomberg Development Environment core libraries from Bloomberg L.P. (Apache License)
- Dlib - networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks (Boost License)
- JUCE - An extensive, mature, cross-platform C++ toolkit (GPL License)
- Loki - design patterns
- Reason - xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression (GPL License)
- Yomm11 - Open multi-methods for C++11 (Boost License)
- Folly - Facebook Open-source LibrarY. Library of C++11 components designed with practicality and efficiency in mind.
- cxxomfort - Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).
- libsourcey - Cross-platform C++11 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more...
- OnPosix - C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.
- Ultimate++ - Cross-platform rapid application development framework
- CAF - The C++ Actor Framework (CAF) is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more (BSD License).
- cpp-mmf - A C++98 library that encapsulates memory-mapped-files for POSIX or Windows
- CommonPP - Multi-purpose library with a strong emphasis on getting metrics out of a project. (BSD)
- Better Enums - Reflective enums (enum to string, iteration, etc.) with constexpr support. (BSD)
- Smart Enum - "to_string", "from_string" and more for your enums. (Boost License)
- nytl - C++11 header-only template library for maths, functions (callbacks) and general utility.
- SaferCPlusPlus - SaferCPlusPlus - Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. (Boost License)
- fcppt - Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.
- bitfield.h - Bit field structure facility, more portable/flexible than the base language facility.
- composite_op.h - Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.
- Abstract Intrusive Containers - More flexible than boost::instrusive, but not STL-compatible.
- Yato - Modern C++(11/14) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools and experiments (MIT License)
Communication
- libnavajo - a light but powerful API including http server for web and RESTful application development, supporting SSL, authentification, cookies and session management, including Websocket server support... (LGPL License)
- C++ RESTful framework - C++ micro-framework designed to be embedded into a wide range of applications.
- C++ REST SDK - asynchronous HTTP client and listener, asynchronous Stream, URI, JSON
- cpr - a modern C++ HTTP requests library
- cpp-netlib - cpp-netlib: The C++ Network Library
- Boost.Asio - asynchronous and synchronous networking, timers, serial I/O
- gsoap - C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services
- POCO - networking: encryption, HTTP; Zip files
- omniORB - the fastest, complete and portable CORBA ORB implementation in C++
- ACE - asynchronous networking, event demultiplexing, messaging, CORBA
- wvstreams
- 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
- Simple C++ REST library - Very simple and self documenting library for creating a REST API in your c++ application
- libtins - Network packet crafting and sniffing library
- HTTPP - Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. (BSD)
- The Silicon C++14 Web Framework - Fast and Robust Web APIs (MIT).
- ngrest - Fast and easy in use JSON RESTful Web Services Framework (Apache2).
Graphic user interface
- FLTK
- nana[doc] - GUI programming in modern C++ style (Boost License)
- WxWidgets[src][doc]
- 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)
- GTK+
- Qt
- Qt[src][doc]
- 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
General Multimedia
- SFML (Simple and Fast Multimedia Library)
- SDL (Simple DirectMedia Layer) - cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D (zlib license)
- SIGIL (Sound, Input, and Graphics Integration Library) - mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images
- Cinder
- openFrameworks
Graphics
- cairomm
- nux
- pangomm
- gegl
- 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
- Plotting
- Formats
Audio
- soundtouch
- KFR - Fast, modern DSP framework, DFT/FFT, Audio resampling, FIR/IIR filters, Biquad
- Fingerprinting
- Formats
- Tagging
- CD
Image Processing
Video
3D Graphics
- Vulkan
- OpenGL
- bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
- Ogre3D
- GLEW OpenGL function loading
- Epoxy Modern successor to GLEW. Abstracts difference between some kinds of GL contexts, which makes it sometimes simpler to use than GLEW. Used by GTK+ project since 2015.
- GLFW OpenGL window manager
- GLM Header only C++ mathematics library for rendering
- assimp 3D model loading
- VTK
- Magnum C++11 and OpenGL/GLES/WebGL graphics engine
- Irrlicht
- Horde3D
- Visionaray A C++ ray tracing template library
Game Engine Architecture
Internationalization
- 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.
Math
- alglib
- ArrayFire High Performance Computation Library
- GNU MP bignum C++ interface
- 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
- Linear algebra
- Graph theory
- 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
- Machine Learning
- liblinear
- Dlib - machine learning tools
- MLPACK - machine learning package
- Shogun - large scale machine learning toolbox
- Computational geometry
- CGAL - Computational geometry algorithms library
- Wykobi - Computational geometry library
- PCL - Point Cloud library
- Automata theory
Financial Calculations
Concurrency
- Intel TBB
- OpenMP
- RaftLib C++ stream like concurrent actors
- Thrust STL-like algorithms and data-structures for CUDA
- ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends
- VexCL C++ expression templates library for OpenCL and CUDA
- Boost.Compute (unofficial) STL-like algorithms and data-structures for OpenCL
- 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
- SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.
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.
- 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.
Metaprogramming
- Boost.MPL - Original metaprogramming library, targeted at C++03, slow
- Boost.Hana - New metaprogramming library for both types and values
- Metal - Uses lazy metafunctions (like MPL), 100% SFINAE-friendly, optimized for SLOC
- Brigand - Uses eager metafunctions, optimized for best performance
- Meta - Uses eager metafunctions, middle ground between metal and brigand wrt performance
- Boost.Metaparse - Compile-time parser library, producing types, values, and metafunctions from compile-time strings
- Boost.Proto - A library for building expression template-backed EDSLs
- CoMeta - Lightweight, header-only C++14 metaprogramming library
- visit_struct - A miniature reflection library, providing structure visitors for C++11. Self-contained, 100-200 lines of code depending how you count.
Serialization
- Boost.Serialization
- libs11n
- sweet_persist
- protobuf
- gSOAP
- 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
- doctest - The lightest feature-rich C++ single-header testing framework for unit tests and TDD
- liblittletest - Portable, one file header-only testing framework
Benchmarking
- Celero
- gperftools - 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization.
XML
JSON
- ArduinoJson - ArduinoJson
- json - JSON for Modern C++
- 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
- ujson - µjson is a small, C++11, UTF-8, JSON library
- minijson - C++ DOM-less and allocation-free JSON parsing and serialization
Web
- libmusicbrainz5
- liblastfm
- libkcddb
- Chromium Embedded
- QtWebApp HTTP(s) Server in C++ inspired by Java Servlets
- Wt[src][doc]
- Tufão
- libhttpserver
GPS
Databases
- 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)
- QUINCE: QUeries IN C++ Expressions (ORM+EDSL)
- QxOrm - C++ Qt Object-Relational Mapping (ORM)
- SOCI
- sqlpp11
Cryptography
File metadata
Text
- Parse
- PEGTL - Parsing Expression Grammar Template Library
- Search
Terminal
Configuration
Embedded languages bindings
- ChaiScript
- ExprTk
- lua
- AngelScript - a scripting language like C++.
- mozjs
- muparser
- PythonQt
Embedded/realtime
- QP/C++ - RTOS kernel, dual GPL
- FreeRTOS C++ Handler - handler, looper, state machine, CLI, portable
- ETL - Embedded Template Library - C++ 03, Portable template library tailored for low resource platforms
- distortos - RTOS for high-end microcontrollers written in C++11
Logging
zz A list of open source C++ libraries的更多相关文章
- Using Open Source Static Libraries in Xcode 4
Using Open Source Static Libraries in Xcode 4 Xcode 4.0.1 allows us to more easily create and use th ...
- C++ Core Guidelines
C++ Core Guidelines September 9, 2015 Editors: Bjarne Stroustrup Herb Sutter This document is a very ...
- DotNet 资源大全中文版(Awesome最新版)
Awesome系列的.Net资源整理.awesome-dotnet是由quozd发起和维护.内容包括:编译器.压缩.应用框架.应用模板.加密.数据库.反编译.IDE.日志.风格指南等. 算法与数据结构 ...
- 15 Best Responsive HTML5 Frameworks 2014
Best HTML5 frameworks are most popular because with the use of these frameworks you can create websi ...
- "Hello World!" for the NetBeans IDE
"Hello World!" for the NetBeans IDE It's time to write your first application! These detai ...
- How do you build a database?
在reddit上看到的一篇讲解数据库实现的文章,非常有意思,在这里记录一下. 回答者technical_guy: Its a great question, and deserves a long a ...
- Running Kafka At Scale
https://engineering.linkedin.com/kafka/running-kafka-scale If data is the lifeblood of high technolo ...
- scala vs java 相同点和差异
本贴是我摘抄自国外网站,用作备忘,也作为分享! Similarities between Scala and Java Following are some of the major similari ...
- What a version number means
http://stackoverflow.com/questions/3768261/best-practices-guidance-for-maintaining-assembly-version- ...
随机推荐
- PHP开发模式之代理技术
在实际开发中,我们经常要调用第三方的类库如SOAP服务等.使用这些第三方 组件并不难,最麻烦的莫过于调用了,一般的调试手段最方便的莫过于记日志了. 示例: 假如有以下第三方类库. // filenam ...
- 一个使用方便的对FMDB进行封装的框架和一个可以切应用图标的应用
框架的git地址 :https://github.com/Joker-King/JKDBModel 切割图标的应用地址 http://pan.baidu.com/s/1kVjflwr
- 删除xcode中的描述文件的路径
打开Finder commend + shift +g 进入文件夹 : ~/Library/MobileDevice/Provisioning Profiles 删除即可
- Mat 转 IplImage
Mat 转 IplImage 分类: OpenCV2013-06-02 17:00 1487人阅读 评论(0) 收藏 举报 Mat 转 IplImage Mat image1; IplImage *i ...
- NSString几个函数
第一.判断是否包含前缀于后缀 NSString *str=@"hello andy yang"; if([str hasPrefix:@"hello"]) { ...
- 使用javamail发送邮件错误:550 5.7.1 Unable to relay
这两天由于客户的邮件服务器迁移,使用了NTLM的验证方式.系统使用javamailAPI进行发送邮件时,发现只能对内部邮箱进行发送,对外部邮箱进行发送的时候,报下图错误: 后面发现是由于系统的java ...
- ReactiveCocoa 5.0 初窥:可能是最痛的一次升级
RAC 5.0 相比于 4.0 有了巨大的变化,不仅是受 swift 3.0 大升级的影响,RAC 对自身项目结构的也进行了大幅度的调整.这个调整就是将 RAC 拆分为四个库:ReactiveCoco ...
- .Net下 自动执行MSI和EXE文件
MSI是安装文件,需要系统自带的msiexec.exe来执行 var tempDir = @"D:\UploadFiles\SCADASetupWix.msi"; var star ...
- phpMyAdmin导入文件突破2M大小
一:通过phpinfo.php找到php.ini在哪个位置,注意,它并不一定在phpMyAdmin路径下: 二:修改upload_max_filesize,post_max_size,以及memory ...
- C# 类型转换问题一
问题描述:double类型向int类型的一个转化 详细描述:课上,我们的web老师,利用C#重新温故了我们初学C语言时的一个小程序——给定成绩,有程序判定等级.学过C语言的童鞋想必都知道这个switc ...