C++知名开源库列表

转自: http://en.cppreference.com/w/cpp/links/libs


A list of open source C++ libraries

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, one needn't 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 (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.

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

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

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)

See also

C documentation for  Non-ANSI/ISO Libraries
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值