名前空間
変種
操作

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

提供: cppreference.com
< cpp‎ | links

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

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

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

目次

[編集]パッケージマネージャ

[編集]オーディオ

ライブラリ 説明 ライセンス コンフィグレーション
soundtouch
KFR 高速でモダンな DSP フレームワーク、DFT/FFT、オーディオリサンプリング、FIR/IIR フィルタ、双二次
Aquila クロスプラットフォームな DSP ライブラリ
FFTW DFT を計算するためのライブラリ
フィンガープリント
ライブラリ 説明 ライセンス コンフィグレーション
chromaprint
libofa
libmusicbrainz
フォーマット
ライブラリ 説明 ライセンス コンフィグレーション
audiofile
flac
libsndfile
タグ
ライブラリ 説明 ライセンス コンフィグレーション
id3lib
taglib
CD
ライブラリ 説明 ライセンス コンフィグレーション
libkcompactdisc

[編集]ベンチマーク

ライブラリ 説明 ライセンス コンフィグレーション
Celero Apache License CMake
benchmark ユニットテストに似たコード片をベンチマークするためのライブラリ Apache License 2.0 CMake
gperftools 「Google Performance Tools」には高性能かつマルチスレッド化された malloc の実装およびヒープ確保や CPU 使用率をベンチマークするためのツールが含まれます。 3条項BSDライセンス configure
plf::nanotimer オーバーヘッドが最も少ない、クロスプラットフォームな、ベンチマーク用のシンプルなタイマークラス。 zlib license

[編集]通信

ライブラリ 説明 ライセンス コンフィグレーション
sockpp シンプルでモダンな C++ のソケットライブラリ 3条項BSDライセンス CMake
libnavajo 高速はマルチスレッド対応 HTTP サーバ、HTML5 Websockets、 SSL、 X509 および HTTP 認証、圧縮、クッキーおよび高度なセッション管理、 IPv4 および IPv6 (CeCILL-C) を含む C++ のフレームワーク。 CeCILL-C FREE SOFTWARE LICENSE AGREEMENT CMake
C++ RESTful framework 幅広いアプリケーションに組み込むために設計された C++ のマイクロフレームワーク。 CMake
C++ REST SDK 非同期 HTTP クライアントおよびリスナー、非同期ストリーム、URI、JSON MIT License CMake
cpr モダンな C++ の HTTP リクエストライブラリ MIT License CMake
cpp-netlib cpp-netlib: C++ のネットワークライブラリ Boost Software License 1.0 CMake
tacopie C++11 の TCP ライブラリ MIT License CMake
Boost.Asio 非同期および同期のネットワーク処理、タイマ、シリアル I/O
Boost.Beast Boost.Asio 上に構築された HTTP および WebSocket のライブラリ
gsoap XML データバインディング、高速な WSDL/SOAP/XML Web サービス、WS-Security、JSON/XML-RPC RESTful サービスのための C/C++ の開発ツールキット
POCO ネットワーク処理: 暗号化、HTTP; ZIP ファイル
omniORB 最も高速、完全かつ移植性のある CORBA ORB の C++ の実装
ACE 非同期ネットワーク処理、イベント逆多重化、メッセージ処理
TAO CORBA
wvstreams
Unicomm 非同期なネットワーク処理、高水準な TCP 通信のフレームワーク
restful_mapper RESTful JSON API を使用するための C++ の ORM CMake, Makefile
Paho MQTT Eclipse 発の MQTT のためのモダンな C++ のクライアント CMake
zeromq 高速メッセージキュー
nanomsg 高速なメッセージキュー (zeromqの後継)
nng 皇族なメッセージキュー (nanomsgの後継)
curlpp CURL ライブラリのための C++ のラッパー
Apache Thrift Apache Thrift ソフトウェアフレームワークは、スケーラブルなクロス言語サービス開発のために、ソフトウェアスタックを C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi, その他の言語間で効率的かつシームレスに動作するサービスを構築するためのコード生成エンジンと組み合わせます。
libashttp 非同期 HTTP クライアントライブラリ GNU Lesser General Public License v3.0
Simple C++ REST library C++ アプリケーションで REST API を作成するための非常にシンプルな自己文書化されたライブラリ
libtins ネットワークパケット作成・監視ライブラリ
PcapPlusPlus マルチプラットフォームな C++ のネットワーク監視、パケット解析、作成のフレームワーク
HTTPP シンプルな生産準備済みの Boost 上に構築された HTTP サーバおよび libcurl 上に構築されたクライアント。 2条項BSDライセンス CMake, Makefile
The Silicon C++14 Web Framework 高速かつ堅牢な Web API。 MIT
ngrest 高速かつ使いやすい JSON RESTful Web サービスフレームワーク。 Apache License 2.0 CMake
restc-cpp C++ から JSON API にアクセスする苦痛を取り除きます。 HTTP クライアント、ネイティブな C++ クラスと JSON の間のシリアライゼーション、boost::asio コルーチンを通した非同期 I/O。 C++14。 MIT License CMake
OpenDDS DDS の実装
Breep オブジェクトを直接送受信できるイベントベースの高水準なピアツーピアライブラリ。 European Union Public License 1.1 CMake
uvw libuv のモダンな C++ のラッパー MIT License CMake
FPNN Fast Programmable Nexus Network. 高性能の全非同期RPCサービスフレームワーク。HTTP、WebSocket、TCPと信頼性の高いUDPを同時にサポートする。超高圧サーバーの開発をサポートし、対応する言語クライアントSDKを有する。 make
rest_rpc モダンでシンプルな使いやすい RPC フレームワーク CMake
EasyHttp 可用性と速度に焦点を当てた、 HTTP レスポンスのキャッシュその他をサポートする、クロスプラットフォームな HTTP クライアントライブラリ。 MIT License CMake
nghttp2 HTTP/2 の C のライブラリおよびツール (サーバ、クライアント、プロキシおよびベンチマーク計測ツール) MIT License CMake, configure
IXWebSocket 依存関係のないオープンソースの WebSocket + HTTP ライブラリ。 SSL およびメッセージ単位の deflate WebSocket 拡張をサポートします。 3条項BSDライセンス CMake, Makefile
KCP アプリケーションのネットワーク遅延を減らすのに役立つ高速かつ信頼性のある ARQ プロトコル。 MIT License CMake
gRPC gRPC はあらゆる環境で実行できる現代的なオープンソースの高性能 RPC フレームワークです。
seastar C++14/C++17 ベースの高性能なサーバーサイドアプリケーションフレームワーク。 Apache License 2.0 CMake, etc.
stream-client 軽量でヘッダオンリーな boost ベースのクライアントサイドソケット/コネクタ/ソケットプール/リゾルバ Apache License 2.0 CMake
eCAL 高性能なプロセス間通信 Apache License 2.0 CMake
fineftp-server windows および unix 用の FTP サーバライブラリ MIT License CMake

