名前空間
変種
操作

オープンソースの C++ のライブラリの一覧

提供: cppreference.com
< cpp‎ | links

このページの目的は、特定の機能を持った実装が必要になった場合に、無駄な時間をかけて Web を検索せずに済むように、オープンソースの C++ のライブラリのわかりやすい一覧を作ることです。

もしあなたが皆の役に立つライブラリをご存知であれば、このページにリンクを追加してください。 ライブラリのソースコードをダウンロードできなければならないという以外に、特に制限はありません。

このページは「as-is」で提供されます。 役に立てばいいなと思ってはいますが、いかなる保証もありません。 一覧は完全なものではありませんし、時代遅れであったり、紛らわしかったり、リンクが間違っている可能性もあります。 何か問題に気づいた場合は、修正いただければ幸いです。

目次

[編集] 汎用

  • Boost -  large collection of generic libraries (Boost License)
  • GSL -  Guidelines Support library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines
  • 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.
  • Abseil -  An open-source collection of C++ library code from Google designed to augment the C++ standard library.
  • 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 - Generic C++17 header-only utility template library. (Boost License)
  • 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::intrusive, but not STL-compatible.
  • Yato -  Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools and experiments (MIT License)
  • Kangaru -  A dependency injection container for C++11 and C++14 (MIT License)
  • yaal -  algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more (CC BY-ND-NC 4.0)

[編集] 通信

  • 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
  • cpp-redis - C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.
  • tacopie - C++11 TCP Library
  • Boost.Asio - asynchronous and synchronous networking, timers, serial I/O
  • Boost.Beast - HTTP and WebSocket library built on top of Boost.Asio
  • 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
  • TAO -  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
  • PcapPlusPlus - Multiplatform C++ network sniffing and packet parsing and crafting framework
  • 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).
  • restc-cpp - Takes the pain out of accessing JSON API's from C++. HTTP Client, native C++ class to/from JSON serialization, asynchronous IO trough boost::asio coroutines. C++14. (MIT)
  • OpenDDS - DDS implementation
  • Breep -  Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects.
  • uvw - libuv wrapper in modern C++
  • rest_rpc - modern, simple, easy to use rpc framework
  • EasyHttp -  A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. (MIT License)
  • nghttp2 -  HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) (MIT License)

[編集] グラフィカルユーザインタフェース

  • Dear ImGui - A bloat-free graphical user interface library that is highly optimized.
  • 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)
  • Switch -  The Switch.Windows.Forms library contains classes for creating Windows-based applications that take full advantage of the rich user interface features available in the Microsoft Windows, maxOS X and Linux.
GTK+
Qt

[編集] マルチメディア一般

[編集] グラフィックス

プロット
フォーマット

[編集] オーディオ

  • soundtouch
  • KFR -  Fast, modern DSP framework, DFT/FFT, Audio resampling, FIR/IIR filters, Biquad
  • Aquila -  cross-platform DSP library
フィンガープリント
フォーマット
タグ
CD

[編集] 画像処理


[編集] 動画

[編集] 3Dグラフィックス

  • Vulkan
  • OpenGL
  • bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
  • Ogre3D
  • Diligent Engine A modern cross-platform low-level 3D graphics library.
  • GLEW OpenGL function loading
  • GLAD Customizable, lightweight library for loading OpenGL functions
  • 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
  • hlsl++ Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON
  • assimp 3D model loading
  • VTK
  • Magnum Lightweight and modular C++11/C++14 graphics middleware for games and data visualization
  • Irrlicht
  • Horde3D
  • Visionaray A C++ ray tracing template library
  • Open CASCADE SDK for 3D CAD/CAM/CAE applications
  • OpenSceneGraph

[編集] ゲームエンジンアーキテクチャ

[編集] 国際化

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

[編集] 数学

線形代数
最適化
  • OptimLib -  A C++11 library of numerical optimization methods for nonlinear functions.
グラフ理論
数値演算
機械学習
計算幾何
オートマトン

[編集] 金融計算

[編集] 並行処理

[編集] コンテナ

  • 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.
  • Ygg - An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map.
  • plf::list - std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration.
  • plf::stack - Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context.
  • plf::colony - Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure.
  • ring_span - A simplified implementation of Arthur O'Dwyer's ring_span - ie. a circular buffer view.

[編集] メタプログラミング

  • Boost.MPL - Original metaprogramming library, targeted at C++03, slow
  • Boost.Hana - New metaprogramming library for both types and values
  • Boost.Mp11
  • Boost.CallableTraits
  • 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.

[編集] シリアライズ

[編集] テスト

[編集] ベンチマーク

  • Celero
  • gperftools -  'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization.
  • plf::nanotimer -  Lowest-overhead, cross-platform simple timer class for benchmarking.

[編集] XML

  • libxml++
  • pugixml
  • tinyxml
  • tinyxml2 - Another and work in progress of TinyXML.
  • Xerces
  • gSOAP -  XML data bindings
  • ai-xml - Serialize objects to and from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.

[編集] JSON

[編集] Web

[編集] GPS

[編集] データベース

[編集] 暗号処理

[編集] ファイルのメタデータ

[編集] テキスト処理

パース
  • PEGTL -  Parsing Expression Grammar Template Library
検索
テンプレートエンジン
  • inja -  A Template Engine for Modern C++

[編集] 端末

  • cwidget
  • replxx -  A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.

[編集] コンフィグレーション

[編集] 組み込み言語のバインディング

[編集] 組み込み/リアルタイムシステム

[編集] PDF

[編集] ログ

  • 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)
  • Boost.Log
  • glog - Google Logging Library

[編集] ソート

  • Timsort - Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. (MIT)

[編集] 関連項目

非ANSI/ISOライブラリC言語リファレンス