名前空間
変種
操作

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

From cppreference.com
< cpp‎ | links

このページの目的は、オープンソース C++ ライブラリの包括的なリストを作成することです。これにより、特定の機能の実装が必要になったときに、Web (DuckDuckGo, Google, Bing など) で検索して時間を無駄にする必要がなくなります。

他の人に役立つかもしれないライブラリをご存知でしたら、ここにリンクを追加してください。ライブラリのソースがすぐにダウンロード可能であること以外に、含めるものに制限はありません。

このページは「現状のまま」提供されており、役立つことを期待していますが、いかなる保証もありません。古い、誤解を招く、または間違ったリンクが表示される可能性があります。もしそのようなものに気づいたら、エラーを修正していただけると幸いです。

ライブラリ: 目次

ライブラリ


目次

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

パッケージマネージャー 説明
build2 オープンソース (MIT) のクロスプラットフォームなビルドツールチェーン。Rust の Cargo の利便性を C/C++ プロジェクトの開発とパッケージングにもたらすことを目指しつつ、特にビルドシステムにおいて、より深い柔軟性を提供します。
cget Cmake パッケージの取得。Cmake パッケージのダウンロードとインストールに使用できます。
cmodule 非侵入的な Cmake の依存関係管理。
conan 分散型のオープンソース (MIT) C/C++ パッケージマネージャー。
CPM.cmake Cmake に依存関係管理機能を追加する Cmake スクリプト。Cmake の FetchContent モジュールを薄くラップしたもので、バージョン管理、キャッシュ、シンプルな API などを追加します。
hunter C/C++ プロジェクト向けの Cmake 駆動のクロスプラットフォームなパッケージマネージャー。
spack スーパーコンピュータ、Linux、macOS 向けのパッケージマネージャー。科学技術ソフトウェアのインストールを容易にします。特定の言語に縛られません。
teaport cocoapods にインスパイアされた依存関係マネージャー。
vcpkg Windows、Linux、macOS 向けの C/C++ パッケージマネージャー。
xmake Lua ベースのクロスプラットフォームな C/C++ ビルドツールおよびパッケージマネージャー。

[編集] ライブラリ

[編集] オーディオ

ライブラリ 説明 ライセンス 設定
Amplitude Audio SDK ゲームのニーズを念頭に設計されたクロスプラットフォームのオーディオエンジン。(Src) Apache-2.0 cmake, vcpkg
Aquila C++11 向けのオープンソースでクロスプラットフォームな DSP ライブラリ。 MIT cmake
Aubio オーディオと音楽分析のための C/Python ライブラリ。(Src) GPL-3.0 make
audioFlux オーディオと音楽の分析、特徴抽出のための C ライブラリ。 MIT
Essentia オーディオと音楽の分析、記述、合成 (MIR) のためのオープンソースライブラリとツール。(Src) Affero GPLv3
FFTW DFT を計算するためのライブラリ (SSE/SSE2/AVX/Altivec/ARM Neon)。(Src) GPL-2.0 cmake
FMOD ゲーム向けの使いやすいクロスプラットフォームのオーディオエンジンとオーディオコンテンツ作成ツール。 非商用は無料/商用利用可 cmake
KFR 高速でモダンな C++17 のオープンソース、クロスプラットフォーム DSP/DFT フレームワーク。オーディオのリサンプリング、FIR/IIR フィルター、Biquad、(SSE, AVX, AVX-512, ARM NEON) をサポート。(Src) GPL-2.0 cmake
libsoundio クロスプラットフォームなリアルタイムオーディオ入出力のための C ライブラリ。(Src) MIT cmake
Maximilian C++ オーディオと音楽の DSP ライブラリ。 MIT cmake
Miniaudio オーディオ再生とキャプチャのための C ライブラリ。(Src) Unlicense シングルソースファイル
ni-media オーディオファイルの読み書きのための C++ ライブラリ。 MIT cmake, vcpkg
OpenAL クロスプラットフォームのオーディオ API。 BSD/LGPL/プロプライエタリ cmake
PortAudio PortAudio は、無料、クロスプラットフォーム、オープンソースのオーディオ I/O ライブラリです。(Src) MIT cmake, vcpkg
rnnoise オーディオノイズリダクションのための再帰型ニューラルネットワーク。 BSD-3-Clause make
SELA SimplE Lossless Audio。 MIT cmake
SoLoud ゲーム向けの簡単でポータブルなオーディオエンジン。 zlib
Soundtouch SoundTouch は、オーディオストリームやオーディオファイルのテンポ、ピッチ、再生レートを変更するためのオープンソースのクロスプラットフォームなオーディオ処理ライブラリです。(Src) LGPL-2.1 make
Tonic C++ での簡単で効率的なオーディオ合成。 Unlicense
Verovio 高速で軽量な楽譜浄書ライブラリ。(Src) LGPL cmake, qmake
Wav2Letter++ 完全に C++ で書かれた高速な音声認識ツールキットで、最大の効率を得るために ArrayFire テンソルライブラリと flashlight 機械学習ライブラリを使用しています。 Unlicense cmake

CD
ライブラリ 説明 ライセンス 設定
libkcompactdisc CD とのインターフェースのためのライブラリ。 GPL v2.0 cmake

フィンガープリント
ライブラリ 説明 ライセンス 設定
chromaprint Chromaprint は、ほぼ同一のオーディオを識別するために設計されたオーディオフィンガープリントライブラリです。精度と堅牢性を犠牲にして検索パフォーマンスを向上させています。Chromaprint は複数の FFT ライブラリ(FFmpeg, FFTW3, KissFFT, vDSP)を使用できます。(Src) MIT, LGPL 2.1 cmake
libmusicbrainz MusicBrainz Client Library (libmusicbrainz) は、mb_client とも呼ばれ、アプリケーションに MusicBrainz の検索機能を追加したい開発者向けのライブラリです。Windows, Linux, Mac OS X をサポートしています。(Src) LGPL-2.1 cmake
libofa MusicIP によるオープンソースのオーディオフィンガープリント。 APL make

フォーマット
ライブラリ 説明 ライセンス 設定
AudioFile オーディオファイルの読み書きのためのシンプルな C++ ライブラリ。 MIT cmake
audio_file 多くの一般的なフォーマットのオーディオファイルの読み書きを扱うライブラリ。(Src) LGPL-2.1 make
dr_libs C と C++ 向けのシングルファイルのオーディオ (FLAC, MP3, WAV) デコードライブラリ。 Unlicense
flac FLAC は Free Lossless Audio Codec の略で、FLAC で圧縮されたオーディオは品質の損失がないことを意味します。FLAC は、最も高速で広くサポートされているロスレスオーディオコーデックとして際立っており、プロプライエタリではなく、特許に制約されていません。 オープンソース, BSD, GPL
LAME LAME は高品質な MPEG Audio Layer III (MP3) エンコーダーです。 LGPL
libsndfile サンプリングされた音声(例:WAV, AIFF)を含むファイルの読み書きを、一つの標準ライブラリインターフェースを通じて行うための C++ ラッパー付き C ライブラリ。(Src) LGPL-2.1 cmake, make, vcpkg
minimp3 最小限の MP3 デコーダー。 CC0-1.0 ヘッダーオンリー
Opus 完全にオープンで、ロイヤリティフリー、非常に汎用性の高いオーディオコーデック。 BSD cmake
Vorbis Ogg Vorbis は、完全にオープンで、プロプライエタリではなく、特許およびロイヤリティフリーの汎用圧縮オーディオフォーマットです。 BSD cmake

タグ付け
ライブラリ 説明 ライセンス 設定
id3lib ID3v1 と ID3v2 タグの読み書き、操作、およびビットレートなどの基本的な mp3 ヘッダー情報の取得を行うためのオープンソース、クロスプラットフォームライブラリ。ただし、現在は taglib への移行を推奨しています :) LGPL v2
taglib TagLib Audio Metadata Library は、いくつかの一般的なオーディオフォーマットのメタデータを読み書きするためのライブラリです:MP3 ファイルの ID3v1, ID3v2、Ogg Vorbis コメント、および FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4, ASF ファイルの ID3 タグと Vorbis コメント。(Src) LGPLMPL v1.1

[編集] ベンチマーク

ライブラリ 説明 ライセンス 設定
benchmark ユニットテストと同様に、コードスニペットをベンチマークするためのライブラリ。 Apache 2.0 cmake
Celero 機能豊富な C++ ベンチマーク作成ライブラリ/フレームワーク。C++11 を使用して Windows, Linux, OSX をサポート。 Apache cmake
Criterion モダン C++ 向けのマイクロベンチマークライブラリ。 MIT ヘッダーオンリー; cmake
gperftools 「Google Performance Tools」には、高性能なマルチスレッド malloc 実装と、ヒープ割り当てと CPU 使用率をベンチマークするためのツールが含まれています。 BSD 3-Clause "New" または "Revised" configure
nanobench C++11/14/17/20 向けの、シンプル、高速、正確なシングルヘッダーのマイクロベンチマーク機能。(Src) MIT ヘッダーオンリー; cmake
picobench 非常に小さな(マイクロ)マイクロベンチマークライブラリ。 MIT ヘッダーオンリー; cmake
plf::nanotimer ベンチマーク用の、オーバーヘッドが最も低い、クロスプラットフォームのシンプルなタイマークラス。 zlib ヘッダーオンリー

[編集] 通信

ライブラリ 説明 ライセンス 設定
ACE 非同期ネットワーク、イベントの多重分離、メッセージング。(Src) (Doc) カスタム make
Apache Thrift Apache Thrift ソフトウェアフレームワークは、スケーラブルなクロス言語サービス開発のためのもので、ソフトウェアスタックとコード生成エンジンを組み合わせて、C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi などの言語間で効率的かつシームレスに動作するサービスを構築します。(Src) Apache-2.0 cmake, vcpkg
Boost.Asio 非同期および同期ネットワーキング、タイマー、シリアル I/O。 BSL-1.0
Boost.Beast Boost.Asio 上に構築された HTTP および WebSocket ライブラリ。 BSL-1.0
Breep イベントベースの高レベルなピアツーピアライブラリで、ユーザーがオブジェクトを直接送受信できます。 European Union Public License 1.1 cmake
brpc Baidu 全体で 100 万以上のインスタンスと数千種類のサービスで使用されている、産業グレードの RPC フレームワーク。(Src) (Doc) Apache 2.0 cmake
C++ REST SDK 非同期 HTTP クライアントおよびリスナー、非同期 Stream、URI、JSON。 MIT cmake
cpp-httplib C++11 のシングルファイル、ヘッダーオンリー、クロスプラットフォームな HTTP/HTTPS ライブラリ。 MIT ヘッダーオンリー; cmake
cpp-netlib C++ ネットワークライブラリ。 BSL-1.0 cmake
cppsimpleuri モダン C++ の URI & クエリパーサー。 MIT cmake
cpr モダン C++ HTTP リクエストライブラリ。 MIT cmake
Crow C++ マイクロ Web フレームワーク (Python の Flask にインスパイア)。 BSD-3-Clause ヘッダーオンリー; cmake
curlpp libcURL (CURL ライブラリ) の C++ ラッパー。(Src) cmake, vcpkg
DumaisLib WebServer, JSON, WebSocket サーバー, REST フレームワーク (c++ アプリで REST API を作成するためのライブラリ) などの様々なユーティリティ。 MIT make
EasyHttp 使いやすさと速度に重点を置いたクロスプラットフォームの HTTP クライアントライブラリで、HTTP レスポンスのキャッシュなどをサポートしています。 MIT cmake
eCAL 高性能なプロセス間通信ライブラリ。 Apache 2.0 cmake
fineftp-server Windows と Unix 向けの FTP サーバーライブラリ。 MIT cmake
FPNN Fast Programmable Nexus Network。高性能な完全非同期 RPC サービスフレームワーク。HTTP, WebSocket, TCP, および信頼性のある UDP を同時にサポート。超高負荷サーバーの開発をサポートし、対応するクライアント SDK を提供。 不明 make
gRPC あらゆる環境で実行可能な、モダンなオープンソースの高性能 RPC フレームワーク。(Src) (Doc) Apache-2.0 bazel, cmake, vcpkg
gsoap XML データバインディング、高速 WSDL/SOAP/XML Web サービス、WS-Security、JSON/XML-RPC RESTful サービスのための C/C++ 開発ツールキット。 GPLv2
hmbdc 軽量で高性能な C++17 メッセージ pub/sub ミドルウェアフレームワーク/ライブラリ。 ヘッダーオンリー
HTTPP Boost 上に構築された、シンプルで C++14、実稼働可能な HTTP サーバーと、libcurl 上に構築されたクライアント。 BSD 2-Clause "Simplified" cmake, make
IXWebSocket 依存関係のないオープンソースの WebSocket + HTTP ライブラリ。SSL と per message deflate WebSocket 拡張機能をサポート。 BSD 3-Clause "New" または "Revised" cmake, make
KCP アプリケーションがネットワーク遅延を削減するのに役立つ、高速で信頼性の高い ARQ プロトコル。 MIT cmake
libashttp 非同期 HTTP クライアントライブラリ。 GNU Lesser General Public v3.0
libjson-rpc-cpp