[編集]並行処理

ライブラリ 説明 ライセンス コンフィグレーション
Intel TBB
OpenMP
Cpp-Taskflow 現代的な C++ による並列タスクプログラミング
RaftLib 並行アクタライクな C++ のストリーム
Thrust CUDA 用の STL ライクなアルゴリズムとデータ構造
ViennaCL OpenMP, CUDA, OpenCL バックエンドを持つ線形代数とアルゴリズム
VexCL OpenCL および CUDA 用の C++ の式テンプレートライブラリ
hipSYCL 複数のターゲットデバイス (NVIDIA/AMD CPU、CPU) で実行可能な clang ベースのツールチェインとランタイム SYCL の実装を提供します
Boost.Compute OpenCL 用の (非公式な) STL ライクなアルゴリズムとデータ構造
Boost.Interprocess
Boost.Thread
Boost.Atomic
Boost.Lockfree
Boost.MPI
Boost.Context
libopenmpi
libsimdpp
HPX 任意の規模の分散アプリケーションと並列処理のための汎用の C++ ランタイムシステム
KOKKOS 移植性のある高性能 HPC アプリケーションを書くための C++ のプログラミングモデル
SObjectizer アクタと出版購読モデルを用いることによる C++ での並行処理およびイベント駆動のアプリケーションの開発を単純化するための小さなフレームワーク。
BlockingCollection
Xenium 様々な並行データ構造および回収計画を提供するヘッダオンリーなライブラリ
subprocess サブプロセスを実行するためのクロスプラットフォームなライブラリ。

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

