オープンソースの C++ のライブラリの一覧
提供: cppreference.com
このページの目的は、特定の機能を持った実装が必要になった場合に、無駄な時間をかけて 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++ 用の現代的なコンパイル時リフレクションライブラリ |
| ライブラリ | 説明 | ライセンス | コンフィグレーション |
|---|---|---|---|
| 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言語リファレンス
|