C++ にクロスプラットフォームの JSON-RPC (リモートプロシージャコール) サポートを提供するフレームワークで、JSON-RPC 2.0 & 1.0 に完全互換。

MIT cmake, conan
libnavajo 高速マルチスレッド HTTP サーバー、HTML5 WebSocket、SSL、X509、HTTP 認証、圧縮、クッキー、高度なセッション管理、IPv4、IPv6 を含む C++ フレームワーク (CeCILL-C)。 CeCILL-C FREE SOFTWARE LICENSE AGREEMENT cmake
libtins ネットワークパケットの作成とスニッフィングのためのライブラリ。(Src) (Doc) BSD-2 cmake, vcpkg
LiteNetLibPP ゲーム向けの軽量で信頼性のある UDP ライブラリ。 MIT cmake
mailio MIME および電子メールライブラリ。 BSD 2-Clause "Simplified" cmake
nanomsg 高速メッセージキュー、zeromq の後継。
netif Windows、Linux、macOS、FreeBSD でネットワークアドレスを取得するための C++14 ライブラリ。 BSD 3-Clause "New" または "Revised" ヘッダーオンリー; cmake
nghttp2 HTTP/2 C ライブラリとツール (サーバー、クライアント、プロキシ、ベンチマークツール)。 MIT cmake, configure
ngrest 高速で使いやすい JSON RESTful Web サービスフレームワーク。 Apache 2.0 cmake
nng 高速メッセージキュー、nanomsg の後継。
Oat++ Web フレームワーク:REST-API とリクエスト実装。(Src) (Doc) Apache 2.0 cmake
omniORB C++ での最速、完全、かつポータブルな CORBA ORB 実装。
OpenDDS DDS (Data Distribution Service) の実装。
Paho MQTT Eclipse による MQTT 用のモダン C++ クライアント。 cmake
paozhu HTTP/2 ORM WebSocket をサポートする C++20 Web フレームワーク。 MIT cmake
PcapPlusPlus マルチプラットフォームの C++ ネットワークスニッフィング、パケット解析、作成フレームワーク。libpcap、Npcap、WinPcap、DPDK、AF_XDP、PF_RING などの多くの人気のあるパケット処理エンジンの C++ ラッパーを提供。(Src) Unlicense conan, homebrew, cmake, vcpkg
POCO ネットワーキング:暗号化、HTTP;Zip ファイル。(Doc)
rest_rpc C++11、高性能、クロスプラットフォーム、使いやすい RPC フレームワーク。 MIT cmake
restbed C++14 アプリケーションに非同期 RESTful 機能 (HTTP 経由の安全な通信) をもたらす、クロスプラットフォームで機能豊富なフレームワーク。 ライセンス cmake
restc-cpp C++ から JSON API にアクセス。HTTP クライアント、ネイティブ C++ クラスと JSON のシリアライズ/デシリアライズ、boost::asio コルーチンによる非同期 IO。C++14。 MIT cmake
restful_mapper C++ で RESTful JSON API を消費するための ORM。 cmake, make
seastar C++14/C++17 に基づく高性能サーバーサイドアプリケーションフレームワーク。 Apache 2.0 cmake, etc.
Silicon Silicon C++14 Web フレームワーク:高速で堅牢な Web API。 MIT cmake
sockpp シンプルでモダンな C++ ソケットライブラリ。 BSD 3-Clause "New" または "Revised" cmake
stream-client 軽量な Boost ベースのクライアントサイドソケット/コネクタ/ソケットプール/リゾルバ。 Apache 2.0 ヘッダーオンリー; cmake
tacopie C++11 TCP ライブラリ。 MIT cmake
TAO CORBA
taox11 C++11 ベースの CORBA 実装。 MIT
Unicomm 非同期ネットワーク、高レベル TCP 通信フレームワーク。
uvw libuv (クロスプラットフォーム非同期 I/O) の C++17 ラッパー。 MIT ヘッダーオンリー; cmake
WNetWrap C++ の WinInet ラッパー。 MIT
wvstreams UniConf と便利な D-Bus API を含む C++ ネットワークライブラリ。 GPL
zeromq 高速メッセージキュー。

[編集] 並行処理

ライブラリ 説明 ライセンス 設定
AdaptiveCpp NVIDIA, AMD, Intel の CPU と GPU 向けに、SYCL と C++ パラレル STL のオフロードコンパイラとランタイムシステムを提供。 BSD-2-Clause cmake
Asyncpp 様々な並行操作を提供する非同期 C++ ライブラリ。 MIT cmake
BlockingCollection C++11 スレッドセーフ、マルチプロデューサー、マルチコンシューマーのブロッキングキュー、スタック、優先度付きキュークラス。 GPL-3.0 ヘッダーオンリー
Boost.Atomic アトミックデータ型とそれらのデータ型に対する操作、およびアトミック変数を介して複数のスレッドを調整するために必要なメモリ順序制約を提供します。 BSL-1.0
Boost.Compute OpenCL に基づく C++ 向けの GPU/並列コンピューティングライブラリ。 BSL-1.0 cmake
Boost.Context 単一スレッド上で協調的なマルチタスクの抽象化を提供する C++11 ライブラリ。 BSL-1.0
Boost.Interprocess プロセス間通信と同期メカニズムの使用を簡素化し、共有メモリ、メモリマップドファイル、セマフォ、ミューテックス、条件変数、アップグレード可能なミューテックス型、同期オブジェクトの名前付きバージョン、ファイルロック、メッセージキューなど、幅広い機能を提供します。 BSL-1.0
Boost.Lockfree ノンブロッキング(別名ロックフリー)な並行データ構造を提供します:キュー、スタック、リングバッファ (spsc_queue)。 BSL-1.0
Boost.MPI 標準の Message Passing Interface への C++ フレンドリーなインターフェース。 BSL-1.0
Boost.Thread 共有データを持つ複数の実行スレッドの使用と、スレッド間でデータを同期する手段を可能にします。 BSL-1.0
concurrencpp C++ のためのモダンな並行処理。タスク、エグゼキュータ、タイマー、および C++20 コルーチン。 MIT cmake
dispenso C++ のための高性能並行処理。parallel_for、Future、パイプライン、タイマー、時限/定期タスク、および並行データ構造。 MIT cmake
Highway パフォーマンスポータブルで、長さにとらわれない SIMD/ベクターイントリンシックを提供。サポート:SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER。(Doc) Apache-2.0 cmake
HPX あらゆる規模の並列・分散アプリケーション向けの汎用 C++ ランタイムシステム。(Doc) BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB は、共有メモリ並列プログラミングとヘテロジニアスコンピューティングのためのクロスプラットフォーム C++ ライブラリです。このライブラリは、汎用並列アルゴリズム、並行コンテナ、スケーラブルなメモリアロケータ、ワークスティーリングタスクスケジューラ、および低レベル同期プリミティブを提供します。(Src) (Doc) Apache-2.0 または 商用 cmake, make
KOKKOS CUDA, HIP, SYCL, HPX, OpenMP, C++ スレッドをバックエンドとして使用し、パフォーマンスポータブルな HPC アプリケーションを作成するためのプログラミングモデル。(Doc) カスタム cmake, make
libopenmpi Open MPI プロジェクトは、オープンソースの Message Passing Interface 実装です。 3-clause BSD
libsimdpp ポータブルでオーバーヘッドゼロの C++ 低レベル SIMD ライブラリ。 Boost ヘッダーオンリー; cmake
MPL 標準の Message Passing Interface への C++17 フレンドリーなインターフェース。 BSD 3-Clause "New" または "Revised" ヘッダーオンリー; cmake
MutexGear ミューテックスのみの同期 (ホイール、rwlock、ワークキュー) C/C++11 ライブラリ。 The MutexGear Library configure, msvc, make
OpenMP 並列プログラミングのための OpenMP API 仕様。
PoCL OpenCL 標準のポータブルで再ターゲット可能なオープンソース (LLVM ベース) 実装。(Src) (Doc) MIT cmake
RaftLib 並列データフロー計算を可能にする C++17 のストリームライクな並行アクター。 Apache-2.0 cmake
SObjectizer アクターモデルと publish-subscribe モデルを使用して C++ で並行・イベント駆動アプリケーションを開発するための、小型のクロスプラットフォームフレームワーク。 BSD-3-Clause cmake, vcpkg, conan
stdgpu GPU 上の効率的な STL ライクなデータ構造。 Apache 2.0 cmake
subprocess サブプロセスを実行するための C++17/20 クロスプラットフォームライブラリ。 MIT cmake, teaport
Taskflow モダン C++ での並列タスクプログラミング。 TASKFLOW MIT cmake
task-thread-pool C++11 以降向けの高速で軽量なスレッドプール。 BSD-2-Clause or MIT or BSL-1.0 cmake, vcpkg, single header
ThreadPool シンプルで軽量なスレッドプール。 BSD-3-Clause ヘッダーオンリー; cmake, make
thread_pool モダンで高速、軽量なスレッドプール。 MIT cmake
Thrust CUDA, TBB, OpenMP 上の STL ライクな並列アルゴリズムとデータ構造。 Apache v2.0, Boost v1.0. cmake
TimerAlarm スレッドに基づくタイマーとアラーム。 BSD-3-Clause ヘッダーオンリー; cmake, make
VexCL OpenCL, CUDA, OpenMP 向けの C++ ベクター式テンプレートライブラリ。 MIT cmake
ViennaCL OpenMP, CUDA, OpenCL バックエンドを持つ線形代数とアルゴリズム。(Src) (Doc) カスタム cmake
Xenium 様々な並行データ構造と回収スキームを提供する C++17 ライブラリ。 MIT ヘッダーオンリー; cmake

[編集] 設定

ライブラリ 説明 ライセンス 設定
Boost.Program_options このライブラリは、コマンドライン、設定ファイル、環境変数などの従来の方法でユーザーからプログラムオプション、つまり(名前, 値)のペアを取得することを可能にします。 BSL-1.0
figcone 構造体を宣言することで JSON, YAML, TOML, XML, INI 設定を読み込む。 MS-PL cmake
gconfmm 人気のある GUI ライブラリ GTK のためのクロスプラットフォームな(公式)C++ インターフェースで、型安全なコールバックや、継承によって容易に拡張可能な包括的なウィジェットセットが含まれています。gtkmm は、string、コンテナ、イテレータを含む STL を使用します。UTF8 がサポートされています。(Src) (Doc) LGPLv2.1 autotools, meson, make
libconfig 構造化された設定ファイル ("*.cfg") を処理するためのシンプルなクロスプラットフォーム C/C++ ライブラリ。(Src) (Doc) LGPL 2.1 autotools, cmake, make
libconfini C で書かれたクロスプラットフォームの INI パーサー。(Doc) GPL-3.0 autotools, make
uconfig 軽量な C++17 設定ライブラリ。 Apache 2.0 ヘッダーオンリー; cmake