ライブラリ 説明 ライセンス コンフィグレーション
gconfmm
libconfig
libconfini INI パーサ
Boost.Program_options
XML
ライブラリ 説明 ライセンス コンフィグレーション
libxml++
pugixml
tinyxml
tinyxml2 TinyXML のもうひとつの作業中の実装。
Xerces
gSOAP XML データバインディング
ai-xml 単一の最小限の関数をクラスに追加することによってオブジェクトから XML におよびその逆にシリアライズします。 水面下で libxml++ を使用します。
GPDS オブジェクトを XML にシリアライズする汎用目的のデータシリアライザ。 水面下で TinyXML を使用しています。
JSON
ライブラリ 説明 ライセンス コンフィグレーション
json Niels Lohmann の JSON
ArduinoJson ArduinoJson
jsonme--
ThorsSerializer JSON/YAML 入出力ストリーム
swxJson 現在使用されている最も便利なC++JSONライブラリ。関数呼び出しを1回行うだけで、任意のレベルで複雑な構造を読み書きできます。性能はRapidJSONの約半分。 MIT make
JsonBox
jsoncpp
zoolib
JOST
CAJUN
libjson
nosjob
rapidjson
jsoncons JSON および JSON ライクなデータフォーマット (JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON) のためのヘッダオンリーなライブラリ。
JSON++
qjson
json-cpp
jansson Jansson は JSON データをエンコード、デコード、操作するための C のライブラリです。
json11 json11 は JSON のパースとシリアライズを提供する C++11 用の小さな JSON ライブラリです。
JSON Voorhees C++ 用のキラー JSON
jeayeson 非常に健全な (ヘッダオンリーの) C++14 JSON ライブラリ
ujson µjson は小さな C++11 の UTF-8 の JSON ライブラリです
minijson C++ の DOM なし確保なしの JSON パースおよびシリアライズ
jios (JSON Input Output Streams)
simdjson 秒あたりギガバイトの JSON をパースします
struct_mapping JSON と C++ の構造体のマッピング
YAML
ライブラリ 説明 ライセンス コンフィグレーション
yaml-cpp
TOML
ライブラリ 説明 ライセンス コンフィグレーション
toml11 TOML C++11ベースのパースライブラリ
toml++ C++17以上用の TOML パーサおよびシリアライザ
HOCON
ライブラリ 説明 ライセンス コンフィグレーション
cpp-hocon Pupplet によって開発された HOCON フォーマットの C++ 実装。
CSS
ライブラリ 説明 ライセンス コンフィグレーション
mycss CSS パーサ

[編集]コンテナ

ライブラリ 説明 ライセンス コンフィグレーション
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 C++11 をターゲットとした高速な決して空にならない variant。 多くの望まない暗黙の変換を防ぎます。
eggs::variant Eggs.Variant は C++11/14 の汎用的で型安全な差別化された union です。 特に非常に良い `constexpr` サポートを持つ点が注目に値します。
Ygg 赤黒木、区間木、区間マップなどの高性能なコンテナとデータ構造の侵入的な C++11 の実装。
plf::list キャッシュ親和性のために範囲スプライシングを犠牲にした、挿入、削除、反復が高速な std::list の実装。
plf::stack スタックの文脈において std::vector や std::deque よりも良い性能を持つ std::stack コンテナアダプタ用の代替コンテナ。
plf::colony 挿入や削除に関係なく削除されていない要素への有効なポインタを維持する、変更頻度の高いシナリオにおいて std:: コンテナを凌駕する性能を持つ、非順序の「バッグライクな」コンテナ。
ring_span Arthur O'Dwyer の ring_span すなわち循環バッファビューの単純化した実装。
Frozen constexpr な完全ハッシュをベースにした変更不可能な set および map Apache 2.0
DataFrame C++ DataFrame -- ネイティブな型および連続的なメモリ記憶域を使用した、仮想関数を用いない、モダンな C++ で書かれた R および Pandas の DataFrame。

[編集]暗号処理

ライブラリ 説明 ライセンス コンフィグレーション
Botan
gnutls
openssl
crypto++
TomCrypt

[編集]データベース

ライブラリ 説明 ライセンス コンフィグレーション
redis-plus-plus C++ で書かれた Redis クライアント。 Redis Sentinel、 Redis Cluster、パイプライン、トランザクション、出版購読、コネクションプールおよび STL ライクなインタフェースをサポートします。
cpp-redis C++11 の軽量な Redis クライアント: 非同期、スレッドセーフ、依存なし、パイプライン処理、マルチプラットフォーム。
redis-cpp Redis コマンドを実行するための軽量な C++ のクライアントのヘッダオンリーなライブラリ。
OTL
DTL
libpqxx
lmdb++ 組み込み B+ ツリーデータベースライブラリ LMDB 用の C++11 のラッパー。
mongocxx MongoDB 用の C++11 のドライバライブラリ
mysql++
ODB C++ のオブジェクト関係マッピング (ORM)
Pgfe - PostGres FrontEnd PostgreSQL へのモダンな C++ のクライアント API
QUINCE: QUeries IN C++ Expressions (ORM+EDSL)
QxOrm C++ (Qt) のオブジェクト関係マッピング (ORM)
SOCI
sqlpp11
SQLAPI++
SQLiteCPP
EasyQtSql QtSql を使用して問い合わせる手軽かつ簡単な SQL のための軽量なヘッダオンリーの C++11 のライブラリ
LevelDB 十億規模のキーバリューデータの永続ストレージを処理する Google によって開発された C++ のライブラリ。
QTL MySQL、 SQLite および ODBC のためのフレンドリーかつ軽量な C++ のデータベースライブラリ。

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

