A list of open source C++ libraries

cpp‎ | links

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

General Multimedia

Graphics

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

Linear algebra
Graph theory
Class Library for Numbers
Machine Learning
Computational geometry
Automata theory

Financial Calculations

Concurrency

Containers

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

Testing

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

Web

GPS

Databases

Cryptography

File metadata

Text

Parse
  • PEGTL -  Parsing Expression Grammar Template Library
Search

Terminal

Configuration

Embedded languages bindings

Embedded/realtime

PDF

Logging

  • Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations (LGPL)
  • spdlog - Super fast, header only, C++ logging library
  • plog - Portable and simple log for C++ in less than 1000 lines of code (MPL2)

zz A list of open source C++ libraries的更多相关文章

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

  2. C++ Core Guidelines

    C++ Core Guidelines September 9, 2015 Editors: Bjarne Stroustrup Herb Sutter This document is a very ...

  3. DotNet 资源大全中文版(Awesome最新版)

    Awesome系列的.Net资源整理.awesome-dotnet是由quozd发起和维护.内容包括:编译器.压缩.应用框架.应用模板.加密.数据库.反编译.IDE.日志.风格指南等. 算法与数据结构 ...

  4. 15 Best Responsive HTML5 Frameworks 2014

    Best HTML5 frameworks are most popular because with the use of these frameworks you can create websi ...

  5. "Hello World!" for the NetBeans IDE

    "Hello World!" for the NetBeans IDE It's time to write your first application! These detai ...

  6. How do you build a database?

    在reddit上看到的一篇讲解数据库实现的文章,非常有意思,在这里记录一下. 回答者technical_guy: Its a great question, and deserves a long a ...

  7. Running Kafka At Scale

    https://engineering.linkedin.com/kafka/running-kafka-scale If data is the lifeblood of high technolo ...

  8. scala vs java 相同点和差异

    本贴是我摘抄自国外网站,用作备忘,也作为分享! Similarities between Scala and Java Following are some of the major similari ...

  9. What a version number means

    http://stackoverflow.com/questions/3768261/best-practices-guidance-for-maintaining-assembly-version- ...

随机推荐

  1. 如何将windows server 2008R2打造成桌面系统

    >在工作中有没有遇到这样的情况,因某些应用需要使用到服务器版系统,为了方便就将自己的机器安装成服务器版,这样一来客户版系统的易用性和更好的体验就不能用了,有木有--呵呵,下面以windows s ...

  2. picurl

    from lxml import etreeimport requestsdef getHtml(html): novelcontent = requests.get(html).content re ...

  3. (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

    Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...

  4. java多条件不定条件查询

    网站或各类管理系统都会用到搜索,会用到一个或多个不确定条件搜索,单条件搜索比较简单,有时候会有多个条件共同查询,如果系统中已经提供了相关的方法供你使用最好,像我做这老系统改版,需要添加搜索,就要自己写 ...

  5. Java起源、发展历程、环境变量、第一个Java程序等【1】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: 本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pi ...

  6. java中的内部类小结

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类.如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动).显然, ...

  7. 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰

    1.配置Git 首先在本地创建ssh 秘钥:在git bash输入: $ ssh-keygen -t rsa -C "your_email@youremail.com" eg:$ ...

  8. python基础整理笔记(一)

    一. 编码 1. 在python2里,加载py文件会对字符进行编码,需要在文件头上的注释里注明编码类型(不加则默认是ascII). # -*- coding: utf-8 -*- print 'hel ...

  9. I Hate It(hdu1754)(线段树区间最大值)

    I Hate It hdu1754 Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  10. Google的Bigtable学习笔记(不保证正确性)

    跪求各路大侠指正:1.首先是一个列式存储的简单数据模型的数据库,它比键值对模型/文档模型NoSQL数据库复杂点(也就更强一点).2.它的分布式存储性能依靠于GFS也就对单机房网络有硬性指标.3.它同时 ...