コマンドライン
ライブラリ 説明 ライセンス 設定
Argh! ミニマリストな引数ハンドラ。 BSD 3-Clause ヘッダーオンリー; cmake, vcpkg
argparse (hbristow) コマンドライン引数を解析するためのスリムな C++ クラス。Python の同名クラスに似たインターフェースを持つ。 BSD
argparse (morrisfranken) コマンドライン引数をエレガントに解析するための軽量ライブラリ。 Apache 2 ヘッダーオンリー; cmake
argparse (p-ranav) C++17 向けのコマンドライン引数パーサー。 MIT ヘッダーオンリー; cmake, vcpkg
args シンプルな C++ 引数パーサーライブラリ。 MIT ヘッダーオンリー; cmake, conan, meson, vcpkg
Boost.Program_options このライブラリは、コマンドライン、設定ファイル、環境変数などの従来の方法でユーザーからプログラムオプション、つまり(名前, 値)のペアを取得することを可能にします。 BSL-1.0
CLI11 シンプルで直感的なインターフェースで豊富な機能セットを提供する C++11 コマンドラインパーサー。 BSD-3-Clause ヘッダーオンリー; cmake, meson, vcpkg
clipp モダン C++ のための強力で表現力豊かな引数解析。 MIT ヘッダーオンリー; cmake, vcpkg
cmd_line_parser C++17 向けのコマンドラインパーサー。 MIT ヘッダーオンリー; cmake
cmdlime サブコマンド、バリデータ、および GNU、POSIX、または X11 コマンドラインオプション形式の選択機能をサポートする、簡潔で宣言的なインターフェースを提供する C++17 コマンドライン解析ライブラリ。 MS-PL cmake
cxxopts 軽量な C++11/C++17 コマンドライン引数パーサーで、標準の GNU スタイルのオプション構文をサポート。 MIT ヘッダーオンリー; bazel, cmake
fire-hpp 関数シグネチャを使用して完全に機能する CLI を作成。 BSL-1.0 ヘッダーオンリー; cmake
flags シンプルで拡張可能な C++17 引数パーサー。 Unlicense ヘッダーオンリー; cmake
gflags コマンドラインフラグ処理を実装するライブラリ。文字列などの標準型への組み込みサポートや、フラグが使用されるソースファイルでフラグを定義する機能が含まれています。 BSD cmake
structopt 構造体を定義することでコマンドライン引数を解析。 MIT ヘッダーオンリー; cmake
tclap コマンドライン引数を解析するためのシンプルな C++ テンプレートライブラリ。このライブラリは、シンプルで柔軟なオブジェクト指向のインターフェースを提供します。 MIT cmake

CSS
ライブラリ 説明 ライセンス 設定
mycss CSS パーサー

HOCON
ライブラリ 説明 ライセンス 設定
cpp-hocon Pupplet によって開発された HOCON 形式の C++ 実装。

JSON
ライブラリ 説明 ライセンス 設定
ArduinoJson Arduino, IoT, 組み込み C++ 向けの C++98/11/14/17 JSON ライブラリ。 MIT cmake
Boost.JSON C++11/17 での JSON の解析、シリアライズ、DOM。 BSL-1.0
cajun-jsonapi 標準 C++ をできるだけ忠実に模倣した、直感的で簡潔なインターフェースを重視した JSON のための C++ API。 make
DAW JSON Link ライブラリによるアロケーションなしでユーザーデータ構造に直接解析できる、型チェック付きの静的な C++ バインディングを提供する C++17 ライブラリ。プッシュ/プルモード、アロケータサポート、constexpr 対応。 BSL 1.0 cmake
Glaze 直接メモリシリアライズを備えた最速の JSON ライブラリの一つ (C++23)。BEVE と CSV もサポート。 MIT cmake, conan, build2, vcpkg
jansson UTF-8 サポート付きの JSON データのエンコード、デコード、操作のための C ライブラリ。 MIT cmake, make
jeayeson 非常に健全な C++14 JSON ライブラリ。 BSD-3 ヘッダーオンリー
jios JSON 入出力ストリーム。 MIT cmake
JOST
json Niels Lohmann による C++11 向け JSON ライブラリ。直感的な構文が特徴。 MIT ヘッダーオンリー; bazel, cmake, meson
Jsonifier 非常に高速な JSON 解析/シリアライズのためのいくつかの C++20 クラス。 MIT cmake
JSON Voorhees C++11 のためのキラー JSON。(Doc) Apache-2.0 cmake
JSON++
json11 C++11 向けの小さな JSON ライブラリで、JSON の解析とシリアライズを提供。 MIT cmake
JsonBox 簡単かつ高速に JSON を読み書きするために使用される C++ ライブラリ。 MIT cmake
jsoncons JSON および JSON ライクなデータフォーマットのためのライブラリ。JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON をサポート。 カスタム ヘッダーオンリー
jsoncpp コメントを保持しながら、JSON 値の操作(シリアライズとデシリアライズを含む)を可能にするライブラリ。 MIT cmake, conan, vcpkg
libjson
minijson DOM レスでアロケーションフリーな C++ JSON 解析およびシリアライズ。 カスタム cmake
Neyson 軽量な C++11 JSON ライブラリ。 BSD-3-Clause cmake
nosjob JSON データを生成および消費するための C++98 ライブラリ。 MIT make
qjson
rapidjson C++ 向けの高速な JSON パーサー/ジェネレーターで、SAX/DOM スタイルの両方の API を持ち、UTF-8/16/32 をサポートし、オプションで SIMD を使用。(Doc) カスタム ヘッダーオンリー; cmake, vcpkg
simdjson 最新のマイクロアーキテクチャを活用し、SIMD で並列化することで、毎秒ギガバイト単位の JSON を解析。(Doc) (Kino) Apache-2.0 cmake, vcpkg
struct_mapping JSON を C++ 構造体に、またはその逆にマッピング。 MIT cmake
swxJson 現在使用されている中で最も便利な C++ JSON ライブラリ。たった一つの関数呼び出しで、あらゆるレベルの複雑な構造を読み書きできます。パフォーマンスは RapidJSON の約半分です。 MIT make
ThorsSerializer JSON/BSON/YAML 入出力ストリーム。 MIT make
ujson µjson は、小型の C++11、UTF-8、JSON ライブラリです。 cmake
yyjson ANSI C で書かれた高性能 JSON ライブラリ。 MIT cmake

TOML
ライブラリ 説明 ライセンス 設定
toml++ C++17 以降向けの TOML パーサーおよびシリアライザー。
toml11 C++11 ベースの TOML 解析ライブラリ。

XML
ライブラリ 説明 ライセンス 設定
ai-xml クラスに一つの最小限の関数を追加するだけで、オブジェクトを XML にシリアライズしたり、XML からデシリアライズしたりできます。内部で libxml++ を使用。 AGPL-3.0 make
GPDS オブジェクトを XML にシリアライズしたり、XML からデシリアライズしたりするための汎用データシリアライザー。内部で TinyXML を使用。
gSOAP XML データバインディング。
libxml++ libxml++ は、libxml XML パーサー C ライブラリの C++ ラッパーです。(Doc) LGPL-2
pugixml XPath サポート付きの、軽量、シンプル、高速な C++ 向け XML パーサー。 MIT cmake, conan
tinyxml
tinyxml2 TinyXML の別のバージョンで、現在も開発中。
Xerces

YAML
ライブラリ 説明 ライセンス 設定
yaml-cpp C++ の YAML パーサーおよびエミッター。 MIT cmake

[編集] コンテナ

ライブラリ 説明 ライセンス 設定
Boost.Bimap 双方向マップライブラリ。XY の両方をキーとして使用できる bimap<X,Y> のような連想コンテナを提供します。(Src) BSL-1.0
Boost.Container STL ライクなコンテナを含む、いくつかのよく知られたコンテナ、再帰的コンテナ、および新しい便利なコンテナ (flat_map, flat_set, flat_multimap, flat_multiset, stable_vector, static_vector, small_vector, devector) を実装するライブラリ。(Src) BSL-1.0 ヘッダーオンリー
Boost.Fusion 異種コレクションのタプルを扱うためのライブラリ。コンテナセット (vector, list, set, map) と、その基礎となるデータの変換された表現、いわゆるビューを提供します。(Src) BSL-1.0
Boost.Heap STL よりも多くの機能と異なるパフォーマンス特性を持つ優先度付きキューの実装。(Src) BSL-1.0
Boost.Pointer Container ヒープ割り当てオブジェクトを例外安全な方法で、最小限のオーバーヘッドで保持するためのコンテナを提供します。(Src) BSL-1.0
Boost.Tuple C++11 以前の n-tuple (固定サイズの要素のコレクション) を実装します。(Src) BSL-1.0
Boost.Variant C++17 以前の variant (安全で、ジェネリックな、スタックベースの discriminated union コンテナ) を実装します。(Src) BSL-1.0
C++ Allocators 固定サイズの静的およびスタックベースメモリ用の STL 準拠アロケータ + カスタム境界割り当てを可能にする別のアロケータ。 BSD-3-Clause cmake, make
cpp-btree B-tree コンテナは CPU キャッシュをより有効に活用します:btree_map, btree_set, btree_multimap, btree_multiset。(Src) Apache-2.0 ヘッダーオンリー; cmake
DataFrame 統計、金融、ML 分析のための C++ DataFrame -- モダン C++ でネイティブ型と連続メモリ記憶域を使用。 BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant は C++11/14/17 のジェネリックで、型安全な、discriminated union です。特に、非常に優れた constexpr サポートを持っていることで注目されています。 BSL-1.0 cmake
Frozen C++14 の constexpr 完全ハッシュに基づくイミュータブルなセット、マップ、およびアルゴリズム。 Apache-2.0 ヘッダーオンリー; cmake
Immer 永続的でイミュータブルなデータ構造のライブラリ。 Boost cmake
plf::colony 順序なしの「バッグのような」コンテナで、高頻度の変更シナリオにおいて std:: コンテナを上回るパフォーマンスを発揮し、挿入や削除に関わらず、削除されていない要素へのポインタを有効に保ちます。C++98/11/14/etc互換。P0447 (std::hive) も参照。(Src) zlib conan build2
plf::list 範囲スプライシングを犠牲にしてキャッシュフレンドリー性を高めた std::list 実装。これにより、挿入、削除、イテレーションが高速化されます。C++98/03/11/14/17/20/23/26/etc互換。(Src) (Doc) zlib
plf::reorderase 削除後の順序が重要でない場合に、ランダムアクセスコンテナの削除パフォーマンスを向上させるための「swap-and-pop」/「move-and-pop」イディオムの拡張と最適化。単一、範囲、および std::erase_if スタイルの削除をカバーします。C++98/11/14/etc互換。(Src) zlib
plf::queue std::queue コンテナアダプタのドロップインリプレースメントコンテナで、キューコンテキストにおいて std::dequestd::list よりも優れたパフォーマンスを発揮します。C++98/11/14/etc互換。(Src) zlib
plf::stack std::stack コンテナアダプタのドロップインリプレースメントコンテナで、スタックコンテキストにおいて std::vectorstd::deque よりも優れたパフォーマンスを発揮します。C++98/11/14/etc互換。(Src) zlib
ring_span Arthur O'Dwyer の ring_span(別名 circular buffer view)のライトな実装。C++98互換。 BSL-1.0 ヘッダーオンリー; cmake
strict_variant リアルタイム/組み込みフレンドリー(つまり、-fno-exceptions/-fno-rtti互換)で、決して空にならない C++11 をターゲットにした variant。高速で、多くの望ましくない暗黙的な変換を防ぎます。 BSL-1.0 cmake
Ygg 赤黒木区間木、区間マップなどの高性能なコンテナやデータ構造の侵入的な C++11 実装。 MIT cmake