ライブラリ 説明 ライセンス コンフィグレーション
ChaiScript
ExprTk
lua
sol2
AngelScript C++ ライクなスクリプト言語。
Jinx ビデオゲーム用に設計されたスクリプト言語。
mozjs
muparser
PythonQt
ScriptCaller ruby スクリプトを呼べるヘッダオンリーなライブラリ。
v8pp C++ の関数およびクラスを V8 JavaScript エンジンにバインドします


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

ライブラリ 説明 ライセンス コンフィグレーション
QP/C++ RTOS カーネル (dual GPL)
ETL - Embedded Template Library 低リソースプラットフォーム向けに調整された C++03 の移植性のあるテンプレートライブラリ
distortos マイクロコントローラ用のオブジェクト指向 C++ RTOS
µcuREST マイクロコントローラ用の C++11 の REST/JSON サーバフレームワーク

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

ライブラリ 説明 ライセンス コンフィグレーション
libkexiv2
exiv2
exempi
rarian

[編集]金融計算

ライブラリ 説明 ライセンス コンフィグレーション
QuantLib 定量的な財務ライブラリ
DataFrame C++ DataFrame -- ネイティブな型および連続的なメモリ記憶域を使用した、仮想関数を用いない、モダンな C++ で書かれた R および Pandas の DataFrame。

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

ライブラリ 説明 ライセンス コンフィグレーション
EntityX
Anax
EntityPlus
EnTT
BOX2D 物理エンジン

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

ライブラリ 説明 ライセンス コンフィグレーション
SFML (Simple and Fast Multimedia Library)
SDL (Simple DirectMedia Layer) オーディオ、キーボード、マウス、ジョイスティックおよびそのプラットフォームのグラフィックス API (通常 OpenGL または Direct3D) を通したグラフィクスハードウェアへのクロスプラットフォームな低水準のアクセス (zlib ライセンス)
SIGIL (Sound, Input, and Graphics Integration Library) テキスト、図形、入力、オーディオおよび 2D 画像のための、驚くほどシンプルなクロスプラットフォームな最小限主義のライブラリ
openFrameworks
Kigs-framework モジュラーな多目的のクロスプラットフォームなフレームワーク MIT license

[編集]汎用

ライブラリ 説明 ライセンス コンフィグレーション
Abseil
Boost 汎用的なライブラリの大きなコレクション Boost License
GSL C++ Core Guidelines で Bjarne Stroustrup、Herb Sutter 他により推奨されている Guidelines Support library の実装
BDE Bloomberg L.P. による Bloomberg Development Environment のコアライブラリ Apache License
Cinder
Dlib ネットワーク、スレッド、グラフィカルインタフェース、データ構造、線形代数、機械学習、XML およびテキストのパース、数値最適化、ベイジアンネット、および様々な他のタスク Boost License
JUCE 広範な枯れたクラスプラットフォームの C++ ツールキット GPL License
Loki デザインパターン
Reason XML、XPath、正規表現、スレッド、ソケット、HTTP、SQL、日付時刻、ストリーム、エンコードおよびデコード、ファイルシステム、圧縮 GPL License
yomm2 C++17 用のオープンマルチメソッド Boost License
Folly Facebook オープンソースライブラリ。 実用性と効率性を念頭に置いて設計された C++11 部品のライブラリ。
Abseil C++ 標準ライブラリを増強するために設計された Google による C++ ライブラリコードのオープンソースコレクション。
cxxomfort C++ の機能のバックポート (C++11 を C++03 に、および C++1y の提案を C++11/C++03 に)。
libsourcey 高速なネットワーク処理およびメディアエンコード処理のためのクロスプラットフォームな C++11 のライブラリ。 HTTP, WebSockets, TURN, STUN, Symple, など...
OnPosix POSIX プラットフォーム上で様々な抽象化 (スレッド、ネットワーク、ログ、IPC、など) を提供する C++ のライブラリ。
Ultimate++ クロスプラットフォームなラピッドアプリケーションデベロップメントフレームワーク
CAF C++ Actor Framework (CAF) は軽量高速なアクタの実装、メッセージ処理、ネットワーク透過なメッセージ処理などの特徴を持つオープンソースな C++11 のアクタモデルの実装です BSD License
cpp-mmf POSIX または Windows 用のメモリマップドファイルをカプセル化する C++98 のライブラリ
CommonPP プロジェクトのメトリクスを取得することを重視した多目的なライブラリ。 BSD License
Better Enums constexpr サポート付きのリフレクション対応列挙型 (列挙から文字列、イテレーション、など) BSD License
Smart Enum 列挙型のための「to_string」「from_string」など。 Boost License
nytl 汎用の C++17 のヘッダオンリーなユーティリティテンプレートライブラリ。 Boost License
SaferCPlusPlus SaferCPlusPlus - 安全でない C++ のプリミティブ (ポインタ、int、std::vector など) のための安全な互換性のある代替品。 Boost License
fcppt Freundlich's C++ Toolkit (fcppt) はより安全な型の提供と関数型プログラミングの使用により一般的な C++ のコードを改善することに焦点を当てたライブラリのコレクションです。
bitfield.h 基本言語の機能よりも移植性と柔軟性がある、ビットフィールド構造体。
composite_op.h 基本的なクラスデータメンバのイントロスペクション。 扱いにくく再入不可能なこともありますが、便利なこともあります。
Abstract Intrusive Containers boost::intrusive よりも柔軟性がありますが、 STL 互換ではありません。
Yato コンテナ、範囲、イテレータ、型特性およびその他のツール、アクターシステム、型安全コンフィグインタフェースを実装しているモダンな C++(14/17) のクロスプラットフォームな STL スタイルかつ STL 互換なライブラリ。 Apache-2.0
Kangaru C++11 および C++14 用の依存性注入コンテナ MIT License
yaal アルゴリズム、コレクション、任意精度計算、汎用 DSL 文法駆動のパーサ、など (CC BY-ND-NC 4.0)
DPTL Cと互換性のあるポインタ、文字列、配列をC++11以降の環境でSTLコンテナとともに使えるようにするdeep pointerテンプレート・ライブラリ(Boost ライセンス)
gsl-lite C++98、 C++11 およびそれ以降のための ISO C++ Guideline Support Library (GSL) の単一ファイルのヘッダオンリーなバージョン MIT License
nonstd-lite *-lite リポジトリの親。 C++11 未満の環境のための C++11 以上の機能への移行パス Boost License
units コンパイル時のヘッダオンリーな依存関係のない C++14 上に構築された次元解析および単位変換のライブラリ MIT License