[編集] 暗号化

ライブラリ 説明 ライセンス 設定
Botan 暗号化ツールキット。(Src) BSD 2-Clause "Simplified" make
crypto++ 無料の暗号化スキーマの C++ クラスライブラリ。(Src) Boost make
gnutls SSL、TLS、DTLS プロトコルおよびその関連技術を実装したセキュアな通信ライブラリ。(Src) LGPL-2.1 make
openssl 汎用暗号化とセキュア通信のための、堅牢で商用グレードのフル機能ツールキット。(Src) Apache-2.0 make
TomCrypt 非常に包括的で、モジュール式かつポータブルな暗号ツールキット。開発者向けに、よく知られた公開ブロック暗号、一方向ハッシュ関数、連鎖モード、擬似乱数生成器、公開鍵暗号、その他多数のルーチンを提供します。 (ソース) パブリックドメイン cmake, make

[編集] データベース

ライブラリ 説明 ライセンス 設定
Boost::MySQL MySQLクライアントライブラリ BSL-1.0
cpp-redis C++11対応の軽量Redisクライアント。非同期、スレッドセーフ、依存関係なし、パイプライン対応、マルチプラットフォーム。 (ドキュメント) MIT cmake
DTL ODBCのレコードセットをSTLコンテナのように扱えるようにします。 (ソース) (ドキュメント)
EasyQtSql 手軽で簡単なSQLクエリ発行のための、軽量なC++11ライブラリ(Qtベース)。 MIT ヘッダーオンリー; qmake
Galera Galera Clusterは、同期マルチマスタレプリケーションライブラリ(Galera)と、MySQL/MariaDB用のWrite Set Replication(WSREP)APIです。 (ソース) GPLv2 cmake, scons
LevelDB Googleによって開発されたC++ライブラリで、数十億規模のKey-Valueデータの永続ストレージを扱います。 (ドキュメント) BSD-3 cmake
libpqxx PostgreSQL用のC++コネクタ (ソース) BSD-3 cmake, make
lmdb++ LMDB組み込みB+木データベースライブラリ用のC++11ラッパー。 Unlicense make
mongocxx MongoDB用の公式C++11ドライバライブラリ (ドキュメント)。CRUD操作、インデックス作成、集計用に最適化されたAPIを提供します。BSONをサポートし、コネクションプーリングや認証メカニズムを備えており、MongoDBを活用するC++アプリケーションを構築するための高性能でスケーラブルなソリューションを提供します。 Apache 2.0 cmake
mysql++ MySQL DBとツール
nanodbc ネイティブC ODBC API用の、小規模でクロスプラットフォームなC++14ラッパー。 MIT cmake
ODB C++用のオープンソース、クロスプラットフォーム、クロスデータベースなオブジェクトリレーショナルマッピング(ORM)システム。ODBはMySQL, SQLite, PostgreSQL, Oracle, Microsoft SQL Serverのリレーショナルデータベース、およびC++98/03とC++11言語標準をサポートします。 GPL2および/またはNCUEL
OTL Oracle DB、ODBC、DB2-CLI用のC++テンプレートベースのデータベースライブラリ。 (ソース)
Pgfe モダンC++によるPostgreSQLクライアント(フロントエンド)API Zlib cmake
QTL MySQL, SQLite, ODBC用の、親しみやすく軽量なC++データベースライブラリ。 Apache-2.0 make
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost
QxOrm C++/Qt用のObject Relational Mapping (ORM) データベースライブラリ。主要なデータベース、シリアライゼーション(JSON, バイナリ, XML)をサポート。スタンドアロンのマルチスレッドHTTP Webサーバーも備えています。 GPLv3またはプロプライエタリ
redis-cpp Redisコマンドを実行するための軽量なC++17クライアントライブラリ。 MIT ヘッダーオンリー; cmake
redis-plus-plus C++11で書かれたRedisクライアント。Redis Sentinel, Redis Cluster, パイプライン, トランザクション, pubsub, コネクションプール, STL風インターフェースをサポートします。 Apache-2.0 cmake
SOCI SQLクエリを通常のC++コードに埋め込む、プラグインベースのデータベースライブラリ。サポートされるバックエンドはDB2, Firebird, MySQL, ODBC (汎用バックエンド), Oracle, PostgreSQL, SQLite3です。 (ソース) (ドキュメント) Boost cmake
SQLAPI++ 複数のSQLデータベースシステムをサポートするミドルウェアC++データベースライブラリ。対応DB: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB。 (ソース) (ドキュメント) カスタム make
SQLiteCPP スリムで使いやすいC++ SQLite3ラッパー。 MIT cmake, meson, vcpkg
SQLite ORM モダンC++向けの、SQLiteが解釈するSQLのためのめ込みメイン語 (EDSL)。 AGPL-3.0, MIT ヘッダーオンリー; cmake, vcpkg
sqlpp11 C++でSQLクエリと結果を扱うための、型安全な埋め込みドメイン固有言語。 BSD-2 cmake
taoPQ 軽量なC++17 PostgreSQLクライアントライブラリ。 Boost cmake

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

ライブラリ 説明 ライセンス 設定
AngelScript C++に似たスクリプト言語。 ZLib
ChaiScript C++用の使いやすい組み込みスクリプト言語。 BSD-3-Clause
cling インタラクティブなC++インタプリタ。ClangとLLVM上に構築され、RAD、スクリプト作成、組み込みスクリプティング、実行時コード生成に活用されます。 (ソース) カスタム / LGPL cmake
ExprTk 使いやすく、統合が容易で、非常に効率的な実行時数式パーサおよび評価エンジン。ExprTkは、関数、論理、ベクトル処理のセマンティクスを多数サポートし、非常に簡単に拡張可能です。
Jinx ビデオゲーム向けに設計されたスクリプト言語。 MIT cmake
spidermonkey.dev MozillaのJavaScriptおよびWebAssemblyエンジン。
muparser C++で書かれた、拡張可能で高性能な数式パーサライブラリ。 BSD-2-Clause cmake
PythonQt Qtフレームワーク用の動的Pythonバインディング。Pythonスクリプト言語をC++ Qtアプリケーションに簡単に組み込む方法を提供します。 LGPL 2.1
lua 主に組み込み用途向けに設計された、軽量なマルチパラダイムスクリプト言語。Cライブラリ。 MIT make
sol2 LuaへのモダンなC++ライブラリバインディング。 MIT ヘッダーオンリー; cmake
v8pp C++の関数やクラスをV8 JavaScriptエンジンにバインドします。 BSL-1.0 ヘッダーオンリー; cmake

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

ライブラリ 説明 ライセンス 設定
distortos マイクロコントローラ(ARM, STM32)向けのオブジェクト指向C++11 RTOS。 (ソース) (ドキュメント) MPL-2.0 cmake
ETL Embedded Template Library - C++03対応、低リソース(組み込み)プラットフォーム向けに調整されたポータブルなテンプレートライブラリ。 (ソース) MIT
QP/C++ RTOSカーネル:アクティブオブジェクトとステートマシンに基づくリアルタイム組み込みフレームワーク。 GPLv3
µcuREST マイクロコントローラ向けのC++11 REST/JSONサーバーフレームワーク。

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

ライブラリ 説明 ライセンス 設定
exempi
exiv2
libkexiv2
rarian

[編集] 金融計算

ライブラリ 説明 ライセンス 設定
DataFrame 統計、金融、ML分析のためのC++ DataFrame -- モダンC++で、ネイティブ型と連続メモリ記憶域を使用。 BSD-3-Clause cmake, make, conan
QuantLib 定量的金融ライブラリ - 定量的金融のためのフリー/オープンソースライブラリ。 修正BSD

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

ライブラリ 説明 ライセンス 設定
Anax オープンソースのC++エンティティシステム。 MIT cmake
Anura フル機能のゲームエンジンで、Frogatto & Friends の技術基盤です。 カスタム オープンソース make, vcpkg
BOX2D 物理エンジン。 MIT cmake
EntityPlus C++17 エンティティコンポーネントシステム。 BSD-1.0 cmake
EntityX 高速で型安全なC++エンティティコンポーネントシステム。 MIT cmake
EnTT ゲーム開発などのための、モダンC++で書かれた小さなライブラリ。 MIT ヘッダーオンリー; cmake, bazel, conan, vcpkg, brew, cppget

[編集] 総合マルチメディア

ライブラリ 説明 ライセンス 設定
Kigs-framework モジュール式の多目的クロスプラットフォームフレームワーク。 MIT
openFrameworks MIT
SDL Simple DirectMedia Layer: オーディオ、キーボード、マウス、ジョイスティック、グラフィックスハードウェアへの低レベルアクセスを、プラットフォームのグラフィックスAPI(OpenGL/Direct3D/Metal/Vulkan)を介して提供するクロスプラットフォーム(Windows, macOS, Linux, iOS, Androidなど)ライブラリ。 (ドキュメント) (ソース) zlib cmake
SFML Simple and Fast Multimedia Library; マルチプラットフォーム(Windows, Linux, macOS、近々Android & iOSも対応)で、ゲームやマルチメディアアプリケーションの開発を容易にするシンプルなインターフェースを提供します。5つのモジュール(system, window, graphics (OpenGLベース), audio, network)で構成されています。 zlib/png cmake
SIGIL Sound, Input, and Graphics Integration Library; テキスト、図形、入力、オーディオ、2D画像のための、シンプルでクロスプラットフォームなミニマリストライブラリ。サポートプラットフォーム:Windows, Linux, Raspberry Pi。 ライセンス cmake

[編集] 汎用