[編集]GPS

ライブラリ 説明 ライセンス コンフィグレーション
gpsd

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

ライブラリ 説明 ライセンス コンフィグレーション
Dear ImGui 高度に最適化された肥大化しないグラフィカルユーザインタフェイスライブラリ。
FLTK
nana モダンな C++ のスタイルでプログラミングする GUI (Boost ライセンス)
nanogui OpenGL 3.x 以上のための最低限のクロスプラットフォームなウィジェットライブラリ
WxWidgets
OWLNext Windows 上で標準 C++ で GUI アプリケーションを書くための OWL へのモダンなアップデート
tiny file dialogs 単一の C/C++ のクロスプラットフォームなファイル (初期化なし、メインループなし、6個のモーダルな関数呼び出し)
CopperSpice
ライブラリ 説明 ライセンス コンフィグレーション
CopperSpice CopperSpice はクロスプラットフォームソフトウェアアプリケーションを開発するために使用する C++ のライブラリの集合です。 LGPL V2.1 ライセンスでリリースされています。 モダンな慣用的な C++ を使用し、 STL とシームレスに統合されています。 CopperSpice は Qt フレームワークから派生しました。
CsSignal スタンドアロンな C++ のスレッド対応のシグナル/スロットライブラリ
CsString スタンドアロンな C++ の Unicode 対応の文字列ライブラリ
libGuarded 共有データへのアクセスを管理するためのスタンドアロンな C++ のマルチスレッドライブラリ
GTK+
ライブラリ 説明 ライセンス コンフィグレーション
glibmm
gtkmm
goocanvasmm
libglademm
libgnomecanvasmm
webkitgtk
flowcanvas
evince
Qt
ライブラリ 説明 ライセンス コンフィグレーション
Qt
qwtplot3d
qwt5 技術的なアプリケーションのための Qt ウィジェット
libdbusmenu-qt
QuickQanava Qt/QML アプリケーションで有向グラフを描くための C++14 のライブラリ。 プロジェクトホームページ: http://www.qanava.org
QuickProperties QObject/QtObject のプロパティ編集のための C++/QML のライブラリ。 プロジェクトホームページ: http://www.qanava.org

[編集]グラフィックス

ライブラリ 説明 ライセンス コンフィグレーション
cairomm
nux
pangomm
gegl
nanovg OpenGL/DirectX/Metal ベースの 2D 描画ライブラリ。
bgfx 強力なクロスプラットフォームのグラフィックスレンダリングライブラリ。 対応プラットフォーム: Windows、 Mac、 Linux、 iOS、 Android、 Web。 対応バックエンド: DirectX、 OpenGL、 WebGL 等。

[編集]画像