ライブラリ 説明 ライセンス 設定
Abseil Google発の、C++標準ライブラリを補強するために設計されたオープンソースのC++ライブラリコードコレクション。 (ドキュメント) (ソース) Apache-2.0 cmake
Abstract Intrusive Containers Boost.Intrusiveよりも柔軟ですが、STL互換ではありません。
Au 安全性、アクセシビリティ、パフォーマンスを重視した、依存関係のないC++14互換の物理単位ライブラリ。 (ドキュメント) Apache 2.0 ヘッダーオンリー
BDE Bloomberg L.P. 提供の Bloomberg Development Environment コアライブラリ。 Apache
Better Enums constexprサポート付きのリフレクティブなenum(enumから文字列への変換、イテレーションなど)。 BSD-2 ヘッダーオンリー, cmake, make
bitfield.h ビットフィールド構造体機能。基本言語機能よりもポータブルで柔軟です。
Boost 汎用ライブラリの大規模なコレクション。 BSL-1.0
CAF C++ Actor Framework (CAF) は、軽量で高速なアクター実装、メッセージのパターンマッチング、ネットワーク透過なメッセージングなどを特徴とする、オープンソースのC++11アクターモデル実装です。 BSD
Cinder C++でプロ品質のクリエイティブコーディングを行うための、コミュニティ開発によるフリーでオープンソースなライブラリ。 (ドキュメント) (ソース) 修正BSD cmake
CommonPP プロジェクトからメトリクスを取得することに重点を置いた多目的ライブラリ。 BSD
composite_op.h 基本的なクラスデータメンバのイントロスペクション。扱いにくく、再入可能でないことが多いですが、時々役立ちます。
cpp-mmf POSIXまたはWindows用のメモリマップドファイルをカプセル化するC++98ライブラリ。
cxxomfort C++機能のバックポート(C++11からC++03へ、C++1y提案からC++11/C++03へ)。
Dlib ネットワーク、スレッド、GUI、データ構造、線形代数、機械学習、XML・テキスト解析、数値最適化、ベイジアンネットなど、その他多数のタスクに対応。 Boost
eventpp コールバック、イベントディスパッチャ、イベントキューのためのC++イベントライブラリ。eventppを使えば、シグナル&スロット機構、出版-購読パターン、オブザーバーパターンを簡単に実装できます。 Apache 2.0
fcppt Freundlich's C++ Toolkit (fcppt) は、より良い型を提供し、関数型プログラミングを活用することで、一般的なC++コードを改善することに焦点を当てたライブラリのコレクションです。
Folly Facebookのオープンソースライブラリ。実用性と効率性を念頭に設計された、C++14コンポーネントのクロスプラットフォームライブラリ。 (ドキュメント) Apache-2.0 cmake, vcpkg
GSL C++ Core Guidelines Support Library の実装。C++ Core Guidelines で Bjarne Stroustrup、Herb Sutter らによって推奨されています。 MIT cmake, vcpkg
gsl-lite C++98、C++11以降向けのISO C++ Guideline Support Library (GSL) のバージョン。 MIT ヘッダーオンリー
GUL14 DESY発のC++14用汎用ユーティリティライブラリ:文字列ユーティリティ、統計・数値関数、コンテナ、デバッグ手段など、頻繁に使用されるユーティリティ関数と型。 (ソース) LGPL-2.1 meson, vcpkg
History モダンC++17のUndo/Redoフレームワーク。 Unlicense
hspp HaskellスタイルのプログラミングをC++に持ち込むための実験的なライブラリ。 Apache-2.0 ヘッダーオンリー
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System: C++言語用の汎用プログラミング環境。 プロプライエタリ オープンソース Open Watcom 2.0
JUCE 広範で成熟したクロスプラットフォームC++ツールキット。 GPL
Kangaru C++11およびC++14用の依存性注入コンテナ。 MIT
Kerbal モダンSTLの機能を以前の標準にバックポート。より多くの機能!より多くのconstexpr! LGPL-3.0 ヘッダーオンリー; cmake
libsourcey 高速ネットワークとメディアエンコーディングのためのクロスプラットフォームC++14ライブラリ。HTTP, WebSockets, TURN, STUN, Sympleなど。 LGPL-2.1 cmake
LLNL/units 測定単位、単位間の変換、および単位と測定値の文字列表現を扱うための実行時C++ライブラリ。 BSD 3-Clause "New" または "Revised" cmake
Loki 一般的なデザインパターンやイディオムの柔軟な実装を含む、デザインのC++ライブラリ。 MIT make
match(it) マクロフリーAPIを備えた、C++17用の軽量パターンマッチングライブラリ。 Apache-2.0 ヘッダーオンリー
nonstd-lite 提案中または標準化済みのC++17/20/23ライブラリ型(std::span, std::expected など)のC++98/11実装を含む*-liteリポジトリ(例: span-lite, scope-lite, expected-lite)のリスト。 BSL-1.0 ヘッダーオンリー
nytl 汎用C++17ユーティリティテンプレートライブラリ。 BSL-1.0 ヘッダーオンリー
OnPosix POSIXプラットフォーム上でいくつかの抽象化(スレッド、ネットワーク、ロギング、IPCなど)を提供するC++ライブラリ。
Reason XML, xpath, regex, スレッド, ソケット, HTTP, SQL, 日付時刻, ストリーム, エンコーディング・デコーディング, ファイルシステム, 圧縮 GPL
SaferCPlusPlus ポインタ、intstd::vectorなど、安全でないC++のプリミティブに対する安全な互換代替品。 Boost
Smart Enum あなたのenumにto_stringfrom_stringなどを提供します。 BSL-1.0 cmake
units 依存関係のないc++14上に構築された、コンパイル時の次元解析と単位変換ライブラリ。 MIT ヘッダーオンリー
yaal Yet Another Abstraction Layer - アルゴリズム、コレクション、任意精度計算、汎用DSL文法駆動パーサなど。 CC BY-ND-NC 4.0 cmake
Yato コンテナ、範囲、イテレータ、型特性、その他のツールを実装した、モダンC++(14/17)のクロスプラットフォームでSTLスタイルかつSTL互換のライブラリ。アクターシステム、型安全な設定インターフェースも備えています。 Apache-2.0 cmake
yomm2 C++17用のオープンマルチメソッド。 Boost
zoolib ZooLibは機能豊富なC++ツールキットです。 MIT

[編集] GPS

ライブラリ 説明 ライセンス 設定
gpsd GPSデバイス、AIS無線、その他の航行センサー用のトランスレータおよびレプリケータデーモンなど、GPS対応ツールのオープンソース、クロスプラットフォーム(Linux/Unix/BSD系、Android、OS Xを含む)セット。gpsd は主にCとPythonで書かれていますが、C++ラッパーもあります。gpsd はモバイル組み込みシステムで広く使われています。すべての位置情報対応Androidアプリは間接的に gpsd クライアントです。 (ドキュメント) (ソース) BSD 2条項 scons

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

ライブラリ 説明 ライセンス 設定
Brisk リアクティブ機能を備え、スケーラブルでGPUアクセラレーションによるレンダリングが可能な、クロスプラットフォームのC++20モジュラーGUIフレームワーク。 (ソース), (ドキュメント) GPL2+/プロプライエタリ cmake, vcpkg
Dear ImGui 最小限の依存関係を持つC++用の軽量GUIライブラリ。ポータブルで、レンダリングに依存せず、3Dパイプライン対応アプリでの使用に最適化されています。 MIT vcpkg
FLTK クロスプラットフォーム(Linux, Windows, MacOS)のC++ GUIツールキット。モダンなGUI機能を提供し、OpenGL/GLUT経由で3Dグラフィックスをサポートします。小型でモジュラーに設計されています。UIビルダーが含まれています。 LGPL ver.2
nana モダンC++スタイルによるクロスプラットフォームGUIプログラミング。 (ソース), (ドキュメント) BSL-1.0 cmake, vcpkg
nanogui OpenGL 3.x以降向けの、ミニマリストなクロスプラットフォームウィジェットライブラリ。 (ドキュメント)
OWLNext Windows上で標準C++を使ってGUIアプリケーションを作成するための、OWL のモダンなアップデート。
Slint デスクトップ、組み込み、マイクロコントローラ向けのネイティブユーザーインターフェースを構築するための宣言型GUIツールキット。 (ソース), (ドキュメント) GPL 3、ロイヤリティフリー、または商用 cmake
tiny file dialogs C/C++用のクロスプラットフォームファイルダイアログセット(初期化不要、メインループ不要、6つのモーダル関数呼び出し)。 ヘッダーオンリー
U++ IDEがバンドルされたクロスプラットフォーム(Windows, GNU/Linux, macOS)の高速アプリケーション開発フレームワーク。C++17互換。 (ドキュメント) (ソース) BSD-3-Clause make
WxWidgets ネイティブコントロールを使用して高度なGUIアプリケーションを作成するための、フリーでオープンソースのクロスプラットフォーム(Windows, GNU/Linux, macOS)C++フレームワーク。 (ドキュメント) 修正LGPL cmake, make
xtd Windows, macOS, Linux, iOS, Android上でコンソール、GUI、ユニットテストアプリケーションを作成するためのモダンなC++17/20フレームワーク。 (ソース) (ドキュメント) MIT cmake

CopperSpice
ライブラリ 説明 ライセンス 設定
CopperSpice クロスプラットフォームソフトウェアアプリケーションを開発するために使用されるC++ライブラリのセット。モダンでイディオマティックなC++を使用し、STLとシームレスに統合します。CopperSpiceはQtフレームワークから派生しました。 (ドキュメント) (ソース) LGPL-2.1 cmake
CsSignal スタンドアロンのC++スレッド対応シグナル/スロットライブラリ。 LGPL-2.1 cmake
CsString スタンドアロンのC++ Unicode対応文字列ライブラリ。 LGPL-2.1 cmake
libGuarded 共有データへのアクセスを管理するためのスタンドアロンC++マルチスレッドライブラリ。 LGPL-2.1 cmake

GTK+
ライブラリ 説明 ライセンス 設定
evince
flowcanvas
glibmm
goocanvasmm
gtkmm GTK+ GUIライブラリ用のクロスプラットフォームC++インターフェース。 LGPL
libglademm
libgnomecanvasmm
webkitgtk

Qt
ライブラリ 説明 ライセンス 設定
libdbusmenu-qt DBusを介したメニュー構造の共有と表示を簡単に行えるように設計された小さなライブラリ。QTとGTK+の両方で動作し、メニュー構築を簡単にします。
Qt (ドキュメント) (ソース)
QuickQanava C++14ネットワーク/グラフ可視化ライブラリ / Qtノードエディタ。 BSD 2.0 cmake
qwt5 技術アプリケーション向けQtウィジェット
qwtplot3d

U++
ライブラリ 説明 ライセンス 設定
U++ プログラマの生産性に焦点を当てたC++クロスプラットフォーム高速アプリケーション開発フレームワーク。ライブラリセット(GUI、SQLなど)と統合開発環境を含みます。 (ソース/バイナリ) BSD
upp-components TerminalCtrlMessageCtrlなどのU++用サードパーティパッケージのコレクション。 BSD-3-Clause

[編集] グラフィックス

ライブラリ 説明 ライセンス 設定
bgfx 強力なクロスプラットフォーム(Windows, Mac, Linux, iOS, Android, Web)2D/3Dグラフィックスレンダリングシェーダー対応ライブラリ。レンダリングバックエンド:DX, OpenGL, Metal, WebGL, Vulkanなど。 (ドキュメント) BSD-2 make
cairomm cairoグラフィックスライブラリ用のC++ラッパー。複数の出力デバイス(X Window, Quartz, Win32, イメージバッファ, PostScript, PDF, SVG, OpenGL (実験的))をサポートする2Dライブラリです。 LGPL
dfpsr デスクトップGUIツールキットを備えた2D、3D、アイソメトリックソフトウェアレンダラ。最小限の依存関係で、長期メンテナンス向けに設計されており、3Dアクセラレーションドライバなしで実行できます。 zlib
gegl Generic Graphics Library (GEGL) は、データフローベースの画像処理フレームワークで、浮動小数点処理と非破壊的な画像処理機能を提供します。 (ソース) LGPL
io2d 提案されているISO C++向け2DグラフィックスAPIである P0267 の参照実装。 BSL-1.0 cmake
nanovg UIや可視化のための、OpenGL上のアンチエイリアス2Dベクター描画Cライブラリ。DX11/Metal/bgfxへの移植版もあります。 zlib
nux OpenGLツールキット LGPL v3
pangomm Pangoフォントレイアウトライブラリの公式C++インターフェース。 (ソース) LGPL v2.1 make
Skia C++で書かれたオープンソースの2Dグラフィックスライブラリ。Skia Graphics Engine は、Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter などで使用されています。Skia には複数のバックエンドがあります:ソフトウェアラスタライズ、(PDF) 出力、OpenGL、SVGなど。 New BSD
TXLib TX Libraryは、C++で書かれたWin32用の小さな2Dグラフィックスライブラリです。
ULIS 汎用デジタル画像処理のためのクロスプラットフォームC++14ライブラリ。2Dソフトウェアラスタライザ、無制限の画像フォーマット(u8, u16, u32, float, double)、カスタムビット順メモリレイアウト、すべてのPhotoshopピクセルブレンドモード+11の追加モード、カラーモデル(RGB, HSL, HSV, CMYK, ...)、カラーマネージドパイプライン、色空間サポート(icmプロファイルとデバイス非依存)、マルチスレッドによる最適化アルゴリズム、SIMD拡張(SSE2)による最適化アルゴリズム、最適化のための画像プールとキャッシュ、アニメーション画像シーケンスのメモリ保存。 カスタム(非商用目的のみ無料) cmake

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