ライブラリ 説明 ライセンス コンフィグレーション
stb
Adobe/boost GIL 2D 画像を操作するアルゴリズムに焦点を置いた高水準な汎用のライブラリ。 入出力オプションは非常に制限されています。
GraphicsMagick 88 以上のメジャーなフォーマットの画像を読み書きおよび操作します。 2002 年に ImageMagick からフォークしました。
Skia Graphics Engine Chrome, Chrome OS, Android, さらに Firefox や Sublime Text, Skia_Graphics_Engine でも使用されている、(2005 年の時点の) Google のコアグラフィックスライブラリ
Anti-Grain Evolution クロスプラットフォームな 2D のラスタライズおよびレンダリングエンジン
プロット
ライブラリ 説明 ライセンス コンフィグレーション
plotutils
フォーマット
ライブラリ 説明 ライセンス コンフィグレーション
Kaitai Struct C++ runtime
libraw
openexr
qimageblitz
imagemagick
djvulibre
poppler
SVG++

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

ライブラリ 説明 ライセンス コンフィグレーション
Vulkan
OpenGL
bgfx クロスプラットフォームなグラフィックス API 非依存の「エンジン/フレームワークを自作する」スタイルのレンダリングライブラリ。
Ogre3D
Diligent Engine モダンなクロスプラットフォームな低水準の 3D グラフィックスライブラリ。
GLEW OpenGL の関数のロード処理
GLAD OpenGL の関数をロードするためのカスタマイズ可能な軽量ライブラリ
Epoxy GLEW のモダンな後継。 ある種の GL コンテキスト間の差異を抽象化し、GLEW よりもシンプルに使用できることもあります。 2015 年から GTK+ プロジェクトで使用されています。
GLFW OpenGL ウィンドウマネージャ
GLM レンダリングのためのヘッダオンリーな C++ の数学ライブラリ
hlsl++ HLSL の構文を用いたレンダリングのためのヘッダオンリーな C++ の数学ライブラリ。 SSE と NEON に対応しています
klein グラフィックスおよびアニメーション用の C++11/14/17 の SSE に最適化された射影幾何代数ライブラリ
assimp 3D モデルのロード
VTK
Magnum ゲームおよびデータの可視化のための軽量かつモジュラーな C++11/C++14 のグラフィックスミドルウェア
Irrlicht
Horde3D
Visionaray C++ のレイトレーシングテンプレートライブラリ
Open CASCADE 3D CAD/CAM/CAE アプリケーションのための SDK
OpenSceneGraph

[編集]画像処理

ライブラリ 説明 ライセンス コンフィグレーション
opencv
dlib
ITK
OTB

[編集]国際化

ライブラリ 説明 ライセンス コンフィグレーション
IBM ICU
gettext
spirit-po po ファイルをパースし GNU libintl に似たインタフェースを提供する小さなヘッダオンリーのライブラリ。 boost::spirit をベースにしています。

[編集]ログ

ライブラリ 説明 ライセンス コンフィグレーション
Log4cpp ファイル、syslog、IDSA およびその他の宛先への柔軟性のあるログのための C++ クラスのライブラリ (LGPL)
Log4cplus スレッドセーフで柔軟性があり、ログの管理とコンフィグレーションに対する任意の粒度の制御を提供する、ロギング API。
spdlog 超高速なヘッダオンリーの C++ のロギングライブラリ
plog 1000 行未満のコードの移植性のあるシンプルな C++ 用のログ (MPL2)
Boost.Log
glog Google Logging Library
log4cxx Apache log4cxx は Apache log4j を真似した C++ 用のロギングフレームワークです
Pantheios 型安全、効率性、汎用性および拡張性の組み合わせを提供する、診断ロギング API ライブラリ
Backward 特にクラッシュ時のための、色およびソーススニペット付きの素敵な Python スタイルのスタックトレースの表示 (MIT ライセンス)。
Quill C++14 の非同期な低遅延のロギングライブラリ

[編集]数学

ライブラリ 説明 ライセンス コンフィグレーション
stats++ 先進的かつ包括的な統計ソフトウェア。 オープンな C++ のソースコードを用いたデータ収集および前処理、統計、機械学習、最適化。
StatsLib テンプレート化されたヘッダオンリーな統計分布関数のライブラリ。
alglib
ArrayFire 高性能計算ライブラリ
GNU MP bignum C++ interface
BigNumber 任意長整数の作成および計算のための C++ のクラス
Boost.Multiprecision
Boost.Math.Special Functions and Statistical Distributions
Boost.Random
NTL 数論を行うためのライブラリ
cpp-measures 物理計測を処理するためのヘッダオンリーな C++11 のライブラリ
G+Smo アイソジオメトリック解析のためのクロスプラットフォームなライブラリ
C++ Matrix 式テンプレート算術演算子を用いた高性能かつ正確 (エッジケースなど) な行列数学ライブラリ
SEMT コンパイル時の数式微分
CasADi 非線形な最適化およびアルゴリズム的な微分のための記号処理フレームワーク。 記号式の C++ コード生成および生成したコードの動的な接続をサポートします。
数値計算
ライブラリ 説明 ライセンス コンフィグレーション
LibBF Bellard によって開発された任意精度の数値計算ライブラリ (十億ビットまで円周率を計算するサンプルプログラム付き)
線形代数
ライブラリ 説明 ライセンス コンフィグレーション
Boost.uBLAS
Eigen
Armadillo
Blitz++
IT++
Dlib - linear algebra tools
Blaze
ETL
DecompLib ベクトルを正定値加重基底ベクトルの集合に分解するヘッダオンリーな C++11 のライブラリ。
xtensor xtensor は多次元配列式を用いた数値解析のための C++ ライブラリです。 (BSD)
PETSc 偏微分方程式によってモデル化される科学的なアプリケーションの並列求解のためのデータ構造とルーチンのスイート。 MPI、 CUDA または OpenCL を通した GPU、および MPI と GPU のハイブリッドをサポートします。
最適化
ライブラリ 説明 ライセンス コンフィグレーション
OptimLib 非線形関数のための数値最適化法の C++11 のライブラリ。
ceres-solver 大きく複雑な最適化問題をモデル化および解くための C++ のライブラリ。 2010年から Google で製品に利用されてきた機能豊富な成熟した高性能なライブラリ。 (BSD)
グラフ理論
ライブラリ 説明 ライセンス コンフィグレーション
Boost.Graph
LEMON
OGDF - Open Graph Drawing Framework
NGraph C++ のシンプルな (ネットワーク) グラフライブラリ
GTpo Protocol Buffer シリアライゼーション付きの C++14 の汎用グラフトポロジライブラリ。 プロジェクトホームページ: http://www.qanava.org
数値のためのクラスライブラリ
ライブラリ 説明 ライセンス コンフィグレーション
cln
Universal IEEE 浮動小数点を置き換える universal number 算術のための C++ テンプレートライブラリ (MIT ライセンス)
機械学習
ライブラリ 説明 ライセンス コンフィグレーション
stats++
liblinear
Dlib machine learning tools
MLPACK machine learning package
Shogun 大規模な機械学習の道具箱
FANN Fast Artificial Neural Network Library
計算幾何
ライブラリ 説明 ライセンス コンフィグレーション
CGAL Computational geometry algorithms library
Wykobi 計算幾何ライブラリ
PCL Point Cloud library
pmp-library Polygon Mesh Processing Library
オートマトン
ライブラリ 説明 ライセンス コンフィグレーション
yasmine C++11 の UML 状態機械フレームワーク

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

ライブラリ 説明 ライセンス コンフィグレーション
Boost.MPL C++03 をターゲットにした、遅い、オリジナルのメタプログラミングライブラリ
Boost.Hana 型と値両方のための新しいメタプログラミングライブラリ
Boost.Mp11
Boost.CallableTraits
Metal 100% SFINAE フレンドリーな、先行メタ関数を使用します
Brigand 最高の性能に対して最適化された、先行メタ関数を使用します
Meta metal と brigrand の中間の性能の、先行メタ関数を使用します
Boost.Metaparse コンパイル時文字列から型、値、およびメタ関数を生成する、コンパイル時パーサライブラリ
Boost.Proto 式テンプレートを用いた EDSL を構築するためのライブラリ
CoMeta 軽量なヘッダオンリーの C++14 のメタプログラミングライブラリ
visit_struct C++11/14 用の構造体のビジターを提供する、ミニチュアリフレクションライブラリ。 自己完結している 200~400 行 (数え方による) のコード。
refl-cpp オーバーロード、テンプレート、属性およびプロキシをサポートする、 C++ 用の現代的なコンパイル時リフレクションライブラリ

[編集]PDF

ライブラリ 説明 ライセンス コンフィグレーション
HARU
PoDoFo
JagPDF

[編集]物理およびシミュレーション

ライブラリ 説明 ライセンス コンフィグレーション
ReactPhysics3D 3D のシミュレーションおよびゲームのための C++ の物理エンジンライブラリ
ProjectCHRONO オープンソースの複数物理シミュレーションエンジン
Bullet ゲーム、ビジュアルエフェクト、ロボティクス、および強化学習のための物理シミュレーション

[編集]シリアライゼーション

ライブラリ 説明 ライセンス コンフィグレーション
Boost.Serialization
libs11n
sweet_persist
protobuf
gSOAP 正確な XML のシリアライズ
C++ XML objects
yaml-cpp
YAS (Yet Another Serialization)
cereal C++11 のシリアライズ
jios JSON のシリアライズ
ThorsSerializer JSON/YAML の入出力ストリーム
iguana ユニバーサルなシリアライズエンジン
cppcodec base64, base32 および16進数をエンコード/デコードする、一貫性があり柔軟性な API を持つ、ヘッダオンリーな C++11 のライブラリ (MIT ライセンス)
rpnx-serial std::map、std::vector などの型を(デ)シリアライスできるライブラリ。
GPDS オブジェクトを XML にシリアライズする汎用目的のデータシリアライザ。 水面下で TinyXML を使用しています。
バイナリシリアライゼーション
ライブラリ 説明 ライセンス コンフィグレーション
UBjsonCpp C++14 ベースの高性能な UBJson の読み書きライブラリ
binn コンパクト、高速、かつ使用が簡単であるように設計されたバイナリシリアライゼーションライブラリ。
bson-cxx BSON フォーマットの C++ 実装。
fast_ber BER/DER エンコーディングルールを用いた高性能なシリアライゼーション。 エンコーディングのレイアウトは ASN.1 の記法で定義されています。 C++11 で書かれ、現代的な C++ の慣習に従っています。