ライブラリ 説明 ライセンス 設定
assimp 3Dモデル読み込み BSD-3 cmake, vcpkg
bgfx クロスプラットフォームで、グラフィックスAPIに依存しない、「Bring Your Own Engine/Framework」スタイルのレンダリングライブラリ。 BSD-2 make, vcpkg
Diligent Engine モダンなクロスプラットフォーム低レベル3Dグラフィックスライブラリ。 Apache-2.0 cmake
Epoxy GLEWのモダンな後継ライブラリ。いくつかの種類のGLコンテキスト間の違いを抽象化するため、GLEWよりも簡単に使える場合があります。2015年以降、GTK+プロジェクトで使用されています。 MIT meson, vcpkg
G3D G3D Innovation Engineは、フル機能のオープンソース、クロスプラットフォーム(Windows, Linux, Mac OS)3Dゲームエンジンで、C/C++で書かれています。G3Dは商用ゲーム、研究論文、シミュレータ、大学のコースで使用されています。リアルタイムおよびオフラインのハードウェアレンダリング、レイトレーシング、モデル読み込み、線形代数、GPU上でのGPコンピューティングをサポートします。3DS, OBJ, MP4, PNG, JPG, MD3など多くのフォーマットをサポートし、ネイティブOpenGLのスキン対応GUIを含みます。 (ソース) (ドキュメント) BSD-2
GLAD OpenGL関数を読み込むための、カスタマイズ可能で軽量なライブラリ。
GLEW OpenGL関数ローダー (ソース) EXTGL/BSD/MIT make, vcpkg
GLFW OpenGLウィンドウマネージャー (ソース) (ドキュメント) zlib/libpng cmake, vcpkg
GLM OpenGL Mathematics (GLM) は、GLSL仕様に基づくグラフィックスソフトウェア用のC++数学ライブラリです。 The Happy Bunny /
MIT
ヘッダーオンリー; cmake, vcpkg
Godot フル機能のマルチプラットフォーム2Dおよび3Dゲームエンジン。C++17で書かれ、自身で書かれたGUIエディタとPython風のスクリプト言語を備えています。 MIT scons
hlsl++ HLSL構文を使用したレンダリング用のC++数学ライブラリ。SSEとNEONをサポートします。 MIT ヘッダーオンリー
Horde3D 小規模なオープンソース3Dレンダリングエンジン。次世代ゲームに期待される見事な視覚効果を提供しつつ、軽量で可能な限りクリーンなグラフィックスエンジンを作成する目的で書かれています。 EPL
Irrlicht Irrlicht EngineはC++で書かれたオープンソースのリアルタイム3Dエンジンです。クロスプラットフォームで、D3D、OpenGL、および独自のソフトウェアレンダラを使用します。 zlib/libpng make, vcpkg
klein グラフィックスとアニメーションのための、C++11/14/17 SSE最適化された射影幾何代数ライブラリ。 MIT cmake, vcpkg
Magnum ゲームやデータ可視化のための、軽量でモジュラーなC++11/C++14グラフィックスミドルウェア。 (ソース) カスタム cmake
O3DE Open-source 3D Engine(旧Amazon Lumberyard)は、AAAゲーム、映画品質の3Dワールド、高忠実度シミュレーションを構築するためのC++マルチプラットフォーム3Dエンジンです。物理シミュレーション、スクリプトエンジン、ネットワーク、その他を含みます。 (ドキュメント) Apache 2.0 cmake
Ogre3D OGRE (Object-Oriented Graphics Rendering Engine) は、科学的可視化、ゲーム、シミュレーション、仮想現実、その他のグラフィックプロジェクトに適した多目的可視化ライブラリです。マルチプラットフォームで非常に堅牢であり、優れたドキュメントが付属しています。 MIT cmake, vcpkg
Open CASCADE 3D CAD/CAM/CAEアプリケーション用SDK (ソース) LGPL-2.1 cmake
OpenGL 3Dアプリケーションを開発するための3D言語、グラフィックス、SDK。 Khronos (MIT)
OpenSceneGraph OpenSceneGraphは、視覚シミュレーション、ゲーム、仮想現実、科学的可視化、モデリングなどの分野のアプリケーション開発者によって使用される、オープンソースの高性能3Dグラフィックスツールキットです。 (ソース) (ドキュメント) カスタム,
GNU LGPL
cmake, vcpkg
Visionaray C++レイトレーシングテンプレートライブラリ。 MIT cmake
VTK Visualization Toolkit (VTK) は、科学データを操作・表示するためのオープンソースソフトウェアです。最先端の3Dレンダリングツール、3Dインタラクション用のウィジェットスイート、広範な2Dプロット機能を備えています。 BSD-3 cmake, vcpkg
Vulkan 前世代のグラフィックスAPIに見られた多くの抽象化を取り除いた低レベルAPI。最大のパフォーマンスを発揮するのに最適ですが、開発者により多くの複雑さを公開するという副作用があります。幸いなことに、このハードルを乗り越え、迅速に生産性を上げるのに役立つ優れたチュートリアルがいくつか存在します。 Khronos (MIT) make, vcpkg

[編集] 画像

ライブラリ 説明 ライセンス 設定
Adobe/boost GIL 2D画像を操作するアルゴリズムに焦点を当てた、高レベルの汎用ライブラリ。I/Oオプションは非常に限定的です。 BSL-1.0
agge Anti-Grain Evolution。C++で速度と品質を追求した2Dグラフィックスエンジン。 MIT cmake
FreeImage PNG, BMP, JPEG, TIFFなどの一般的なグラフィックス画像フォーマットをサポートしたい開発者向けのオープンソースライブラリプロジェクト。 GPLv2, GPLv3, FIPL
FreeImageRe オープンソースライブラリFreeImage v3.18からのフォーク。画像コーデックの更新をサポートし、快適な使用のために調整されています。すべてのオリジナルフォーマットとプラグインは維持されています。 GPLv2, GPLv3, FIPL cmake
GraphicsMagick 88以上の主要なフォーマットで画像を読み込み、書き込み、操作します。2002年にImageMagickからフォークしました。 Copyright Mercurial
SAIL 静止画、アニメーション、複数ページの画像をメタデータとICCプロファイルとともに読み書きします。変換機能も備えています。シンプルさと速度を目標としています。 MIT cmake
stb 画像ローダー/ライター/リサイザー、フォントテキストラスタライザー、型安全なコンテナ、ogg vorbisデコーダ、リアルタイムDXTコンプレッサー、パーリンノイズ生成器、小規模DSL用レキサー、高速sprintfなどを特徴とする、ゲーム開発指向のC/C++ライブラリセット。 MIT, カスタム ヘッダーオンリー

フォーマット
ライブラリ 説明 ライセンス 設定
djvulibre
imagemagick
Kaitai Struct C++ランタイム
libraw
openexr
poppler
qimageblitz
SVG++

プロット
ライブラリ 説明 ライセンス 設定
Matplot++ データ可視化のためのgnuplotベースのC++グラフィックスライブラリ。Matplot++ は、OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3などのライブラリを活用できます。 (ドキュメント) MIT cmake
plotutils GNU plotutils パッケージには、多くのファイル形式(ベクターとビットマップの両方)で2DベクターグラフィックスをエクスポートするためのC/C++ライブラリである libplot が含まれています。libplot は2Dベクターグラフィックスをアニメーション化でき、ファイルエクスポートとグラフィックスアニメーションにPostscript風のAPIを使用します。 GPL
sciplot gnuplot を利用したモダンC++科学プロットライブラリ。PDF, SVG, PNG, EPSなどへのエクスポートが可能です。 MIT ヘッダーオンリー; cmake, vcpkg

[編集] 画像処理

ライブラリ 説明 ライセンス 設定
dlib
Halide 画像とテンソルの高性能処理のためのC++組み込みDSL。 MIT cmake, vcpkg
ITK - Insight Toolkit ITKはオープンソースのクロスプラットフォームライブラリで、開発者に画像解析のための広範なソフトウェアツールスイートを提供します。エクストリームプログラミング手法を通じて開発されたITKは、2次元、3次元、またはそれ以上の次元の科学画像の処理、セグメンテーション、位置合わせのための、実績のある空間指向アーキテクチャ上に構築されています。 Apache 2.0 cmake
opencv
OTB

[編集] 国際化

ライブラリ 説明 ライセンス 設定
gettext GNU国際化ライブラリ。 GPL make
ICU International Components for Unicode は、ソフトウェアアプリケーションにUnicodeと国際化対応を提供する、成熟し広く使用されているC/C++ライブラリのセットです。 (ソース) icu4c/LICENSE make
spirit-po poファイルを解析し、GNU libintlに似たインターフェースを提供する小さなライブラリ。boost::spiritベース。 BSL-1.0 ヘッダーオンリー
uni-algo C/C++のためのUnicodeアルゴリズム実装。 MIT/Unlicense cmake, conan, vcpkg

[編集] ロギング

ライブラリ 説明 ライセンス 設定
Backward 特にクラッシュ時に、色とソースコードのスニペット付きで、Python風の見やすいスタックトレースを出力します。 MIT ヘッダーオンリー; cmake, conan
Boost.Log 使いやすく、拡張可能で、高性能なクロスプラットフォームロギングライブラリ。 BSL-1.0
clutchlog サービスイベントの保存ではなく、多目的なデバッグを目的としたシングルヘッダーのロギングシステム。 BSD cmake
glog C++スタイルのストリームに基づく、C++98用のGoogleロギングライブラリ。 ライセンス bazel, cmake, vcpkg
Log4cplus クロスプラットフォーム、C++17のロギングAPI(Javaのlog4j APIをモデルにしています)。スレッドセーフで、柔軟かつ任意の粒度でログ管理と設定を制御できます。 BSD (2条項) または Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp ファイル、syslog、IDSA、その他の出力先への柔軟なロギングのためのC++クラスライブラリ。 LGPL
log4cxx Apache log4cxxは、Apache log4jをモデルにしたC++用ロギングフレームワークです。 (ソース) Apache cmake
lwlog 非常に高速な同期および非同期C++17ロギングライブラリ。 MIT cmake
Pantheios 型安全性、効率性、汎用性、拡張性を兼ね備えた診断ロギングAPIライブラリ。 BSDスタイル
plog 1000行未満のコードで書かれた、ポータブルでシンプルなC++用ログライブラリ。 MPL-2.0
Quill クロスプラットフォーム、C++14非同期低遅延ロギングライブラリ。 MIT cmake
spdlog 超高速C++ロギングライブラリ。 MIT ヘッダーオンリー; cmake, conan

[編集] エラー処理

ライブラリ 説明 ライセンス 設定
Boost.LEAF C++11用の軽量なエラー処理ライブラリ。シングルヘッダー形式、依存関係なし、動的メモリ確保なし、例外処理の有無にかかわらず使用可能、マルチスレッド対応。 (ソース) BSL-1.0 ヘッダーオンリー, cmake

[編集] 数学

ライブラリ 説明 ライセンス 設定
alglib ALGLIBはクロスプラットフォーム(Windows/POSIX/Linux)の数値解析およびデータ処理ライブラリです。ALGLIBの機能には、データ分析、最適化と非線形ソルバー、補間、線形代数と線形ソルバー、FFTなど多くが含まれます。 無料(GPL/個人/学術)および商用
ArrayFire クロスプラットフォーム(Windows/OSX/Linux)の汎用HPC(CPU/GPU/OpenCL/CUDA/GPGPU)ライブラリで、並列コンピューティング用。ArrayFireの対象分野は、ベクトルアルゴリズム、画像処理、コンピュータビジョン、信号処理、線形代数、統計などです。 (ソース) カスタム
Boost.Math 数学分野のいくつかの貢献を含みます:浮動小数点ユーティリティ、数学定数、統計分布と関数、統計、ベクトル汎関数 - ノルム、特殊関数、求根と最小化アルゴリズム、多項式と有理関数、補間、求積と微分、フィルター、複素数関数、四元数、八元数、整数ユーティリティ(最大公約数と最小公倍数)、級数、有理数と連分数。 BSL-1.0
Boost.Random 一様分布などの有用な特性を持つ乱数を生成するためのさまざまな生成器と分布を提供します。 BSL-1.0
Boost.SafeNumerics C++14、保証された正しい整数演算、組み込み整数型のドロップイン置換。 BSL-1.0 ヘッダーオンリー
cpp-measures 物理的な測定値を扱うためのC++11ライブラリ。 MPL-2.0 ヘッダーオンリー
G+Smo アイソジオメトリック解析のためのクロスプラットフォームライブラリ (ドキュメント) MPL-2.0 cmake
GNU MP bignum C++インターフェース オーバーロードされた関数と演算子を提供するC++の便利なクラスインターフェース。GMP は、符号付き整数、有理数、浮動小数点数を操作する、任意精度演算のための無料のCライブラリです。 GNU LGPL v3 および GNU GPL v2
libmpdec++ 正しく丸められた任意精度十進浮動小数点演算のためのクロスプラットフォームCライブラリ(C++ラッパー付き)。 BSD-2-Clause make, nmake
NTL 数論を行うためのライブラリ。NTLは、符号付き任意長整数、および整数上および有限体上のベクトル、行列、多項式を操作するためのデータ構造とアルゴリズムを提供する、高性能でポータブルなC++ライブラリです。 LGPLv2.1+
PCGrand PCGは、シンプルで高速、省スペースで統計的に優れた乱数生成アルゴリズムのファミリーです。多くの汎用RNGとは異なり、予測が困難でもあります。 Apache
stats++ 高度で包括的な統計ソフトウェア:データ収集と前処理、統計、機械学習、最適化。オープンなC++ソースコード付き。
StatsLib 統計分布関数のテンプレートライブラリ。 Apache-2.0 ヘッダーオンリー