[編集]ソート

ライブラリ 説明 ライセンス コンフィグレーション
Timsort 逆順のまたはほぼソートされたデータに対して、 std::sort を含むクイックソートベースのアルゴリズムを凌駕する性能を持つテンプレート化された安定ソートアルゴリズム。 (MIT)
Indiesort 非ランダムアクセスコンテナで std::sort (およびその他のランダムアクセスなソート手法) を使用可能にするテンプレート化されたソートラッパー関数。 また、ランダムアクセスコンテナおよび配列で大きな型をソートする際の性能も向上させます (zLib)

[編集]システム

ライブラリ 説明 ライセンス コンフィグレーション
Infoware コマンドラインを叩かずにシステムとハードウェアの情報を取得する C++ のライブラリ。 (Creative Commons Zero v1.0 Universal)

[編集]端末

ライブラリ 説明 ライセンス コンフィグレーション
cwidget
replxx UTF-8、構文ハイライトおよびヒントをサポートする、 readline と libedit の置き換え。

[編集]テスト

ライブラリ 説明 ライセンス コンフィグレーション
Boost.Test
cppunit
Google Test
Catch2
doctest ユニットテストおよび TDD のための最も軽量で機能の充実した C++ の単一ヘッダテストフレームワーク
lest 現代的な C++11 ネイティブな単一ファイルのヘッダオンリーなユニットテスト、 TDD および BDD のための小さなフレームワーク (C++98 用の variant を含みます)。
liblittletest 移植性のある、単一のファイルのヘッダオンリーなテストフレームワーク
ELFspy フェイクとスパイを用いて隔離したテスト - Linux のみ
xtd.tunit Windows、macOS、Linux、iOS および android 上の現代的な C++17 のユニットテストライブラリ。 公式サイト
bandit C++11 用のヒューマンフレンドリーなユニットテスト

[編集]テキスト処理

符号化
ライブラリ 説明 ライセンス コンフィグレーション
uchardet 文字列のエンコーディングを推測する能力は基本的に Python の uchardet 関数と同じです。
win-iconv Linux および Mac 用の文字集合エンコーディング変換ライブラリ。 iconv の Windows 実装は Win32 文字集合変換 API をベースにしています。
書式化
ライブラリ 説明 ライセンス コンフィグレーション
fmt printf は使用が簡単でない。 ostream は使用が簡単でない。 format は使用が簡単。
パース
ライブラリ 説明 ライセンス コンフィグレーション
PEGTL Parsing Expression Grammar Template Library
BNFlite 単一ファイルのヘッダオンリーの軽量な文法解析ライブラリ
検索
ライブラリ 説明 ライセンス コンフィグレーション
clucene
xapian
Step サフィックスツリーを構築するための Ukkonen's のオンラインアルゴリズム、サフィックス配列を構築するための Manber のアルゴリズム。
テンプレートエンジン
ライブラリ 説明 ライセンス コンフィグレーション
inja モダンな C++ 用のテンプレートエンジン
Jinja2C++ Jinja2 テンプレートの現代的な C++ による実装

[編集]バージョン管理

ライブラリ 説明 ライセンス コンフィグレーション
LibGit2 バージョン管理システム git のコアライブラリ。
coo-semver セマンティックバージョン番号の C++ の操作ライブラリ。

[編集]動画

ライブラリ 説明 ライセンス コンフィグレーション
crystalhd
mjpegtools
libmatroska
libVLC
gstreamermm

[編集]Web

ライブラリ 説明 ライセンス コンフィグレーション
libnavajo
libmusicbrainz5
liblastfm
libkcddb
Chromium Embedded
QtWebApp Java サーブレットにインスパイアされた C++ 用の HTTP(s) サーバ
Wt
Tufão
libhttpserver
cpp-jwt
oatpp IoT および高性能ウェブサービスのための軽量かつパワフルなウェブフレームワーク。 ゼロ依存であり、容易に移植可能
Drogon Linux/macOS/Unix/Windows で動作する C++14/17 ベースの HTTP ウェブアプリケーションフレームワーク。

[編集]関連項目

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