オートマトン理論
ライブラリ 説明 ライセンス 設定
yasmine C++11 UMLステートマシンフレームワーク (ドキュメント) (ソース) ライセンス

数値のためのクラスライブラリ
ライブラリ 説明 ライセンス 設定
BigNumber 任意長の整数を作成し計算するためのC++クラス。 Apache 2.0 cmake
Boost.Multiprecision Multiprecisionライブラリは、C++の通常の基本(組み込み)型よりも範囲と精度が大きい、C++の整数、有理数、浮動小数点、複素数型を提供します。 BSL-1.0
cln CLNは、あらゆる種類の数値を任意精度で効率的に計算するためのライブラリです。 GPL
CNL Compositional Numeric Library - 固定小数点数型 BSL-1.0 cmake, conan
fpm 標準ライブラリの浮動小数点機能を整数上で提供するC++11の数点学ライブラリ。ターゲットプラットフォームにFPUがない場合や、決定論的な計算が必要な場合に便利です。 MIT ヘッダーオンリー; cmake
Universal Numbers ネイティブな算術型(整数/10進数/固定小数点/浮動小数点/ポジット/対数/区間)のプラグイン置換を提供するC++17/20テンプレートライブラリ。 MIT cmake, vcpkg, conan

計算幾何学
ライブラリ 説明 ライセンス 設定
Boost.Geometry Boost.Geometry(別名 Generic Geometry Library, GGL)は、幾何学問題を解決するための概念、プリミティブ、アルゴリズムを定義します。Boost.Geometryは、概念、メタ関数、タグディスパッチングに基づいた、次元非依存、座標系非依存、スケーラブルなカーネルを含みます。サポートされるアルゴリズムは、面積、長さ、周長、重心、凸包、交差(クリッピング)、内包(点の内外判定)、距離、エンベロープ(バウンディングボックス)、簡略化、変換など多数です。このライブラリは高精度算術数をサポートします。 BSL-1.0
CGAL 計算幾何学アルゴリズムライブラリ GPL-3.0 または商用 cmake
PCL 点群ライブラリ
pmp-library ポリゴンメッシュ処理ライブラリ
Wykobi 計算幾何学ライブラリ

グラフ理論
ライブラリ 説明 ライセンス 設定
Boost.Graph BSL-1.0
CXXGraph グラフの表現、操作、分割、アルゴリズムのためのC++17ライブラリ AGPL-3.0 ヘッダーオンリー; cmake
GTpo QuickQanava プロジェクトの一部である、有向グラフモデリングのためのC++14ライブラリ BSD qmake, cmake
LEMON Library for Efficient Modeling and Optimization in Networksは、組み合わせ最適化、グラフ、ネットワークに焦点を当てた共通のデータ構造とアルゴリズムを実装しています。(Doc) ライセンス
NGraph C++によるシンプルな(ネットワーク)グラフライブラリ
OGDF Open Graph algorithms and Data structures Framework - グラフアルゴリズム、特に自動グラフ描画のためのC++ライブラリです。 GPL v2 または v3

線形代数
ライブラリ 説明 ライセンス 設定
Armadillo 線形代数と科学計算のためのC++テンプレートライブラリで、OpenBLAS、Intel MKL、LAPACK、ATLAS、ARPACK、SuperLU、FFTWのラッパーを備えています。機械学習、パターン認識、DSP、バイオインフォマティクス、統計、金融などに有用です。 Apache 2.0
Blasw C++11によるBLASおよびLAPACKの一部ラッパー BSD-3-Clause ヘッダーオンリー; cmake
Blaze
Blitz++ 高性能な密な配列とベクトル、乱数生成器、小さなベクトルを提供するC++テンプレートクラスライブラリです。 GPL-3.0, LGPL-3.0, カスタム cmake
Boost.uBLAS 密行列、パック行列、疎行列に対してBLASレベル1、2、3の機能を提供するC++テンプレートクラスライブラリ。式テンプレートを使用しています。 BSL-1.0
C++ Matrix 式テンプレートの算術演算子を備えた、高性能かつ正確な(例:エッジケース)行列演算ライブラリ BSD-3-Clause cmake, make
DecompLib ベクトルを正定値重み付き基底ベクトルの集合に分解するためのC++11ライブラリ。 MIT ヘッダーオンリー
Dlib - 線形代数ツール
Eigen 線形代数のためのC++テンプレートライブラリ:行列、ベクトル、数値ソルバー、および関連アルゴリズム。 MPL2 cmake, conan
ETL
IT++
Matrix LinuxとWindowsで利用可能な、C++用の使いやすい科学計算ライブラリ。 MIT cmake
NumCpp PythonのNumPyを実装したC++テンプレートライブラリ MIT ヘッダーオンリー; cmake, vcpkg, conan
PETSc 偏微分方程式でモデル化された科学アプリケーションの並列解法のためのデータ構造とルーチンのスイート。MPI、CUDAまたはOpenCLによるGPU、およびハイブリッドMPI-GPUをサポートします。
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACKは、大規模な固有値問題のためのオープンソースC++ライブラリで、Eigen線形代数ライブラリ(こちらもオープンソースでヘッダーオンリー)の上に構築されています。(ソース) MPL-2.0 ヘッダーオンリー; cmake, vcpkg
Tense 高速なC++17式テンプレートの行列・テンソルライブラリ BSD-3-Clause ヘッダーオンリー; cmake
xtensor 多次元配列式を用いた数値解析を目的としたC++ライブラリ。 BSD

機械学習
ライブラリ 説明 ライセンス 設定
Dlib 機械学習ツール
FANN Fast Artificial Neural Network ライブラリ
gaenari C++17ベースのインクリメンタル決定木 Apache-2.0 cmake
liblinear
libtorch 人気のPythonライブラリPyTorchのC++フロントエンド(バックエンドはC++で書かれています) BSDスタイル cmake
MLPACK 機械学習パッケージ
Shogun 大規模機械学習ツールボックス
stats++
tensorflow 誰でも使えるオープンソースの機械学習フレームワーク。安定したC++ APIを提供し、主にC++で書かれています。 Apache-2.0 bazel

数値計算
ライブラリ 説明 ライセンス 設定
LibBF Bellardによって開発された任意精度数値計算ライブラリで、πを数十億ビットまで計算するサンプルプログラムが含まれています。 MIT

最適化
ライブラリ 説明 ライセンス 設定
ceres-solver 大規模で複雑な最適化問題をモデリングし、解決するためのオープンソースC++ライブラリ。機能豊富で成熟しており、高性能で、2010年からGoogleで本番運用されています。 Apache cmake, conan
OptimLib 非線形関数のための数値最適化手法のC++11ライブラリ。

数式処理
ライブラリ 説明 ライセンス 設定
CasADi 非線形最適化とアルゴリズム的微分のための記号的フレームワーク。記号式のC++コード生成と、コンパイルされた生成コードの動的接続をサポートします。 LGPLv3.0 cmake
ExprTk C++ Mathematical Expression Toolkit Library (ExprTk) は、使いやすく、統合が容易で、非常に効率的な実行時数式パーサーおよび評価エンジンです。ExprTkは、関数、論理、ベクトル処理のセマンティクスの多くの形式をサポートし、非常に簡単に拡張できます。 MIT ヘッダーオンリー
GiNaC 記号操作と、より確立されたコンピュータサイエンスの分野(計算集約的な数値アプリケーション、グラフィカルインターフェースなど)を一つの屋根の下に埋め込む統合システムを作成するためのライブラリ。 GPLv3
mathiu.cpp C++17によるシンプルなコンピュータ代数システム Apache-2.0 cmake
SEMT コンパイル時の記号微分 ライセンス make
SymbolicC++ 汎用コンピュータ代数システム GPLv2 autoconf
SymCC コンパイル時にプログラムにシンボリック実行を埋め込むコンパイララッパーと、関連する実行時サポートライブラリ。本質的に、コンパイラはプログラム内の各値に対してシンボリック式を計算するコードを挿入します。実際の計算は、実行時にサポートライブラリへの呼び出しを通じて行われます。 GPLv3 cmake
SymEngine スタンドアロンで高速なC++記号操作ライブラリ。 MIT cmake
ViennaMath 実行時およびコンパイル時に数式を便利にインスタンス化、操作、評価できる記号数学ライブラリ。 MIT cmake

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

ライブラリ 説明 ライセンス 設定
Boost.CallableTraits すべての「呼び出し可能」型をコンパイル時に検査・操作するためのC++11/17ライブラリ。Boost.FunctionTypesの後継。 BSL-1.0 ヘッダーオンリー
Boost.Hana 型と値の両方を扱う新しいメタプログラミングライブラリ BSL-1.0
Boost.Metaparse コンパイル時文字列から型、値、メタ関数を生成するコンパイル時パーサーライブラリ BSL-1.0
Boost.Mp11 型を含むデータ構造をコンパイル時に操作するためのC++11メタプログラミングライブラリ。 BSL-1.0 ヘッダーオンリー
Boost.MPL C++03を対象とした、オリジナルのメタプログラミングライブラリ。低速。 BSL-1.0
Boost.PFR (マクロなしの)基本的なリフレクションのためのC++14ライブラリ:インデックスによるユーザー定義型のメンバーへのアクセス、IOストリーミング。 BSL-1.0 ヘッダーオンリー
Boost.Proto 式テンプレートベースのEDSLを構築するためのライブラリ BSL-1.0
Brigand 先行評価(eager)メタ関数を使用し、最高のパフォーマンスに最適化されています。
CoMeta 軽量なC++14メタプログラミングライブラリ ヘッダーオンリー
Meta 先行評価(eager)メタ関数を使用し、パフォーマンスにおいてmetalとbrigandの中間的な位置づけです。
Metal 先行評価(eager)メタ関数を使用し、100% SFINAEフレンドリーです。
refl-cpp オーバーロード、テンプレート、属性、プロキシをサポートする、C++向けのモダンなコンパイル時リフレクションライブラリ
Refureku C++17の実行時リフレクションおよびコード生成ライブラリ MIT cmake
visit_struct C++11/14用の構造体ビジターを提供する、小規模なリフレクションライブラリ。自己完結型で、数え方にもよりますが200〜400行のコードです。

[編集] PDF

ライブラリ 説明 ライセンス 設定
HARU PDFファイルを生成するための、無料、クロスプラットフォーム、オープンソースのライブラリ。 (Doc) (Src) Zlib cmake
JagPDF PDFを生成するための、無料のオープンソースライブラリ (Doc) MIT
PoDoFo PDFを扱うための、無料でポータブルなC++17ライブラリ LGPL-2.0 cmake, conan, vcpkg
PDF-Writer PDFファイルの作成、変更、解析を行うための高性能C++ライブラリ Apache-2.0 cmake, conan, vcpkg

[編集] 物理学とシミュレーション

ライブラリ 説明 ライセンス 設定
Bullet ゲーム、視覚効果、ロボティクス、強化学習のための物理シミュレーション
HELICS 異なる種類のシミュレータ間で時間を同期し、データを交換するための協調シミュレーションフレームワーク BSD 3-Clause "New" または "Revised" cmake
ProjectCHRONO オープンソースのマルチフィジックスシミュレーションエンジン
ReactPhysics3D 3DシミュレーションとゲームのためのC++物理エンジンライブラリ

[編集] ロボティクス

知覚
ライブラリ 説明 ライセンス 設定
GTSAM センサーフュージョン, SLAM, SFM, VO, コンピュータビジョン (ソース) BSD cmake
opencv コンピュータビジョンと知覚、キャリブレーション、特徴マッチング (ソース) (Doc) BSD, Apache 2 cmake

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

ライブラリ 説明 ライセンス 設定
Boost.Serialization BSL-1.0
C++ XML objects
cereal C++11のシリアライゼーションライブラリ BSD
cista シンプルで高性能なゼロコピーのC++シリアライゼーション&リフレクションライブラリ。 (ソース) MIT cmake
cppcodec 一貫性のある柔軟なAPIでbase64、base32、hexをエンコード/デコードするためのC++11ライブラリ MIT ヘッダーオンリー
GPDS オブジェクトを XML にシリアライズしたり、XML からデシリアライズしたりするための汎用データシリアライザー。内部で TinyXML を使用。
gSOAP 正確なXMLシリアライゼーション
iguana コンパイル時リフレクションに基づいた、C++17で開発されたモダンで汎用的かつ使いやすいシリアライゼーションエンジン。サポート形式:JSON、XML、ユーザー定義。 Apache-2.0 cmake
jios JSONシリアライゼーション MIT cmake
protobuf Protocol Buffers(別名 protobuf)は、構造化データをシリアライズするためのGoogleの言語中立、プラットフォーム中立、拡張可能なメカニズムで、.protoファイルコンパイラを含みます。 (Doc) カスタム bazel, cmake
rpnx-serial std::mapstd::vectorなどの型をシリアライズ(デシリアライズ)できるライブラリ。
Serio 高速で軽量なC++シリアライゼーションライブラリ BSD-3-Clause ヘッダーオンリー; cmake
ThorsSerializer JSON用のC++シリアライゼーションライブラリ MIT make
yaml-cpp
YAS Yet Another Serializationは、サードパーティライブラリに依存しないC++11ライブラリです。アーカイブはバイナリ、テキスト、JSONに対応しています。 Boost ヘッダーオンリー

バイナリシリアライズ
ライブラリ 説明 ライセンス 設定
binn コンパクト、高速、かつ使いやすいように設計されたバイナリシリアライゼーションライブラリで、それ自体が同名のフォーマットの実装です。
blobify 構造体定義のみからシリアライズされたレイアウトを推論するC++17ライブラリ。 Boost ヘッダーオンリー; cmake
bson-cxx BSONフォーマットのC++11実装。 scons
fast_ber BER/DERエンコーディング規則を使用したC++11の高性能シリアライゼーション。エンコーディングレイアウトはASN.1スキーマによって定義されます。
UBjsonCpp C++14に基づいた高性能UBJson読み書きライブラリ

[編集] ソート

ライブラリ 説明 ライセンス 設定
Cpp-sort 様々なソートアルゴリズムをシンプルなパッケージにまとめたコレクション。 MIT
Indiesort std::sort(および他のランダムアクセスソート関数)を非ランダムアクセスコンテナで使用できるようにする関数テンプレート。また、ランダムアクセスコンテナや配列内の大きなオブジェクトのソートパフォーマンスを向上させます。 zlib
Timsort 逆順または半ソートされたデータに対して、std::sortを含むクイックソートベースのアルゴリズムを上回るパフォーマンスを発揮する安定ソート関数テンプレート。 MIT

[編集] システム

ライブラリ 説明 ライセンス 設定
Infoware コマンドラインを使わずにシステムおよびハードウェア情報を取得するためのC++ライブラリ。 Creative Commons v1.0 cmake

[編集] ターミナル

ライブラリ 説明 ライセンス 設定
cli モダンC++でのインタラクティブなコマンドラインインターフェースのためのクロスプラットフォームライブラリ。 BSL-1.0 ヘッダーオンリー; cmake, make, nmake, vcpkg
cwidget GTK+やQtをモデルにしたC++用の高レベルなターミナルインターフェースライブラリですが、表示レイヤーとしてcursesを使用します。 GPL v2.0 make
replxx UTF-8、シンタックスハイライト、ヒントをサポートするreadlineとlibeditの代替ライブラリ。

[編集] テスト

ライブラリ 説明 ライセンス 設定
bandit C++11のための人間フレンドリーな単体テスト。(ソース) MIT cmake
Boost.Test C++03/11/14/17対応の単体テストライブラリで、幅広いプラットフォームとコンパイラで利用可能です。 (ソース) BSL-1.0 cmake, b2
Catch2 C++14、C++17以降を使用した、単体テスト、TDD、BDDのためのモダンでC++ネイティブなテストフレームワーク Boost cmake
cppunit 有名な単体テスト用フレームワークJUnitのC++ポート LGPL-2.1 make
CUTE C++ Unit Testing Easier(登録に静的初期化に依存しない)、TDDのためにCevelopに統合されています。 MIT ヘッダーオンリー
doctest 単体テストとTDDのための、最も軽量で機能豊富なC++シングルヘッダーテストフレームワーク MIT ヘッダーオンリー; cmake
ELFspy フェイクとスパイによる分離テスト - Linuxのみ GPL-2.0 make
faker-cxx テストデータ生成のためのモダンなC++20 Fakerライブラリ。 MIT cmake
Google Test Google Testing and Mocking Framework。 (ソース) BSD 3-Clause "New" または "Revised" bazel, cmake
lest 単体テスト、TDD、BDDのためのC++11ネイティブの小さなフレームワーク(C++98版も含む)。 Boost ヘッダーオンリー; cmake
liblittletest ポータブルなテストフレームワーク LGPL-2.1 ヘッダーオンリー
snitch 軽量なC++20テストフレームワーク。 Boost cmake
tunit Windows、macOS、Linux、iOS、Androidで動作するモダンなC++17単体テストライブラリ。公式サイト MIT cmake

[編集] テキスト

コーディング
ライブラリ 説明 ライセンス 設定
strsuite 異なるエンコーディングの文字列を管理するためのC++20ライブラリ LGPL3.0 cmake
uchardet 文字列のエンコーディングを推測します。基本的にはPythonのuchardet関数と同じです。 MOZILLA PUBLIC LICENSE v1.1 cmake
win-iconv LinuxとMac用の文字セットエンコーディング変換ライブラリ。Windows版のiconvの実装は、Win32文字セット変換APIに基づいています。 パブリックドメイン cmake

差分/パッチ
ライブラリ 説明 ライセンス 設定
diff_match_patch 文字列のパッチを作成し適用します(Qtが必要) Apache 2.0 qmake

フォーマット
ライブラリ 説明 ライセンス 設定
coformat テキストのカラー化とスタイリングを可能にする、std::formatのコンパニオンC++ライブラリ。 パブリックドメイン ヘッダーオンリー
fmt CのstdioやC++のiostreamに代わる、高速で安全な代替手段を提供するオープンソースのフォーマットライブラリ。C++20のstd::formatファミリーのプロトタイプ。 ライセンス cmake, conan

解析
ライブラリ 説明 ライセンス 設定
BNFlite 軽量な文法パーサーライブラリ MIT ヘッダーオンリー
Boost.Spirit 式テンプレートとテンプレートメタプログラミングを用いたDomain Specific Embedded Languages(DSEL)として実装された、解析および出力生成のためのC++17ライブラリ群。Spiritライブラリは、対象の文法をC++のみで記述することを可能にします。 (ソース) (Doc) BSL-1.0 cmake
CTRE 高速なCompile-Time Regular Expressionsで、コンパイル時または実行時のマッチング/検索/キャプチャをサポートします。 Apache-2.0 ヘッダーオンリー, cmake, vcpkg
lexy 便利なC++ DSLでパーサーを指定することで、手書きパーサーの柔軟性と制御をすべて備えたパーサーを作成できるC++17パーサーコンビネーターライブラリ。UTF-8/16/32をサポート。 (Doc) BSL-1.0 cmake
PEGTL Parsing Expression Grammar Template Libraryは、Parsing Expression Grammar (PEG) に従ってパーサーを作成するための、依存関係ゼロのC++17ヘッダーオンリーのパーサーコンビネーターライブラリです。 Boost ヘッダーオンリー

検索
ライブラリ 説明 ライセンス 設定
clucene CLuceneは、クロスプラットフォーム、フル機能、オープンソースのインデックス作成および検索エンジン/APIです。 (ソース) (Doc) LGPL v2.1 cmake
Step20 接尾辞木を構築するためのウッコネンのオンラインアルゴリズム、接尾辞配列を構築するためのマンバーのアルゴリズム。 MIT ヘッダーオンリー
xapian インデックス作成機能を備えたオープンソース検索エンジン (ソース) (Doc) GPL v2+ make

テンプレートエンジン
ライブラリ 説明 ライセンス 設定
inja C++17用のテンプレートエンジン。 MIT ヘッダーオンリー; cmake, conan, vcpkg, など
Jinja2C++ Jinja2テンプレートのC++14/17実装 MPL-2.0 cmake, conan

[編集] バージョン管理

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

[編集] ビデオ

ライブラリ 説明 ライセンス 設定
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 H.264のエンコーディングとデコーディングをサポートする、マルチプラットフォーム、マルチアーキテクチャのオープンソースライブラリ (ソース) BSD-2 Clause meson

[編集] Web

ライブラリ 説明 ライセンス 設定
Chromium Embedded
cpp-jwt
Drogon Linux/macOS/Unix/Windowsで動作する、C++14/17ベースのHTTP Webアプリケーションフレームワーク。
ffead-cpp C++でのframework for Enterprise Application Development。HTTP1/HTTP2/HTTP3に準拠し、複数のサーバーバックエンドをサポートします。 Apache 2.0 cmake
libhttpserver 高性能なRESTful Webサーバーを構築するためのC++ライブラリ。libmicrohttpd上に構築されており、開発者がC++でHTTPサービスを作成するためのシンプルなAPIを提供します。 LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden HTML/CSS/JS GUIを持つクロスプラットフォームC++デスクトップアプリを構築するためのSDK。 (Doc) (ソース) ライセンス npm
oatpp IoTおよび高性能Webサービスのための、強力でポータブル、軽量、かつ依存関係ゼロのWebフレームワーク。
QtWebApp Javaサーブレットに触発されたC++のHTTP(s)サーバー
Tufão Qt上に構築されたC++11用の非同期Webフレームワーク (Doc) LGPL-2.1, GPL-2.0 cmake
uri-template C++用のURIテンプレートの展開と逆マッチング Apache 2.0 cmake
userver C++非同期フレームワーク Apache 2.0 cmake
Wt Webアプリのためのウィジェットとビルディングブロック、組み込みセキュリティ、PDFレンダリング、2Dおよび3Dペインティング、ORM、チャート作成、認証フレームワーク。 (Doc) (ソース) GNU GPL または 商用

[編集] 関連項目

C のドキュメント非ANSI/ISOライブラリ

[編集] 外部リンク

1.  C++単体テストフレームワークのリスト — Wikipedia
2.  (素晴らしい)ヘッダーオンリーC++ライブラリの厳選リスト — GitHub
3.  (素晴らしい)C++とCライブラリの厳選リスト — GitHub
4.  Boost C++ライブラリ — Boost.org
5.  C++オープンソースゲームとフレームワークの膨大なリスト — GitHub.io
English 日本語 中文(简体) 中文(繁體)