Awesome C++
C++を扱う資料や関連プロジェクトをまとめたAwesomeリストです。 上流ではアーカイブ済み、または更新終了と案内されています。
標準ライブラリ
C++ 標準ライブラリ - STLコンテナ、STLアルゴリズム、STL関数オブジェクトなど
- C++ Standard Library - C++ ISO標準自体に含まれる、コア言語で書かれたクラスと関数のコレクション
- Standard Template Library - 標準テンプレートライブラリ(STL)
- C POSIX library - POSIXシステム向けC標準ライブラリの仕様
- ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - C++標準委員会。 website
- The GNU C Library - このマニュアルの目的は、GNU Cライブラリの機能の使い方を説明することである
フレームワーク
C++ の汎用フレームワークおよびライブラリ
- abseil-cpp - Abseil C++ Common Libraries. [Apache2]
- Apache C++ Standard Library - STDCXX、アルゴリズム、コンテナ、イテレータ、その他基本的なコンポーネントのコレクション. [retired] [Apache2]
- APR - Apache Portable Runtime. また一つのプラットフォームを越えたユーティリティ関数を備えたライブラリ. [Apache2]
- ASL - Adobe Source Librariesは、同行レビューと移植性を備えたC++ソースライブラリを提供する. [MIT]
- AUI - C++20向けの宣言型UIツールキット. [MPL2]
- Boost :zap: - C++の汎用ライブラリの大きなコレクション。[Boost] website
- BDE - Bloomberg LabsのBDE開発環境. [Apache2]
- C++ Workflow :zap: - C++の並列計算および非同期ネットワークエンジン。[Apache2]
- CGraph - C++に基づく、第三者なしのクロスプラットフォームDAGフレームワーク. [MIT]
- Cinder - プロフェッショナルなクリエイティブコーディングに用いられる、コミュニティ開発による無料かつオープンソースのライブラリ. [BSD]
- Coost - C++11における小さなboostライブラリ. [MIT]
- Cxxomfort - C++03以降に必要な機能を、より新しいC++標準からバックポートした、小さなヘッダーのみのライブラリ. [MIT]
- Dlib :zap: - C++で実世界の機械学習およびデータ分析アプリケーションを作成するためのツールキット。[Boost] website
- EASTL - Electronic Arts標準テンプレートライブラリ. [BSD]
- ETL - Embedded Template Library. [MIT]
- ffead-cpp - エンタープライズアプリケーション開発用のフレームワーク. [Apache2]
- Folly - Facebookで開発・使用されているオープンソースC++ライブラリ. [Apache2]
- FunctionalPlus - C++向けの関数型プログラミングライブラリ。簡潔で読みやすいC++コードを書くことができる. [MIT]
- GLib - GLibは、Cで書かれたライブラリおよびアプリケーションのための基本的なアプリケーション構成要素を提供する. [LGPL]
- itlib - stdに似たシングルヘッダーC++ライブラリのコレクション [MIT]
- JUCE - クロスプラットフォームソフトウェア開発用の包括的なC++クラスライブラリ。[Core-Module: ISC, Rest: GPL2/GPL3/Proprietary] website
- Kigs framework - 無料かつオープンソースのC++モジュール多目的クロスプラットフォームRADフレームワーク。[MIT] website
- libPhenom - libPhenomはCで高性能かつ高スケーラビリティを実現するシステムを構築するためのイベントフレームワーク [Apache2]
- LibSourcey - リアルタイムビデオストリーミングおよび高性能ネットワーキングアプリケーション向けのC++11イベントIO [LGPL]
- LibU - マルチプラットフォーム向けのC言語で書かれたユーティリティライブラリ [BSD]
- libxutils - シンプルでありながら強力なクロスプラットフォームCライブラリ。データ構造やアルゴリズムなど、多くの機能を提供 [MIT]
- Loki - デザインパターンや慣例の柔軟な実装を含むC++ライブラリ [MIT]
- micron.cpp - libcおよび標準ライブラリの純粋C++実装(再設計) [Boost/MIT]
- MiLi - 最小限のヘッダのみのC++ライブラリ [Boost]
- OpenFrameworks - C++で創造的なコーディングを行うためのクロスプラットフォームオープンソースツールキット。[MIT] website
- PhotonLibOS - 効率的なユーザースペーススレッド(コルーチンとワークステーリング)、I/O、ネットワーク、RPC、HTTPなど、幅広い機能を備えたC++フレームワーク。アリババで広く使用されており、C++14/17/20/23、Linux、MacOS、x86-64、ARM64、gccおよびclangと互換性がある。[Apache2] website
- Qt :zap: - クロスプラットフォームアプリケーションおよびUIフレームワーク。[GPL/LGPL/Proprietary] website
- Reason - Java、.Net、Pythonの使いやすさをC++のパフォーマンスと強度に適用するためのクロスプラットキットフレームワーク [GPL2]
- ROOT - 大量データを効率的に扱い、分析できるためのオブジェクト指向フレームワークセット。CERNで使用 [LGPL]
- rpp - 最小限のRust風C++20 STLの代替ライブラリ [MIT]
- SaneCppLibraries - macOS、WindowsおよびLinux向けのC++プラットフォーム抽象化ライブラリのセット。[MIT] website
- Seastar - 現代のハードウェア上で高性能なサーバーアプリケーションを実現するための高度なオープンソースC++フレームワーク。[Apache-2.0ライセンス] seastar.io
- sfl library - C++11向けヘッダのみのライブラリで、いくつかの新しいまたは知られていないコンテナを提供。一部はC++20の定数式で使用可能 [zlib]
- Siv3D - Siv3D (OpenSiv3D) は、創造的なコーディング(2D/3Dゲーム、メディアアート、ビジュアル化、シミュレーターなど)を目的としたC++20フレームワーク。[MIT] website
- STLport - STLの代表的な実装例 [Free]
- STXXL - 超大規模データセット向けの標準テンプレートライブラリ [Boost]
- tbox - glibに類似したマルチプラットフォームCライブラリ。[Apache2] website
- Ultimate++ - C++によるクロスプラットフォームでの迅速なアプリ開発フレームワーク [BSD]
- Windows Template Library - WindowsアプリケーションおよびUIコンポーネントを開発するためのC++ライブラリ [Public]
- WUI - WUI(Window User Interface Library)は、C++17以降でグラフィカルユーザーインターフェースを作成するためのクロスプラットフォームライブラリ。[Boost]website
- xtd - Windows、macOS、Linux、iOS、Android、FreeBSDおよびHaiku上でコンソール(CLI)、フォーム(GUI)およびユニットテスト(xUnit)アプリケーションを開発するための現代的なC++20フレームワーク [MIT]
- Yomm2 - 高速、直交、オープンマルチメソッド。Yomm11 [Boost]を置き換える
- YUP! - リアルタイムオーディオおよびGPUネイティブクリエイティブソフトウェアに最適化された現代フレームワーク [ISC]
人工知能
- ANNetGPGPU - GPU(CUDA)ベースの人工神経ネットワークライブラリ [LGPL]
- btsk - ゲームの行動ツリーのスターターキット [zlib]
- cpp-mcp - 軽量なC++ MCP(モデルコンテキストプロトコル)SDK。[MIT]
- Evolving Objects - テンプレートベースのANSI-C++による進化計算ライブラリ。自作の確率的最適化アルゴリズムを驚くほど高速に書けるように支援。[LGPL]
- fastmcpp - PythonのfastmcpライブラリのC++版。[Apache2]
- frugally-deep - KerasモデルをC++で使用するためのヘッダーのみライブラリ。[MIT]
- Genann - C言語によるシンプルなニューラルネットワークライブラリ。[zlib]
- MXNet - 軽量、移植性、柔軟性のある分散/モバイルディープラーニング。動的で変更を意識したデータフロー依存性スケジューラ。Python、R、Julia、Scala、Go、JavaScriptなどに適用可能。website
- PyTorch - Pythonでテンソルと動的ニューラルネットワークを提供し、強力なGPU加速を実現。website
- flashlight - FlashlightはC++で完全に実装された高速で柔軟な機械学習ライブラリ。[BSD]
- Recast/Detour - (3D)ナビゲーションマッシュ生成とパスファインダー。ゲーム向けのものが多い。[zlib]
- TensorFlow - データフローグラフを用いた数値計算を行うオープンソースソフトウェアライブラリ。[Apache]
- Txeo - TensorFlow向けの現代的なC++ラッパー。[Apache]
- oneDNN - ディープラーニングアプリケーション向けのオープンソースクロスプラットフォームパフォーマンスライブラリ。[Apache] website
- CNTK - マイクロソフト認知ツールキット(CNTK):オープンソースのディープラーニングツールキット。[Boost]
- tiny-dnn - C++11によるヘッダーのみで構成された、依存関係のないディープラーニングフレームワーク。[BSD]
- Veles - ディープラーニングアプリケーション開発を高速に行える分散プラットフォーム。[Apache]
- Kaldi - 音声認識向けのツールキット。[Apache]
非同期イベントループ
- Asio - ネットワークおよび低レベルI/Oプログラミングに用いられるクロスプラットフォームC++ライブラリ。現代的なC++アプローチを用いて、開発者に一貫した非同期モデルを提供。[Boost] website
- Boost.Asio - ネットワークおよび低レベルI/Oプログラミングに用いられるクロスプラットフォームC++ライブラリ。[Boost] website
- C++ Actor Framework - C++で実装されたアクターモデルのオープンソース実装。[BSD-3-Clause] website
- Ichor - スレッドセーフを重視し、デプロイインジェクションを提供するイベントキュー。[MIT]
- libev - libeventに類似した構造をもつ、機能豊かで高性能なイベントループ。libeventの制限やバグを排除した。[BSDおよびGPL]
- libevent - イベント通知ライブラリ。[BSD]
- libhv - クロスプラットフォームイベントループライブラリ。[BSD]
- libuv - クロスプラットフォームの非同期I/O。[BSD]
- promise-cpp - Promise/A+標準を実装するヘッダーのみライブラリ。[Anti-996]
- uvw - libuvのC++ラッパー。[MIT]
- uv-cpp - C++11に基づくシンプルなインターフェース、高性能ネットワークライブラリ。[MIT]
音声
音声、音、音楽、デジタル音声ライブラリ
- Amplitude Audio SDK - ゲームのニーズを考慮したクロスプラットフォームオーディオエンジン。[Apache-2.0] website
- Aubio - オーディオおよび音楽分析用のライブラリ。[GPL-3.0] website
- AudioFile - オーディオファイルの読み書きに使えるシンプルなC++ライブラリ。[MIT]
- audioFlux - オーディオおよび音楽の分析、特徴抽出に使えるCライブラリ。[MIT]
- dr_libs - CおよびC++用の単一ファイルオーディオデコードライブラリ。[Unlicense]
- FMOD - ゲーム向けに使いやすいクロスプラットフォームオーディオエンジンおよびオーディオコンテンツ作成ツール。[非営利/商業利用可]
- KFR - 高速かつ現代的なC++DSPフレームワーク、FFT、FIR/IIRフィルタ、サンプルレート変換。[GPL/商標権所有]
- LAME - LAMEは高品質のMPEGオーディオレイヤー3(MP3)エンコーダー。[LGPL]
- libsndfile - サンプル音声を格納したファイルの読み書きを行うためのCライブラリおよびC++ラッパー。標準インターフェース1つで実現。[LGPL-2.1] website
- libsoundio - クロスプラットフォームでのリアルタイムオーディオ入出力用のCライブラリ。[MIT] website
- Maximilian - C++用のオーディオおよび音楽DSPライブラリ。[MIT]
- OpenAL - オープンオーディオライブラリ - クロスプラットフォームオーディオAPI。[BSD/LGPL/商標権所有]
- miniaudio - 1ファイルで構成されたオーディオ再生およびキャプチャライブラリ。[Unlicense] website
- ni-media - オーディオファイルの読み書きに使えるC++ライブラリ。[MIT]
- Opus - 完全にオープン、ライセンス料無料、非常に柔軟なオーディオコーデック。[BSD]
- PortAudio - PortAudioは無料、クロスプラットフォーム、オープンソースのオーディオI/Oライブラリ。[MIT]
- rnnoise - オーディオノイズ除去に使えるリカレントニューラルネットワーク。[BSD-3-Clause]
- SELA - SimplE Lossless Audio。[MIT]
- SoLoud - ゲーム向けに使いやすい、ポータブルなオーディオエンジン。[zlib]
- Speex - 無料のスピーチコーデック。Opusに置き換えられている。[BSD]
- Tonic - C++で簡単かつ効率的なオーディオ合成。[Unlicense]
- Vorbis - Ogg Vorbisは完全にオープン、非商標、特許およびライセンス料無料、一般用途の圧縮オーディオフォーマット。[BSD]
- minimp3 - パブリックドメイン、ヘッダーのみのMP3デコーダ、クリーンルーム実装。[CC0]
- Verovio - Verovioは高速かつ軽量の音楽記譜エングレーブライブラリ。[LGPL] website
- Wav2Letter++ - パブリックドメイン、高速なオープンソーススピーチ処理ツールキット。C++で完全に構築され、ArrayFireテンソルライブラリおよびflashlight機械学習ライブラリを使用して最大効率を実現。[BSD]
- PocketSphinx - 軽量な音声認識エンジン。[BSD-2-Clause] website
生物学
バイオインフォマティクス、ゲノム、バイオテック
- BioC++ - C++による生物情報学用計算ライブラリ。[BSD]
- Chaste - 生理学および生物学向け数学モデルの計算シミュレーションに用いられるオープンソースC++ライブラリ。[BSD]
- libsequence - 人口遺伝学データの表現および解析に用いるC++ライブラリ。[GPL]
- SeqAn - 生物データに焦点を当てたシーケンス解析用のアルゴリズムおよびデータ構造。[BSD/3-clause]
- Vcflib - VCFファイルのパースおよび操作に用いるC++ライブラリ。[MIT]
- Wham - BAMファイルに直接アソシエーションテストを適用して、ゲノム中の構造変異(SVs)を検出。[MIT]
- htslib - 高スループットシーケンスデータの読み書きを行うためのCライブラリ。[MIT/BSD] website
BitTorrent
- jech/dht - C言語によるBitTorrent DHTライブラリ。[MIT]
- libtorrent (a.k.a. libtorrent-rasterbar) - 高効率かつ機能が充実したC++バイトorrent実装。[BSD]
- LibTorrent (a.k.a. libtorrent-rakshasa) - ビットトランズのライブラリ。[GPL]
- libutp - uTorrentのトランスポートプロトコルライブラリ。[MIT]
化学
化学、量子化学、固体化学/物理学、地球化学、バイオ化学
- d-SEAMS - C++およびLuaで構成された分子動力学トラジェクトリ分析エンジン。Nixを用いて構築。Deferred Structural Elucidation Analysis for Molecular Simulationsの略。[GPL] website
- gromacs - メッセージを送受信する並列分子動力学実装。[GPL] website
- Reaktoro - 化学反応系をモデル化するためのC++およびPythonによる計算フレームワーク。[LGPL] website
- LAMMPS - 材料モデリングに焦点を当てた古典的な分子動力学コード。Large-scale Atomic/Molecular Massively Parallel Simulatorの略。[GPL] website
- MADNESS - 科学シミュレーション用の多解像度適応型数値環境。[GPL] website
- MPQC - 大規模並列量子化学プログラムMPQCは、時間に依存しないシュレディンガー方程式を用いて原子および分子の性質を第一原理から計算する。[GPL] website
- Psi - 第一原理に基づく計算化学パッケージ。[GPL] website
CLI
コンソール/ターミナルユーザーインターフェース、コマンドラインインターフェース
- Argh! - ミニマリズムを追求し、使い勝手のよいヘッダーのみの引数処理ライブラリ。[BSD]
- argparse - 現代C++向けの引数解析ライブラリ。[MIT]
- args - シンプルなヘッダーのみのC++引数解析ライブラリ。[MIT]
- Argy - 現代C++向けコマンドライン引数解析ライブラリ — シンプルで直感的でヘッダーのみであり、依存関係なし。[MIT]
- barkeep - アシンクロノスアニメーション、カウンター、進行バーを表示するための小さなC++ヘッダー。[Apache-2.0] website
- Boost.Program_options - コマンドラインや設定ファイルなどの従来の方法を用いてプログラムオプションを取得するためのライブラリ。[Boost] website
- cli - インタラクティブコマンドラインインターフェース(シスコ風)を提供する、クロスプラットフォームヘッダーのみのC++14ライブラリ。[Boost]
- CLI11 - シンプルかつ高度なCLI解析に用いる、ヘッダーのみのC++11ライブラリ(単一またはマルチファイル)。[BSD]
- clipp - C++11/14/17で使いやすく、強力で表現力の高いコマンドライン引数処理を、1つのヘッダーファイルに収録。[MIT]
- cpp-terminal - マルチプラットフォームのテルミナルアプリケーションを書くための小さなヘッダーのみのC++ライブラリ。[MIT]
- Crossline - 小さな、自立型、設定不要、MITライセンス、クロスプラットフォーム、readlineおよびlibeditの代替ライブラリ。[MIT]
- Ctrl+C - カスタム関数内でCtrl+Cイベントを処理するためのクロスプラットフォームC++11ライブラリ。[MIT]
- cxxopts - 軽量なC++コマンドラインオプション解析ライブラリ。[MIT]
- docopt.cpp - ドキュメント文字列からオプション解析を生成するライブラリ。[MIT/Boost]
- FINAL CUT - テキストベースのウィジェットを使用したターミナルアプリケーションを作成するためのライブラリ。[LGPL]
- FTXUI - C++の機能的なターミナルUI。[MIT]
- gflags - C++用のコマンドラインフラグモジュール。[BSD]
- imtui - 即時モードテキストベースUI。[MIT]
- indicators - 現代C++用のアクティビティインジケータ。[MIT]
- linenoise - readlineおよびlibeditへの小さな、自立した代替品。[BSD-2-Clause]
- linenoise-ng - Linux、WindowsおよびMacOSでUTF-8文字を扱える、小さなポータブルGNU readlineの代替品。[BSD]
- Lyra - C++11以降でシンプルに使いやすく、組み立て可能なコマンドラインパーサー。[Boost]
- Ncurses - ターミナルUI。[MIT]
- oof - コンソール出力における便利で高性能なRGB色と位置制御。[MIT]
- PDCurses - ソースコードおよび事前コンパイル済みライブラリが提供される、パブリックドメインのcursesライブラリ。[PublicDomain]
- popl - C++11以降向けのシングルヘッダーテンプレートコマンドライン引数およびiniファイルパーサー。[MIT]
- replxx - UTF-8、シンタックスハイライト、ヒントをサポートし、UnixおよびWindowsで動作するreadlineおよびlibeditの代替品。[BSD]
- tabulate - 現代C++用のテーブル作成ライブラリ。[MIT]
- TCLAP - ANSI C++でコマンドライン引数を定義およびアクセスするための成熟し、安定かつ機能豊かなライブラ。[MIT]
- termbox - テキストベースUIを書くためのCライブラリ。[MIT]
- TermOx - C++17ターミナルUI(TUI)ライブラリ。[MIT]
- tuibox - シングルヘッダーのターミナルUI(TUI)ライブラリで、コマンドライン上でマウス操作によるインタラクティブアプリケーションを作成可能。[MIT]
- Ginseng - C++用のコマンドライン引数パーサー。[MIT]
壊れ防止
圧縮およびアーカイブライブラリ
- bit7z - C++の静的ライブラリで、7-zipの共有ライブラリにアクセスするためのシンプルで明確なインターフェースを提供。[MPL2]
- Brotli - ブロティ圧縮フォーマット。グーグルが開発した。[MIT]
- bzip2 - 無料で利用可能であり、特許フリーかつ高品質なデータ圧縮ツール。[BSD]
- bzip3 - BZip2のより優れた、そして強いスピリチュアルな継承者。[LGPL]
- FastLZ - 小型かつポータブルなバイトアライメントLZ77圧縮。[MIT]
- FiniteStateEntropy - 新世代のエントロピーコーデック:有限状態エントロピーとHuff0。
- FSST - 効率的なランダムアクセス文字列圧縮。[MIT]
- heatshrink - 埋め込み/リアルタイムシステム向けデータ圧縮ライブラリ。[ISC]
- Kanzi - C++で実装された現代的、モジュラー、ポータブルかつ効率的な無損失データ圧縮ツール。[Apache-2.0]
- KArchive - ZIPやTARといったファイルアーカイブを作成・読み取り・書き込み・操作するためのライブラリ。また、gzipなどフォーマットを用いてデータの透明な圧縮および解圧を、QIODeviceのサブクラスを介して提供する。[LGPL]
- libarchive - マルチフォーマットアーカイブおよび圧縮ライブラリ。[New BSD] website
- LZ4 - 極めて高速な圧縮アルゴリズム。[BSD] website
- LZAV - 高速なメモリ内データ圧縮アルゴリズム。[MIT]
- LZFSE - LZFSE圧縮ライブラリおよびコマンドラインツール。アップルが開発した。
- LZHAM - LZMAと同等の圧縮比を備えながら、解圧速度が非常に速い無損失データ圧のライブラリ。[BSD]
- LZMA :zap: - 7zフォーマットのデフォルトかつ一般的な圧縮方法。[PublicDomain] website
- LZMAT - 非常に高速なリアルタイム無損失データ圧縮ライブラリ。[GPL]
- miniz - 1つのCソースファイルによるDeflate/Inflate圧縮ライブラリ。zlib互換API、ZIPアーカイブの読み書き、PNG出力に対応。[MIT]
- Minizip - zlibに最新のバグ修正を加えたもの。PKWAREディスクスパン、AES暗号化、IOバッファリングをサポート。[zlib]
- minizip-ng - zlib配布版に含まれる人気のあるZIP操作ライブラリのフォーク。[zlib]
- misa77 - 非常に高速な解圧速度と優れた圧縮比を実現。[MIT]
- OpenZL - 新しいデータ圧縮フレームワーク。[BSD] website
- PhysicsFS - さまざまなアーカイブへの抽象アクセスを提供するライブラリ。ゲーム開発向けに設計されており、Quake 3のファイルサブシステムに若干のインスピレーションを受けた。[zlib]
- Rapidgzip - 現代のマルチコアマシン向けのGzip解圧およびランダムアクセス。[Apache-2/MIT]
- smaz - 小型文字列圧縮ライブラリ。[BSD]
- Snappy - 高速な圧縮/解圧縮ライブラリ。[BSD]
- ZLib - データストリーム向けに非常にコンパクトな圧縮ライブラリ。[zlib]
- zlib-ng - 「次世代」システム向けのzlib。一部の重要な最適化を含む、即插即用型リプレース。[zlib]
- zstd - Zstandard - 高速リアルタイム圧縮アルゴリズム。フェイスブックが開発。[BSD]
- ZXC - 高性能な非対称無損失圧縮。[BSD-3-Clause]
- ZZIPlib - ZIPアーカイブへの読み込みアクセスを提供。[MPL/LGPL]
- cmix - 圧縮率を最適に追求するが、速度を犠牲にした無損失データ圧縮プログラム。[GPL-3.0]
- LZSSE-SIMDe - LZSSE圧縮のポータブルSIMD実装。[BSD-2-Clause]
- Zopfli - 非常に良いが遅いdeflate/zlib圧縮を実行する圧縮ライブラリ。[Apache-2.0]
並列処理
並列処理およびマルチスレッド
- alpaka - 並列カーネルアクセラレーション用の抽象化ライブラリ。[LGPLv3+]
- ArrayFire - 汎用GPUライブラリ。[BSD]
- Async++ - C++11向け軽量な並列性フレームワーク。Microsoft PPLライブラリおよびN3428 C++標準提案にインスパイアされた。[MIT]
- atomic_queue - C++14のマルチプロダクターマルチコンシューマーのロックフリーキュー。円形バッファとstd::atomicをベースに。[MIT]
- Boost.Compute - C++用のGPU計算ライブラリ(OpenCL対応)。[Boost] website
- Bolt - GPU向けに最適化されたC++テンプレートライブラリ。[Apache2]
- BS::thread_pool - 高速で軽量かつ使いやすいC++17スレッドプールライブラリ。[MIT]
- Channel - スレッド間でデータを共有するためのスレッドセーフコンテナ。[MIT]
- ck - 並列性プリミティブ、安全なメモリ回収メカニズム、非ブロッキングデータ構造。[BSD]
- concurrentqueue - C++11向け高速マルチプロダクターマルチコンシューマーのロックフリー並列キュー。[BSD,Boost]
- Coros - タスクベース並列性を簡単に使い、コルーチンを活用した高速なライブラリ。[BSL-1.0]
- CUB - CUBはCUDAプログラミングモードのすべての層に、最先端かつ再利用可能なソフトウェアコンポーネントを提供。[New BSD]
- cuda-api-wrappers - CUDA GPUプログラミングランタイムAPI向けの軽量かつ現代的なC++ラッパー。[BSD]
- cupla - Alpakaを介してOpenMP、スレッド、TBB、…でCUDA/C++を実行するC++API。[LGPLv3+]
- C++React - C++11向けの反応型プログラミングライブラリ。[Boost]
- dispenso - スレッドプール、並列forループ、フューチャー、タスクグラフ、並列コンテナを含む、高性能なC++並列プログラミングライブラリ。[MIT]
- FiberTaskingLib - 任意の依存関係を持つタスクグラフをサポートするタスクベースマルチスレッドライブラリ。[Apache]
- HPX - 任意規模の並列・分散アプリケーション向けの一般用途C++ランタイムシステム。[Boost]
- Intel Games Task Scheduler - ゲーム開発者向けに設計されたタスクスケジューリングフレームワーク。[MIT]
- Intel Parallel STL - Intel®が提供するC++17 STL(C++11以降対応)。[Apache2]
- Intel TBB - Intel® Threading Building Blocks。[Apache2]
- junction - C++における並列データ構造のライブラリ。[BSD]
- Kokkos - 並列実行およびメモリ抽象のためのパフォーマンスに優れたプログラミングモデル。[BSD]
- libcds - C++における並列データ構造のライブランダリ。[BSD]
- Libclsph - OpenCLベースのGPU加速SPH流体シミュレーションライブラリ。[MIT]
- libdill - Cにおける構造化された並列性の導入。[MIT]
- libdispatch - Apple Inc.が開発したグランド・センター・ディスパッチ(GCD)は、スレッドプールパターンに基づくタスク並列技術である。libdispatchは、GCDのサービスを実装するライブラリである。[Apache-2.0] website
- libfork - C++20のコルーチンに基づく、最先端のロックフリー、待ちなし、コンテニュー・スティーリング型タスクライブラリ。[MPL-2.0] website
- libmill - CにおけるGoスタイルの並列性の導入。[MIT]
- marl - MarlはC++11で書かれたハイブリッドスレッド/フィバータスクスケジューラ。[Apache-2.0]
- moderngpu - moderngpuはGPU上で一般用途計算を行うための生産性ライブラリ。CUDA向けヘッダーのみのC++ライブラリであり、不規則並列問題の解決に特化した高速プリミティブを提供する。[FreeBSD & Copyright, Sean Baxter]
- NCCL - マルチGPU間の集団通信に最適化されたプリミティブ。[BSD]
- Neco - C向けの並列性ライブラリ(コルーチン)。[MIT]
- OpenCL - 異質システムの並列プログラミング向けのオープンスタンダード。
- OpenMP - The OpenMP API.
- rotor - イベントループに親しみやすいC++アクターマイクロフレームワーク。[MIT]
- SObjectizer - アクター、パブリッシュ・サブスクライブ、CSPモデルを一つの非常に小さなC++フレームワークで実装。[BSD-3-Clause]
- Quantum - トップレベルの強力なC++コルーチンディスパッターフレームワーク(Boost.Coroutine2に基づく)。
- RaftLib - RaftLib C++ライブラリ、C++ iostreamのような演算子を用いたストリーミング/データフロー並列。[Apache2]
- readerwriterqueue - C++用の高速な単一プロダクタ、単一コンシューマーのロックフリーキュー。[BSD]
- stdgpu - GPU上で効率的なSTLのようなデータ構造。[Apache2]
- Taskflow - 汎用並列および異質タスクプログラミングシステム。(Cpp-Taskflowからリネーム)[MIT]
- ThreadPool - シンプルなC++11スレッドプール実装。[zlib]
- Thrust - C++標準テンプレートライブラリ(STL)に似た並列アルゴリズムライブラリ。[Apache2]
- TooManyCooks - C++20コルーチンフレームワークで、高度なハードウェア検出機能を備える。[BSL-1.0]
- transwarp - タスク並列用のヘッダーのみのC++ライブラリ。[MIT]
- VexCL - OpenCL/CUDA用のC++ベクターエクスプレッションテンプレートライブラリ。[MIT]
- STAPL - 共有メモリおよび分散メモリ並列コンピュータ上で動作するため設計されたC++並列プログラミングフレームワーク。[BSD]
- concurrencpp - タスク、エグゼクュータ、タイマー、C++20コルーチンを含む一般並列性ライブラリ。
- libcu++ - NVIDIA C++標準ライブラリ、C++標準ライブラリ機能の異質実装を提供。[Apache-2.0]
- nvthreads - C/C++で効率的かつ持続可能なスレッドを有効にするためのライブラリ。[LGPL-2.1]
設定
設定ファイル、INIファイル
- inifile-cpp - C++用のヘッダーのみのINIファイルパーサー。[MIT]
- inih - C言語によるシンプルな.INIファイルパーサー、埋め込みシステムに適している。[BSD-3-Clause]
- inih - inihのC++バージョン(シングルヘッダーのみ)。[BSD-3-Clause]
- ini-cpp - inihから派生したシングルヘッダーのみのC++バージョン(便利な読み書きインターフェースを備える)。[BSD-3-Clause] website
- iniparser - INIファイルパーサー。[MIT]
- inipp - シンプルなヘッダーのみのC++INIパーサーおよび生成器。[MIT]
- libconfig - 構造化設定ファイルを処理するためのC、C++ライブラリ。[LGPL-2.1] website
- libconfuse - Cの小さな構成ファイルパーサーライブラリ。[ISC]
- mINI - INIファイルの読み込みと書き込み。[MIT]
- simpleini - マルチプラットフォームのC++ライブラリで、INI形式の構成ファイルを読み書きするためのシンプルなAPIを提供。[MIT]
- toml++ - C++17以降向けのヘッダーのみのTOMLパーサーおよびシリアライザ。[MIT] website
- toml11 - C++11(以降)のヘッダーのみのtomlパーサー/エンコーダーで、C++標準ライブラリのみに依存。[MIT]
コンテナー
- CRoaring - C(およびC++)におけるローリングビットマップ、SIMD最適化付き。[Apache-2.0]
- dynamic_bitset - シンプルで有用なライブラリ:C++17/20のヘッダーのみの動的ビットセット。[MIT] website
- fixed-containers - ヘッダーのみのC++20ライブラリで、固定容量のconstexprコンテナを提供。[MIT]
- flat_hash_map - 非常に高速なフラットハッシュテーブルでフィボナッチハッシュを使用。
- frozen - C++14ユーザー向けのgperfへのヘッダーのみのconstexpr代替。[Apache-2.0]
- Hashmaps - C++で実装されたオープンアドレスハッシュテーブルアルゴリズム。[MIT]
- hat-trie - C++で実装された高速かつメモリ効率の高いHAT-trie。[MIT]
- Hopscotch map - 高速なヘッダーのみのハッシュマップで、衝突解決にホップスコッチハッシュを使用。[MIT]
- librb - リング(円形)バッファのC実装。完全なスレッド意識を持ち、並列読み書きを可能にし、必要に応じて自動的にサイズを拡張できる。[BSD] website
- LSHBOX - 局所感度ハッシュ(LSH)のツールボックスで、いくつかの一般的なLSHアルゴリズムを提供し、PythonおよびMATLABにも対応。[GPL]
- marisa-trie - 再帰的に実装されたストーリングアルゴリズム。[BSD-2-Clause/LGPL-等]
- parallel-hashmap - ヘッダーのみの非常に高速かつメモリ効率の高いハッシュマップおよびbtreeコンテナファミリー。[Apache2] website
- PGM-index - 数百万倍少ないメモリ空間で、数十億アイテムの配列における高速検索、前駆者検索、範囲検索および更新を可能にするデータ構造。[Apache2] website
- plf::colony - 並列挿入・削除を考慮した、stdコンテナより高速な無順序「バッグ」型コンテナ。削除操作に関わらず、非削除要素への永続的なポインタを保持。[zLib] website
- plf::list - 範囲スパニングを削除したstd::listの実装により、キャッシュフレンドリーな構造を実現し、顕著なパフォーマンス向上を達成。[zLib] website
- plf::stack - std::stackコンテナアダプタの代替コンテナ。スタックコンテキストにおいて、どのstdコンテナよりも高いパフォーマンスを達成。[zLib] website
- ring_span lite - アーティー・オーディアのring_span実装の簡易版、すなわち円形バッファビュー。[MIT]
- robin-hood-hashing - C++14向けのロビン・フードハッシュに基づく高速かつメモリ効率の高いハッシュテーブル。[MIT]
- robin-map - ロビン・フードハッシュを使用した高速ハッシュマップおよびハッシュセット。[MIT]
- sparsepp - C++向けの高速かつメモリ効率の高いハッシュマップ。[BSD 3-clause]
- sqlitemap - SQLiteでバックアップされた永続マップ。[MIT]
- st_tree - 高速で柔軟なC++テンプレートクラスによる木構造データ。[Apache-2.0]
- svector - C++17以降のコンパクトSVO最適化ベクトル。[MIT]
- tree.hh - STLに似たC++ヘッダーのみのツリーライブラリ。[GPL2+]
- unordered_dense - ロビン・フードのバックワードシフト削除を用いた高速かつ高密度に保存されたハッシュマップおよびハッシュセット。[MIT]
- fifo_map - C++におけるFIFO順序のアソシエイティブコンテナ。[MIT]
- ordered-map - C++のハッシュマップおよびハッシュセットで挿入順を保持するもの。[MIT]
暗号学
暗号学および暗号化ライブラリ
- Bcrypt - 跨プラットフォームファイル暗号化ツール。暗号化されたファイルは、すべてのサポートされているオペレーティングシステムおよびプロセッサで移植可能。[BSD]
- BeeCrypt - ポータブルで高速な暗号化ライブラリ。[LGPLv2.1+]
- BoringSSL - Googleのニーズに合わせて設計されたOpenSSLのフォーク。[Apache2]
- Botan - C++用の暗号化ライブラリ。[BSD-2]
- Crypto++ - 自由なC++クラスライブラリで暗号手法を提供。[Boost] website
- digestpp - C++11ヘッダーのみのメッセージハッシュ(ハッシュ)ライブラリ。[PublicDomain]
- GnuPG - OpenPGP標準の完全で無料な実装。[GPL]
- GnuTLS - SSL、TLSおよびDTLSプロトコルを実装する安全な通信ライブラリ。[LGPL2.1]
- Libgcrypt - GnuPGのコードに基づいた元々の一般的な暗号化ライブラリ。[LGPLv2.1+]
- LibreSSL - 2014年にOpenSSLからフォークされたSSL/TLSプロトコルの無料バージョン。[?]
- libsodium - P(ortable|ackageable) NaClベースの暗号化ライブラリ。使いやすく、意見が強い。[ISC]
- libhydrogen - 軽量で安全で使いやすい暗号化ライブラリ。制限された環境に適している。[ISC]
- LibTomCrypt - 比較的包括的でモジュール化され、ポータブルな暗号化ツールキット。[WTFPL]
- mbedTLS - 開源、ポータブル、使いやすく、読みやすく、柔軟なSSLライブラリ。以前はPolarSSLと呼ばれていた。[Apache2] website
- Nettle - ローレベルの暗号化ライブラリ。[LGPL]
- OpenSSL - 高品質で商業レベル、機能豊富でオープンソースの暗号化ライブラリ。[Apache] website
- retter - ハッシュ関数、暗号、ツール、ライブラリ、暗号に関連する資料のコレクション。
- s2n - TLS/SSLプロトコルの実装。[Apache]
- sha1collisiondetection - ファイル内のSHA-1衝突を検出するライブラリおよびコマンドラインツール。[MIT]
- stduuid - C++17によるクロスプラットフォームUUID実装。[MIT]
- Tink - 複数言語、クロスプラットフォームのライブラリで、安全で正しく使いやすく、誤用しにくい暗号APIを提供。[Apache-2.0]
- Tiny AES in C - Cで実装された小さなポータブルAES128/192/256。[PublicDomain]
- tiny-ECDH-c - Cで実装されたECDH鍵交換プロトコルの小さなポータブル実装。[PublicDomain]
- Themis - データセキュリティを簡単に行うための暗号化ライブラリ。対称および非対称暗号、前向きセキュリティを備えたセキュアソケットを提供。モバイルおよびサーバープラットフォームに適している。[Apache2]
- HEhub - 同時暗号化およびその応用に関するライブラリ。[Apache2]
- Qt-Secret - Qtベースのシンプルな暗号化ライブラリ(C++プロジェクト用)。[LGPL]
- micro-ecc - 8ビット、32ビット、64ビットプロセッサ向けの軽量で高速なECDHおよびECDSA実装。[BSD-2-Clause]
- crypto-algorithms - Cで実装された標準暗号アルゴリズム(AES、SHAなど)の基本的な実装。[PublicDomain]
- aes-stream - Cで実装された高速AESベースのストリーム暗号。[ISC]
CSV
コンマ区切り値(CSV)ファイルをパースするためのライブラリ
- commata - ただのヘッダーのみのC++17 CSVパーサー。[Unlicense]
- csv2 - 現代C++向けの高速CSVパーサー。[MIT]
- Csv::Parser - C++17で書かれたコンパイル時および実行時CSVパーサー。[Zlib]
- Fast C++ CSV Parser - 小さな、使いやすく、高速なヘッダーのみのCSVファイル読み込みライブラリ。[BSD-3-Clause]
- Glaze - 高パフォーマンス、ヘッダーのみ、反射サポート付きCSVライブラリ。[MIT]
- lazycsv - 現代C++向けの高速、軽量、シングルヘッダーCSVパーサー。[MIT]
- rapidcsv - 使いやすく、ヘッダーのみのC++CSVパーサーライブラリ。[BSD-3-Clause]
- ssp - 高速かつ多機能なヘッダーのみの”csv”パーサー。現代C++APIを備える。[MIT]
- Vince’s CSV Parser - 高速、自立型、ストリーミングC++17CSVパーサー。オプションで型変換および統計を提供。[MIT]
- zsv - 世界で最も高速な(SIMD)CSVパーサー。拡張可能なCLIを備える。[MIT]
データベース
データベースライブラリ、SQLサーバー、ODBCドライバー、およびツール
- ClickHouse - ClickHouse DBMS用C++クライアント。[Apache2]
- CrossDB - 超高性能な軽量エムベッド型およびサーバーOLTP RDBMS。[MPL-2.0] website
- Doltlite - バージョン管理されたSQLite。[PublicDomain/Apache2]
- DuckDB - プロセス内SQL OLAPデータベース管理システム。[MIT] website
- hiberlite - sqlite3用のC++オブジェクト関係マッピング。[BSD]
- Hiredis - Redisデータベース用の最小限のCクライアントライブラリ。[BSD]
- Infinity - LLMアプリケーション向けに構築されたAIネイティブデータベース。非常に高速なベクトル検索と全文検索を提供。[Apache2]
- Kuzu - クエリ速度とスケーラビリティを重視した埋め込みプロパティグラフデータベース管理システム。シファーを実装。[MIT] website
- Kvrocks - RocksDBをストレージエンジンとして使用し、Redisプロトコルと互換性を持つ分散キーバリューNoSQLデータベース。[Apache-2.0]
- Ladybug - クエリ速度とスケーラビリティを重視した埋め込みグラフデータベース。[MIT] website
- LevelDB - Googleが開発した高速キーバリューストレージライブラリ。文字列キーから文字列バリューへの順序付きマッピングを提供。[BSD]
- libpg_query - サーバー環境外でPostgreSQLパーサーにアクセスするためのCライブラリ。[BSD-3-Clause]
- libpqxx - PostgreSQLの公式C++クライアントAPI。[BSD-3-Clause]
- LMDB - 非常に高速な埋め込みキーバリューストレージ。完全なACIDセマンティクスを提供。[OpenLDAP]
- LMDB++ - LMDB埋め込みデータベースライブラリ用のC++11ラッパー。[PublicDomain]
- mgclient - Memgraphクライアント。[Apache2]
- MongoDB C Driver - MongoDB用のC言語クライアントライブラリ。[Apache2]
- MongoDB C++ Driver - MongoDB用のC++ドライバー。[Apache2]
- MongoDB Libbson - BSONユーティリティライブラリ。[Apache2]
- MySQL++ - MySQLのCAPI用のC++ラッパー。[LGPL]
- nanodbc - ネイティブCODBCAPI用の小さなC++ラッパー。[MIT]
- ODB - オープンソース・クロスプラットフォーム・クロスデータベースオブジェクト関係マッピング(ORM)システム。[GPLv2]
- redis3m - hiredisのラッパーで、クリーンなC++インターフェースを提供。センチネルと準備済みパターンをサポート。[Apache2]
- Reindexer - 埋め込み型、メモリ内、ドキュメント指向データベース。高レベルのクエリビルダーインターフェースを備えている。[Apache2] website
- RocksDB - Facebookが開発した高速ストレージ用の埋め込みキーバリューストレージ。[BSD]
- SimDB - 高性能、共有メモリ、ロックフリー、プラットフォームを越えた、単一ファイル、最小依存、C++11のキーバリューストア。[Apache2]
- SlothDB - どこでも実行可能な埋め込みSQLデータベース。ラップトップ、サーバー、ブラウザで動作する。[MIT] website
- SOCI - C++用のデータベース抽象層。[Boost]
- Speedb - コミュニティが中心のプロジェクト:RocksDBに準拠した、高性能かつスケーラブルな埋め込みキーバリューストア。[Apache2]
- sqlgen - C++20向けの反射ベースのORMおよびSQLクエリ生成器。PythonのSQLAlchemy/SQLModelまたはRustのDieselに類似。[MIT]
- SQLite - 数万キロバイト程度の完全に埋め込み可能な、フル機能の関係データベース。[PublicDomain]
- SQLiteC++ - SQLiteC++(SQLiteCpp)は、スマートで使いやすいC++のSQLite3のラッパー。[MIT]
- sqlite_modern_cpp - sqliteライブラリに対するC++14のヘッダーのみのラッパー。[MIT]
- sqlite_orm - 現代C++向けのSQLite ORMの軽量ヘッダーのみのライブラリ。[AGPL + 有償MIT]
- sqlpp11 - C++におけるタイプセーフな埋め込みドメイン特定言語。SQLクエリと結果に適用。[BSD-2-Clause]
- sqlpp23 - C++向けのタイプセーフなSQLライブラリ。[BSD—2-Clause]
- TidesDB - 高パフォーマンス、持続可能、トランザクション処理を備えた埋め込みストレージエンジン。フラッシュメモリおよびRAM最適化に設計。[MPL-2.0] website
- TileDB - 高速な密および稀疏多次元配列データベース管理システム。[MIT] website
- TinyORM - 現代的なC++ ORMライブラリ。[MIT] website
- UnQLite - 自立型、サーバレス、ゼロ設定、トランザクショナルNoSQLエンジン。[BSD-2-Clause] website
- upscaledb - 埋め込み型の「タイプ付き」キーバリューストアで、内蔵されたクエリインターフェースを備える。[GPLv3]
- TigerBeetleDB C++ client (Community) - TigerBeetleは、ミッションクリティカルな安全性とパフォーマンスを設計した財務会計データベースで、今後の金融サービスの未来を支える。[BSL-1.0]
- Trilogy - MySQL互換データベースサーバー向けのクライアントライブラリ。パフォーマンス、柔軟性、埋め込みの容易さを設計。[MIT]
- UStore - BLOB、JSON、グラフを扱うマルチモーダルデータベース。[Apache2]
- Velox - C++によるベクトル化データベースアクセラレーションライブラリ。クエリエンジンおよびデータ処理システムの最適化を目的としている。[Apache-2.0] website
- Zvec - 軽量で、高速なプロセス内ベクトルデータベース。[Apache2] website
- constexpr-sql - C++17におけるコンパイル時SQLクエリパーサーおよび実行器。[MIT]
- NuDB - SSDドライブ向けの高速かつ追加のみのキーバリューストア。[Boost]
データ可視化
データ可視化ライブラリ
- gplot++ - Gnuplotとインターフェースする、プラットフォームを越えたヘッダーのみのC++プロットライブラリ。[MIT]
- matplotplusplus - C++によるデータ可視化用グラフィックスライブラリ。[MIT] website
- mathplot - C++ヘッダーのみのグラフおよびデータ可視化ライブラリ。現代的なOpenGLを用いる。[Apache-2.0] website
- Plotly++ - Plotly.jsのフィギュア仕様に接続されたC++インターフェース。インタラクティブなデータ可視化を作成。[MIT]
- matplotlib-cpp - matplotlib Pythonプロットライブラリに対するC++ラッパー。[MIT]
デバッグ
デバッグライブラリ、メモリリークおよびリソースリーク検出、ユニットテスト
- Attest - プラットフォームを越えた、ヒープフリーのCテストフレームワーク。パラメータ化されたテストおよびライフサイクルを意識したテストとアサーションをサポート。メッセージは即時形式で表示。[MIT]
- backward-cpp - C++用の美しいスタックトレースプリントリーダー。[MIT]
- Bencher - CIでパフォーマンスのリグレッションを検出するための連続ベンチマークツールセット。[MIT]/[Apache2]
- benchmark - Googleが提供した小さなマイクロベンチマークサポートライブラリ。[Apache2]
- Boost.Test - Boostテストライブラリ。[Boost] website
- check - C用のユニットテストフレームワーク。[LGPL-2.1] website
- doctest - 最も軽量でありながら機能が豊富なC++のシングルヘッダーテストフレームワーク。[MIT]
- Catch2 - 現代的な、C++本体に特化したユニットテスト、TDD、BDD用のテストフレームワーク。[Boost]
- Celero - C++用のベンチマークフレームワーク。[Apache2]
- cpp-dump - デバッグ用のC++ライブラリで、任意の変数(ユーザー定義型を含む)を表示可能。[MIT]
- CppUTest - C/C++用のユニットテストおよびモックフレームワーク。[BSD-3-clause]
- CUTE - C++用のユニットテストを簡単にするライブラリ。[LGPL3]
- CMocka - C用のユニットテストフレームワークでモックオブジェクトをサポート。[Apache2]
- CppBenchmark - C++用のパフォーマンスベンチマークフレーム及、ナノ秒精度の測定を可能にするフレームワーク。[MIT]
- Cpptrace - シンプルでポータブルかつ自立したC++スタックトレースライブラリ(C++11以降対応)。[MIT]
- CppUnit - JUnitのC++版。[LGPL2]
- CrashCatch - C++用のシングルヘッダークラッシュレポート。スタックトレースをログに記録し、
.dmpおよび.txtクラッシュダンプを作成。[MIT] website - CTest - CMakeのテストドライバープログラム。[BSD]
- dbg-macro - C++用のdbg(…)マクロ。[MIT]
- DebugViewPP - デバッグログの閲覧ツール。[Boost]
- Deleaker - リソースリーク検出ツール(メモリ、GDI、ハンドルリークを含む)。
- FakeIt - C++用のシンプルなモックフレームワーク。[MIT]
- fff - 仮のC関数を作成するためのマイクロフレームワーク。[MIT]
- Google Mock - C++モッククラスの作成と使用に用いるライブラリ。[BSD]
- Google Test - Google C++テストフレームワーク。[BSD]
- Hippomocks - シングルヘッダーのモックフレームワーク。[LGPL-2.1]
- IceCream-Cpp - これからはcout/printfを使ってデバッグしないでください。[MIT]
- ig-debugheap - マルチプラットフォームデバッグヒープ。メモリエラーの特定に便利。[BSD]
- libassert - 最も過剰に設計されたC++アサーションライブラリ。[MIT]
- libtap - Cでテストを書く。[GPL2]
- microprofile - 複数プラットフォーム対応のプロファイラー(ウェブビュー付き)。[Unlicense]
- MinUnit - C用の最小限のユニットテストフレームワーク。シングルヘッダーで自立。[MIT]
- nanobench - C++11/14/17/20に対応したシンプルで高速かつ正確なシングルヘッダーマイクロベンチマーク機能。[MIT] website
- Nanotimer - ベンチマーク用のシンプルな低負荷のクロスプラットフォームタイマークラス。[zLib] website
- Nonius - C++用のマイクロベンチマークフレームワーク。[CC]
- Remotery - シングルCファイルプロファイラー(ウェブビュー付き)。[Apache2]
- snitch - 軽量C++テストフレーム及。[Boost]
- Touca - セルフホスト可能なオープンソースのリグレッションテストシステム。[Apache2] website
- UnitTest++ - 軽量C++ユニットテストフレームワーク。[MIT/X Consortium license]
- Unity - C用のシンプルユニットテスト。[MIT]
- utest.h - CおよびC++用のシングルヘッダーユニットテストフレームワーク。[Unlicense]
- utl::profiler - C++17用シングルヘッダー・シングルモジュール、マクロなしμ(マイクロ)ユニットテストフレームワーク。[Boost]
- μt - Visual Leak Detector。Visual C++用の無料・堅牢・オープンソースのメモリリーク検出システム。
- VLD - Linux用のヒープメモリプロファイラー。[LGPL-2.1]
- heaptrack - デジタル信号処理に役立つC++クラスのコレクション。[MIT]
ドキュメント
- Doxide - 現代的なC++向けドキュメンテーション、YAMLで構成し、Markdownで出力。[Apache 2.0] website
- doxygen :zap: - アノテートされたC++ソースからドキュメンテーションを生成するための実用的な標準ツール。[GPL2] website
- doxyrest - Doxygen XMLからreStructuredTextへ変換するコンパイラ。[MIT]
- hdoc - C++向けの現代的なドキュメンテーションツール。[AGPL/Proprietary] website
- Natural Docs - Natural Docsは、複数のプログラミング言語向けのオープンソースドキュメンテーションジェネレーター。[AGPL/Proprietary] website
- Sourcey - Doxygen XMLおよびOpenAPI、godoc、MCP、Markdownを消費する静的ドキュメンテーションジェネレーター。[AGPL-3.0] website
- Sphinx - Sphinxは、知的な美しいドキュメンテーションを作成するのを容易にします。[BSD-2-Clause] website
DSP
デジタル信号処理
- DSPFilters - 高速連続ウェーブレット変換(fCWT)は、CWTの高速計算を行うライブラリ。[Apache-2.0]
- fCWT - 高速連続小波変換(fCWT)は、CWTの高速計算を行うためのライブラリです。[Apache-2.0]
- FFTW - 1次元または複数次元におけるDFTを計算するCライブラリ。[GPL]
- iir1 - IIRリアルタイムC++フィルタライブラリ。[MIT]
- kissfft - シンプルで無駄のない高速フーリエ変換(FFT)ライブラリ。[BSD-3-Clause]
- pocketfft - FFTPackに基づくFFT実装だが、いくつかの改善を施したバージョン。[BSD-3-Clause]
- wavelib - 1次元および2次元ウェーブレット変換のC実装。[BSD-3-Clause]
字体
フォントファイルの解析および操作に用いるライブラリ
- Fontconfig - フォント設定とカスタマイズ用のライブラリ。[MIT] website
- FreeType - FreeTypeはフォントをレンダリングするための自由に利用可能なソフトウェアライブラリ。[FTL & GPLv2]
- otfcc - OpenTypeフォントファイルのパースおよび出力用のCライブラリおよびユーティリティ。[Apache-2.0]
- harfbuzz - テキストの整形エンジン。[Old MIT]
- libschrift - 軽量なTrueTypeフォントレンダリングライブラリ。[ISC]
- SheenBidi - Unicodeバイディレクショナルアルゴリズムの高度な実装。[Apache-2.0]
ゲームエンジン
- Acid - 高速なC++17 Vulkanゲームエンジン。[MIT]
- Allegro - マルチプラットフォーム向けのライブラリで、主にゲームおよびマルチメディアプログラミングに使用。[zlib]
- Axmol Engine - デスクトップ、モバイル、XBOX(UWP)向けのクロスプラットフォームゲームエンジン。Cocos2d-x-4.0をベースにした。[MIT] website
- Cocos2d-x - 2Dゲーム、インタラクティブな本、デモ、その他グラフィカルアプリケーションの開発に向けたマルチプラットフォームフレームワーク。[MIT]
- Corange - 純粋C、SDL、OpenGLで書かれたゲームエンジン。[BSD]
- crown - Crownは、従来のC++を用いて構築された汎用データ駆動型ゲームエンジン。極めてシンプルでデータ指向設計を採用。[MIT]
- delta3d - 安定したシミュレーションプラットフォーム。[LGPL2]
- EnTT - ゲームと現代C++の融合。[MIT]
- GamePlay - マルチプラットフォーム向けのネイティブC++ゲームフレームワークで、2D/3Dのモバイルおよびデスクトップゲームを作成可能。[Apache2]
- Godot - 完全に機能するオープンソースMITライセンスに基づくゲームエンジン。[MIT]
- Grit - オープンワールド3Dゲームの実装に向けた無料ゲームエンジンの開発を支援するコミュニティプロジェクト。[MIT]
- Halley - C++14で書かれた軽量なゲームエンジンで、“真の”エンティティ・コンポーネントシステムを採用。[Apache 2.0]
- Hazel Game Engine - Hazelは主にWindows向けの初期段階のインタラクティブアプリケーションおよびレンダリングエンジン。[Apache-2.0ライセンス]
- IX-Ray Platform - X-Ray 1.6エンジンのフォークで、ゲーム体験の向上と修正開発の簡易化を目指す。[Modified MIT/非商用のみ]
- JNGL - Linux、Windows、macOS、Android、iOS、Xbox、Nintendo Switch、Web向けの2Dライブラリ。[zlib] website
- KlayGE - プラグインベースのアーキテクチャを持つクロスプラットフォームオープンソースゲームエンジン。[GPLv2] website
- nCine - パフォーマンスに重点を置いたクロスプラットフォーム2Dゲームエンジン。C++で記述され、オプションでLuaでスクリプト可能。[MIT] website
- o3de - Amazon Lumberyardをベースにした、リアルタイムかつマルチプラットフォームのオープンソース3Dエンジン。[Apache2] website
- OpenXRay - S.T.A.L.K.E.R.ゲームシリーズで使用される、コミュニティによって修正されたX-Rayエンジン。[Modified BSD/非商用のみ]
- Oxygine - クロスプラットフォーム2D C++ゲームエンジン。[MIT]
- Panda3D - PythonおよびC++プログラム向けの3Dレンダリングとゲーム開発用のゲームエンジンフレームワーク。[Modified BSD] website
- PixelGameEngine - javidx9のYouTube動画およびプロジェクトで使用されるolcPixelGameEngineの公式配布版。[OLC3]
- Polycode - C++でのクリエイティブコード向けのクロスプラットフォームフレームワーク(Luaバインディング付き)。[MIT] website
- quakeforge - 20年以上の開発歴を持つオリジナルQuakeエンジンコードの、活発に保守されているブランチ。[GPL-2.0]
- raylib - ビデオゲームプログラミングを楽しむためのシンプルで使いやすいライブラリ。[zlib/libpng] website
- Spring - 強力な無料のクロスプラットフォームRTSゲームエンジン。[GPLv2/GPLv3] website
- Torque2D - 2Dゲーム開発向けのオープンソースかつクロスプラットフォームC++エンジン。[MIT] website
- Torque3D - オープンソースC++エンジン。3Dゲーム開発向け。[MIT] website
- toy engine - toyは軽量かつモジュラリティの高いC++ゲームエンジンであり、フル機能の2Dまたは3Dゲームを高速反復で設計するためのシンプルかつ表現力の高いC++のidiomを提供。
- Urho3D - 軽量で、クロスプラットフォーム、2Dおよび3Dのゲームエンジン。C++で実装。OGREおよびHorde3Dに大きくインスパイアされた。[MIT]
- ezEngine - 無料でオープンソースのC++によるゲームエンジン。モジュール化と柔軟性を重視し、さまざまな用途に適応できるように設計されている。[MIT] website
グラフ
- CXXGraph - 無料のC++17グラフヘッダーのみライブラリ。表現とアルゴリズムの実行に使用。[AGPL-3.0]
- Graaf - 汎用的な軽量C++20グラフライブラリ。[MIT] website
GUI
グラフィカルユーザーインターフェース
- Boden - ネイティブ、モバイル、クロスプラットフォームGUIフレームワーク。[GPL/LGPL/プロプライエタリ] website
- Brisk - クロスプラットフォームC++20GUIフレームワーク。MVVM、反応性機能。スケーラブルで加速されたGPUレンダリング。[GPL/プロプライエタリ] website
- CEGUI - 柔軟でクロスプラットフォームのGUIライブラリ。
- Elements - 軽量で細かい、解像度に依存しない、モジュラリティの高いGUIライブラリ。[MIT]
- FLTK - 高速で軽量でクロスプラットフォームのC++GUIツールキット。[LGPL2]
- FOX Toolkit - オープンソースでクロスプラットフォームのウィジェットツールキット。[LGPL]
- GacUI - GPU加速されたC++UI、WYSIWYG開発ツール、XMLサポート、組み込みデータバインディングおよびMVVM機能を備えた。[Ms-PL]
- GTK+ - マルチプラットフォームでグラフィカルユーザーインターフェースを作成するためのツールキット。[LGPL]
- gtkmm - 人気のGUIライブラリGTK+の公式C++インターフェース。[LGPL]
- imgui - 最小限の依存関係を持つ即時モードGUI。[MIT]
- implot - imgui用の即時モードプロットウィジェット。[MIT]
- iup - マルチプラットフォームでグラフィカルユーザーインターフェースを作成するためのツールキット。[MIT]
- libui - シンプルでポータブル(ただし柔軟性が低い)なC言語によるGUIライブラリで、サポートする各プラットフォームのネイティブGUI技術を使用。[MIT]
- MyGUI - 高速で柔軟かつシンプルなGUI。[MIT]
- nana - Nanaは、現代C++スタイルによるGUIプログラミング用のマルチプラットフォームライブラリ。[Boost]
- NanoGui - OpenGL 3.x以上をサポートする極めてシンプルなマルチプラットフォームウィジェットライブラリ。[BSD]
- NAppGUI - ANSI-Cでクロスプラットフォームデスクトップアプリを構築するためのSDK。[MIT] website
- nuklear - ANSI CのシングルヘッダーGUIライブラリ。[PublicDomain]
- QCustomPlot - Qtによるプロットウィジェットで、追加の依存関係なし。[GPLv3]
- Qwt - 技術用途向けのQtウィジェット。[LGPLベースの独自開発]
- QwtPlot3D - 豊富な機能を備えたQt/OpenGLベースのC++ライブラリで、基本的に3Dウィジェットを提供。[zlib]
- RmlUi - HTML/CSSユーザーインターフェースライブラリの進化。libRocketのフォーク。[MIT]
- Saucer - 現代的でマルチプラットオーランC++のウェブビューライブラリ。[MIT]
- Sciter - Sciterは、現代のデスクトップアプリケーションのUI層として使用できる埋め込み型HTML/CSS/スクリプティングエンジン。[Free/Commercial]
- Slint - デスクトップおよび埋め込み用の軽量GUIツールキット。[GPL/無料/プロプライエタリ] website
- TGUI - クロスプラットフォームの現代的なC++GUI。[Zlib] website
- WebUI - 任意のウェブブラウザをGUIとして使用し、バックエンドに好む言語、フロントエンドにHTML5を使用。[MIT] website
- wxCharts - wxWidgetsアプリケーションでチャートを作成するためのライブラリ。[MIT] website
- wxWidgets - Windows、Mac OS X、Linuxおよびその他のプラットフォームで1つのコードベースでアプリケーションを開発できるC++ライブラリ。[独自開発LGPL]
- Yue - ネイティブなマルチプラットフォームGUIアプリケーションを作成できるライブラリ。[LGPLv2]
- GuiLite - すべてのプラットフォーム向けの最小サイズのヘッダーのみのGUIライブラリ(5KLOC)。[Apache-2.0]
- LCUI - C、XML、CSSを使ってユーザーインターフイールを構築できるCライブラリ。[MIT]
グラフィックス
- assimp - オープンアセットインポートライブラリ(assimp)は、異なる3Dアセットファイルフォーマットに対して共通APIを提供するクロスプラットフォーム3Dモデルインポートライブラリ。[BSD-3-Clause] website
- bgfx - マルチプラットフォームレンダリングライブラリ。[BSD]
- Blend2D - JITコンパイラを用いた2Dベクターグラフィックスエンジン。[Zlib] website
- Cairo - 複数の出力デバイスをサポートする2Dグラフィックスライブラリ。[LGPL2またはMozilla MPL]
- C-Turtle - C++11のヘッダーのみのチュートリアルグラフィックスライブラリで、CImgのラッパーとして機能。[MIT]
- Diligent Engine - 現代的でマルチプラットフォームの低レベル3Dグラフィックスライブラリ。[Apache2]
- DirectXTK - DirectX 11.xのC++コードを書くために必要なヘルパークラスのコレクション。[MIT]
- GLFW - シンプルでマルチプラットフォームのOpenGL操作ライブラリ。[zlib/libpng]
- GLFWPP - GLFW用の薄い現代C++17ヘッダーファイルだけのラッパー。[MIT]
- Harfang 3D 3D visualization library usable in C++, Python, Lua and Go. Based on BGFX. [GPLv3/LGPLv3/Proprietary] website
- herebedragons - さまざまなエンジン、フレームワークまたはAPIで実装された基本的な3Dシーン。[MIT] website
- Horde3D - 小さな3D描画およびアニメーションエンジン。[EPL]
- Ion - クロスプラットフォームのクライアントまたはサーバーアプリケーションに3Dグラフィックスを使用するための軽量かつ効率的なライブラリセット。[Apache2] website
- Irrlicht - C++で書かれた高性能リアルタイム3Dエンジン。[zlib]
- libigl - シンプルなC++幾何処理ライブラリ。[MPL2]
- LLGL - 低レベルグラフィックスライブラリ(LLGL)は、現代のグラフィックスAPIに対する薄い抽象化層である。[BSD-3-Clause]
- LunaSVG - C++で書かれたスタンドアローンSVG描画ライブラリ。[MIT]
- magnum - ゲームやデータ可視化向けの軽量かつモジュール化されたC++11/C++14グラフィックスミドルウェア。[MIT] website
- MESHLIB - 3Dデータ処理効率を高めるためのSDK。[無料/商業利用] website
- micro-gl - リアルタイム、埋め込み可能なヘッダーのみC++11CPUベクターグラフィックス。STDライブラリ、FPU、GPUは不要。[CUSTOM] website
- NanoVG - OpenGLに基づくアンチエイリアス2Dベクターディスプレイライブラリ(UIおよび可視化用)。[Zlib]
- Ogre 3D :zap: - シーン指向、リアルタイム、柔軟な3Dレンダリングエンジン(ゲームエンジンとは異なり)。C++で構築。[MIT] website
- OpenSceneGraph - オープンソースの高性能3Dグラフィックスツールキット。[OSGPL]
- OpenSubdiv - Pixarのサブディビジョン表面の評価および描画(CPUおよびGPU)用のライブラリ。[Modified Apache2]
- OpenVDB - ボリュームデータセットの保存、編集、描画用のライブラリとツール。[MPL2]
- Panda3D - PythonおよびC++用の3D描画およびゲーム開発フレームワーク。[BSD]
- Partio - 粒子データの処理用のライブラリで、ほとんどの一般的なファイルフォーマットに対応。[Modified BSD]
- Skia - 2Dグラフィックライブラリ。テキスト、幾何学、画像の描画に使用。[BSD] website
- ThorVG - プラットフォームに依存しないポータブルなライブラリで、ベクターベースのシーンやアニメーションの描画を可能にする。SVGおよびLottieを含む。[MIT] website
- TinySpline - 任意のNURBS、B-Splines、Bézier曲線の補間、変換、クエリを行うための、小さなながらも強力なANSI Cライブラリ。[MIT]
- urho3d - クロスプラットフォームの描画およびゲームエンジン。[多くの異なる、主にMIT]
- Yocto/GL - データ駆動型物理ベースグラフィックス用の小さなC++ライブラリ。[MIT]
- olive.c - シンプルな2Dグラフィックスライブラリ。[MIT]
画像処理
- avir - 高品質なPro HDR画像リサイズおよび高速SIMD Lanczosリサイズ。[MIT]
- Boost.GIL - 一般用途の画像ライブラリ。[Boost] website
- BitmapPlusPLus - シンプルで高速なヘッダーオンリービットマップC++ライブラリ。[MIT]
- CImg - 小さなオープンソースC++ツールキット(画像処理用)。[Own LGPL or GPL]
- CxImage - 画像処理および変換ライブラリ(BMP、JPEG、GIF、PNG、TIFF、MNG、ICO、PCX、TGA、WMF、WBMP、JBG、J2K画像の読み込み、保存、表示、変換)。[zlib]
- Dlib :zap: - C++11による現代的な機械学習、コンピュータビジョン、数値最適化、ディープラーニングのツールキット。[Boost] website
- fpng - スーパーファスト C++ .PNG ファイルのライターやリーダー。[Unlicense]
- FreeImage - 人気のグラフィック画像フォーマットや、現代のマルチメディアアプリケーションが必要とする他のフォーマットをサポートするオープンソースライブラリ。[GPL2 または GPL3]
- GD - GDグラフィックスライブラリ。PHPで画像の読み込み/操作およびサムネイル生成に有名。[カスタム許容ライセンス、ユーザードキュメントに記載を要] website
- DCMTK - DICOM ツールキット。
- GDCM - 基礎的な DICOM ライブラリ。
- ITK - 画像解析用のオープンソース、マルチプラットフォームシステム。[ITK 4.0からのApache2]
- [Jpegli][https://github.com/google/jpegli] - 画像処理に関するC++/Cライブラリ、ソフトウェア、または資料です。
- Leptonica - Leptonicaは、画像処理および画像分析アプリケーションに広く利用できるソフトウェアを含むオープンソースライブラリ。[BSD-2-Clause] website
- libavif - .avifファイルのエンコードおよびデコード用のライブラリ。[BSD-2-Clause]
- libfacedetection - 画像内の顔検出に使用できるオープンソースライブラリ。顔検出速度は1500FPSに達する。[BSD]
- libjpeg-turbo - SIMD指令を使用して、ベースラインJPEGのエンコードおよびデコードを加速するJPEG画像コーデック。[IJG & BSD-3-Clause & zlib] website
- libjxl - JPEG XL画像フォーマットのリファレンス実装。[BSD-3-Clause]
- libpng - PNG(Portable Network Graphics)レターグラフィックファイルを読み取り、作成、操作するアプリケーション向けのリファレンスライブラリ。[libpng-2.0] website
- libspng - シンプルで現代的なlibpngの代替ライブラリ。[BSD-2] website
- libvips - メモリ使用量が少ない高速画像処理ライブラリ。[LGPL] website
- LodePNG - CおよびC++でのPNGエンコーダーとデコーダー。[Zlib]
- Magick++ - C++用のImageMagickプログラムインターフェース。[Apache2]
- MagickWnd - C用のImageMagickプログラムインターフェース。[Apache2]
- MozJPEG - 改善されたJPEGエンコーダー。[BSD/BSD-3-Clause/ZLIB]
- OpenCV :zap: - 開源のコンピュータビジョン。[Apache2] website
- OpenEXR - 高動的範囲画像用のマルチプラットフォームライブラリ。[Modified BSDF]
- OpenImageIO - 強力な画像およびテクスチャ処理ライブラリで、多くの一般的な損失性およびRAWフォーマットをサポート。[Modified BSD]
- OpenJPEG - C言語で書かれたオープンソースJPEG 2000コーデック。[BSD-2-Clause]
- PlutoFilter - C言語で書かれた、シングルヘッダー、ゼロ割り当ての画像フィルタライブラリ。[MIT]
- QOI - 「Quite OK Image Format」、高速かつ無損失画像圧縮用のフォーマット。[MIT]
- SAIL - 使いやすいマルチプラットフォーム画像デコードライブラリで、プラグイン可能な画像コーデックをサポート。[MIT]
- Simd - SIMD(SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX-512、VMX(Altivec)、VSX(Power7)、NEON for ARM)を用いたC++画像処理ライブラリ。[MIT]
- stb-image - STBシングルヘッダー画像ロードライブラリ。[Public Domain]
- tesseract-ocr - OCRエンジン。[Apache2]
- TinyDNG - ヘッダーのみのC++ Tiny DNG/TIFFローダーとライターライブラリ。[MIT]
- TinyEXIF - JPEG用の軽量なC++ EXIFおよびXMP解析ライブラリ。ISO準拠。[MIT]
- TinyTIFF - 軽量なTIFFリーダー/ライターライブラリ。[GPL-3.0]
- Video++ - C++14による高性能な動画および画像処理ライブラリ。[MIT]
- VIGRA - 画像解析用の一般目的C++コンピュータビジョンライブラリ。[MIT X11]
- VTK - 3Dコンピュータグラフィックス、画像処理および可視化用オープンソースソフトウェアシステム。[BSD]
- OpenImageDenoise - レイトレース画像用の高性能かつ高品質なノイズ除去ライブラリ。[Apache-2.0] website
- bitmap - BMP画像ファイルの読み書きおよび処理用のC++ビットマップライブラリ。[MIT]
国際化
- gettext - GNU ‘gettext’. [GPL2]
- IBM ICU - C/C++およびJava用のUnicodeおよびグローバリゼーションサポートを提供するライブラリセット。[ICU]
- libiconv - 異なる文字エンコーディング間のエンコーディング変換ライブラリ。[GPL]
- simdutf - Unicodeルーチン(UTF8、UTF16、UTF32):SSE2、AVX2、NEON、AV及512を使用して10億文字/秒。[Apache-2/MIT]
- uni-algo - C/C++用のUnicodeアルゴリズム実装。[UnlicenseまたはMIT]
- utf8.h - CおよびC++用の単一ヘッダーUTF8文字列関数。[Unlicense]
- utf8proc - UTF-8 Unicodeデータ処理用のシンプルなCライブラリ。[MIT]
プロセス間通信
- Apache Thrift - 効率的なマルチ言語間のIPC/RPC、C++、Java、Python、PHP、C#、その他多くの言語間で動作。元はFacebookが開発。[Apache2]
- Boost.Interprocess - ヘッダーのみのBoostライブラリで、キーワードレベルの共有メモリおよびメモリマップファイルをサポートし、組み込みの同期機構(セマフォ、ミューテックスなど)を提供。[Boost] website
- bRPC - bRPCはC++を用いた工業レベルのRPCフレームワークで、検索、ストレージ、機械学習、広告、推薦など、高性能システムでよく使用される。[Apache2] website
- Cap’n Proto - 高速データ交換フォーマットと、能力ベースのRPCシステム。[MIT] website
- eCAL - パブリッシュ/サブスクライブ、クライアント/サーバー、C++/Python/C#、さまざまなメッセージプロトコル(protobuf、capnprotoなど)。[Apache2] website
- gRPC - 高性能、オープンソース、汎用的なRPCフレームワーク。[BSD] website
- Ice - C++、C#、Java、JavaScript、Pythonなどに対応する包括的なRPCフレームワーク。[GPLv2]
- iceoryx - 安全性が求められるシステム向けの真のゼロコピープロセス間通信フレームワーク。C、Rustのバインディングを提供。Linux、QNX、Windows、Mac OS、FreeBSDで動作。[Apache2] website
- libjson-rpc-cpp - C++サーバーおよびクライアント用のJSON-RPCフレームワーク。[MIT]
- nanomsg - いくつかの「スケーラビリティプロトコル」のシンプルかつ高性能な実装。[MIT] website
- nng - nanomsg-next-generation、軽量なブローカーレスメッセージングライブラリ。[MIT] website
- rpclib - 現代的なC++ msgpack-RPCサーバーおよびクライアントライブラリ。[MIT]
- simple-rpc-cpp - C/C++関数へのシンプルなRPCラッパー生成ツール。[BSD]
- SRPC - 軽量なRPCシステムで、複数のプロトコルとOpenTelemetryをサポート。[Apache2]
- WAMP - RPCおよびpub/subメッセージングパターンを提供。 (さまざまな実装、さまざまな言語)
- xmlrpc-c - XMLおよびHTTPに基づく軽量なRPCライブラリ。[BSD]
JSON
- Boost.PropertyTree - XML/JSON/INI/Infoファイルをパース・生成できるプロパティツリー解析・生成ライブラリ。[Boost] website
- cJSON - ANSI Cによる超軽量JSONパーサー。[MIT]
- DAW JSON Link - C++での高速かつ使いやすいJSONシリアライズとパーサー。[BSL-1.0]
- frozen - C/C++用のJSONパーサーおよびジェネレーター。[GPL & GPL2]
- Glaze - 非常に高速でメモリ内に収まる、現代C++用のJSONおよびインターフェースライブラリ。[MIT]
- Jansson - JSONデータのエンコード、デコード、操作を行うCライブラリ。[MIT]
- jbson - jbsonはC++14でBSONデータおよびJSONドキュメントの構築とイテレーションを行うライブラリ。[Boost]
- JeayeSON - 非常に健全な(ヘッダーのみ)C++ JSONライブラリ。[BSD]
- Jsmn - C言語によるミニマリズムJSONパーサー。[MIT]
- json :zap: - モダンC++用のJSON。[MIT] website
- json.cpp - C++用のバロアなJSONパーサー/シリアライズライブラリ。[Apache-2.0]
- json.h - CおよびC++でのJSONパーサーをシンプルに実現する、1ヘッダー1ソースのソリューション。[Unlicense]
- json-build - C89によるゼロ割り当てJSONシリアライザー。[MIT]
- json-c - C言語によるJSON実装。[MIT]
- jsoncons - JSONおよびJSONに類似するバイナリフォーマット、JSONPointer、JSONPatch、JSONPathおよびJMESPathをサポートするC++ヘッダーのみライブラリ。[Boost]
- JsonCpp - C++でJSONと相互作用するためのライブラリ。[MIT]
- Jsonifier - JSONから/へのオブジェクトのパーサーおよびシリアライズ用のクラス数少ないが非常に高速。[MIT]
- jsonParse - ANSI CによるシンプルなJSONパーサー。[MIT]
- json-parser - 非常に小さなフットプリントのJSONパーサー。ANSI Cで書かれた。[BSD]
- json-struct - 高性能、シングルヘッダーJSONパーサー。C++構造体へのパースと出力。[MIT]
- json-voorhees - C++用JSONライブラリ。C++11対応。依存関係なし。高速で開発者フレンドリー。[Apache2]
- JSON Toolkit - C++20用JSON、JSON Pointer、JSON Schema、JSONLライブラリ。[AGPL/Commercial]
- jute - 非常にシンプルなC++JSONパーサー。[PublicDomain]
- libjson - C言語によるJSONパーサーおよびプリントライブラリ。任意のモデルと簡単に統合可能。[LGPL]
- libjson - 軽量JSONライブラリ。[?]
- LIBUCL :zap: - 万能構成ライブラリパーサー。[BSD-2-Clause]
- meojson - 次世代C++JSON/JSON5シリアル化エンジン|依存関係なし|ヘッダーのみ|JSONの可能性を解放。[MIT]
- parson - ParsonはC言語で書かれた軽量JSONライブラリ。[MIT]
- PicoJSON - ヘッダーのみのC++JSONパーサー・シリアライザ。[BSD]
- qt-json - JSONデータをQVariant階層にパースし、逆に変換するためのシンプルクラス。[GPLv3]
- RapidJSON :zap: - C++用の高速JSONパーサー/ジェネレーター。SAX/DOMスタイルのAPIを提供。[MIT] website
- sajson - 軽量かつ極めて高性能なC++11用JSONパーサー。[MIT]
- simdjson - 1秒あたりギガバイトのJSONをパースできる極めて高速なJSONライブラリ。[Apache-2.0]
- Sonic-Cpp - SIMDによる高速化されたJSONシリアル化・デシリアライズライブラリ。[Apache-2.0]
- taoJSON - 依存関係なしのC++ヘッダーのみJSONライブラリ。[MIT]
- ujson - µjsonは小さな、C++11、UTF-8、JSONライブラリ。[MIT]
- UltraJSON - 極めて高速なC言語によるJSONデコーダおよびエンコーダ。[BSD-3-Clause]
- YAJL - C言語による高速ストリーミングJSONパーサー。[ISC]
- yyjson - ANSI Cで書かれた高性能JSONライブラリ。[MIT]
- libdart - 高性能でネットワーク最適化されたJSON操作ライブラリ。[MIT]
ロギング
- Abseil Logging - Abseil Loggingライブラリは、ログメッセージをstderr、ファイル、またはその他のスイッチへ出力するための機能を提供する。[Apache-2.0]
- Blackhole - 属性ベースのログ記録フレームワークで、高速かつモジュラーで高度にカスタマイズ可能に設計されています。[MIT]
- Boost.Log - 非常にモジュール化され、拡張性が高く設計されています。[Boost] website
- BqLog - 「Honor of Kings」などのプロジェクトで使用されている軽量かつ高性能なログ記録システム。[Apache-2.0]
- fmtlog - ナノ秒単位の遅延をもつ、fmtlibスタイルのパフォーマンスに優れたログライブラリ。[MIT]
- G3log - ダイナミック・シンクを備えた非同期ログ記録。[PublicDomain]
- glog - Googleログ記録モジュールのC++実装。
- haclog - 極めて高速なシンプルCログライブラリ。[MIT]
- Log4cpp - ファイル、syslog、IDSAなどへの柔軟なログ記録を可能にするC++クラスライブラリ。[LGPL]
- log4cplus - シンプルで使いやすいC++ログAPI。スレッドセーフで、柔軟かつ任意の粒度でログ管理と設定を制御できます。[BSD & Apache2]
- loguru - 軽量なC++ログライブラリ。[PublicDomain]
- lwlog - 非常に高速な同期および非同期C++17ログライブラリ。[MIT]
- ng-log - アプリケーションレベルログ記録用のC++14ライブラリ。[BSD-3-Clause]
- plog - 1000行未満のコードで実現する、ポータブルかつシンプルなC++ログ。[MPL2]
- reckless - 低遅延、高スループットの非同期ログ記録ライブラリ。[MIT]
- spdlog - 非常に高速なヘッダーのみのC++ログライブラリ。
- templog - 非常に小さく軽量なC++ライブラ特で、あなたのC++アプリケーションにログ機能を追加できます。[Boost]
- P7Baical - CPUおよびメモリの使用量が最小限である高速なテレメトリおよびトレースデータ送信用オープンソース・クロスプラットフォームライブラリ。[LGPL]
- Quill - 非同期・クロスプラットフォーム・低遅延ログ記録ライブラリ。[MIT]
- logfault - シンプルで洗練され、効率的なC++ヘッダーのみのログ記録ライブラリ。[MIT]
機械学習
- Caffe - ニューラルネットワーク向けの高速フレームワーク。[BSD]
- catboost - 高速でスケーラブルかつ高パフォーマンスな決定木ベースの勾配ブーストライブラリ。[Apache2]
- CCV - Cベース/キャッシュ/コアコンピュータビジョンライブラリ、現代的なコンピュータビジョンライブラリ。[BSD]
- darknet - CおよびCUDAで書かれたオープンソースのニューラルネットワークフレームワーク。[公的領域] website
- Dlib :zap: - C++11による現代的な機械学習、コンピュータビジョン、数値最適化、ディープラーニングのツールキット。[Boost] website
- FAISS - 密度ベクトルの効率的な類似性検索およびクラスタリングに用いるライブラリ。[MIT]
- FANN - C言語で書かれた高速人工神経ネットワークライブラリ。[LGPL]
- Fido - 埋め込み電子機器およびロボティクス向けに高度にモジュラリズドなC++機械学習ライブラリ。[MIT] website
- flashlight - Facebook AI Researchが開発した、C++で完全に実装された高速かつ柔軟な機械学習ライブラリ。ArrayFireのテンソルライブラリをベースにしている。[BSD-3-Clause] website
- ggml - 16ビットおよび4ビット量子化をサポートする機械学習用テンソルライブラリ。[MIT]
- libsvm - サポートベクターマシン向けシンプルで使いやすく、効率的なライブラリです。[BSD-3-Clause] website
- m2cgen - 訓練済み古典MLモデルをゼロ依存のネイティブCコードに変換するCLIツール。[MIT]
- MeTA - 現代的なC++データサイエンスツールキット。[MIT]
- Minerva - 深層学習に適した高速で柔軟なシステム。[Apache2]
- mlpack - スケーラブルなC++機械学習ライブラリ。[LGPLv3] website
- ncnn - モバイルプラットフォーム向けに最適化された高性能ニューラルネットワーク推論計算フレームワーク。[BSD]
- OpenCV :zap: - 開源のコンピュータビジョンライブラリ。[BSD] website
- oneDAL - 大規模データ分析を加速する強力な機械学習ライブラリ。[Apache]
- ONNX runtime - ONNXモデルの訓練および推論用のCおよびC++ライブラリ。ONNXは、訓練に使用したライブラリに関係なくAIモデルを変換できる標準である。[MIT] website
- Recommender - 協調フィルタリング(CF)を用いた商品推薦/提案用Cライブラリ。[BSD]
- RNNLIB - RNNLIBは、シーケンス学習問題向けの再帰的ニューラルネットワークライブラリ。[GPLv3]
- SHOGUN - ショグン機械学習ツールボックス。[GPLv-3]
- sofia-ml - 機械学習用の高速インクリメンタルアルゴリズムのセット。[Apache2]
- USearch - ベクトルおよび文字列の高速検索およびクラスタリングライブラリ。[Apache2]
- VLFeat - VLFeatオープンソースライブラリは、画像理解および局所特徴量の抽出とマッチングに特化した人気のあるコンピュータビジョンアルゴリズムを実装しています。[BSD-2-Clause] website
- xgboost - スケーラブルで、ポータブルかつ分散型の勾配ブースト(GBDT、GBRTまたはGBM)ライブラリ。Python、R、Java、Scala、C++などに対応。単一マシン、Hadoop、Spark、FlinkおよびDataFlowで動作。[Apache2]
- TensorComprehensions - 完全に機能するC++ライブラリで、自動的に高性能機械学習カーネルを合成。[Apache-2.0]
- kann - 軽量なC言語による人工神経ネットワークライブラリ。[MIT]
数学
- Apophenia - 統計および科学計算用のCライブラリ。[GPL2]
- Armadillo - 線形代数および科学計算向け高速C++ライブラリ。[Apache2] website
- autodiff - 自動微分用の現代的、高速かつ表現力の高いC++ライブラリ。[MIT] website
- blaze - 密度および稀疏算術用の高性能C++数学ライブラリ。[BSD]
- Boost.Multiprecision - C++で高精度・高範囲の整数、有理数、浮動小数点型を提供し、ヘッダーのみまたはGMP/MPFR/LibTomMathのバックエンドで使用可能。 [Boost] website
- ceres-solver - Googleによる大規模複雑非線形最小二乗問題のモデリングおよび解決用C++ライブラリ。[BSD]
- CGAL - 効率的で信頼性の高い幾何学アルゴリズムのコレクション。[LGPL&GPL] website
- cml - 設定可能な数学ライブラリ。[Boost]
- CNL - C++用の組み立て型数値ライブラリ。[Boost]
- DirectXMath - ゲームやグラフィックスアプリで使用可能な、すべてインラインのSIMD C++線形代数ライブラリ。
- Dlib :zap: - C++11による現代的な機械学習、コンピュータビジョン、数値最適化、ディープラーニングのツールキット。[Boost] website
- Eigen - 線形代数、行列およびベクトル演算、数値ソルバーおよび関連アルゴリズムに関するテンプレートヘッダーによるC++の高度なライブラリ。[MPL2]
- ExprTk - C++の数学式ツールキットライブラリ(ExprTk)は、使いやすく、統合しやすく、実行時数学式のパーサーおよび評価エンジンとして非常に効率的です。[MIT]
- Fastor - 現代C++向けの軽量かつ高性能なテンソル代数フレームワーク。[MIT]
- geo-utils-cpp - 球面の緯度経度幾何学に関するC++17ヘッダーのみライブラリ:距離、方位、面積、多角形内点判定。[Apache2]
- Geometric Tools - 数学、グラフィックス、画像解析、物理学分野での計算に用いられるC++ライブラリ。[Boost] website
- GLM - OpenGLのGLSL数学と一致し、互換性を保つヘッダーファイルのみのC++数学ライブラリ。[MIT] website
- GMTL - グラフィックス数学テンプレートライブラリは、グラフィックスプリミティブを一般化した方法で実装したツールのコレクションです。[GPL2]
- GMP - 任意精度算術を扱うCライブラリ:符号付き整数、有理数、浮動小数点数。[LGPL3 & GPL2]
- Klein - 高速かつSIMD最適化されたC++17の幾何学代数ライブラリ。点、線、平面の投影、交点、結合、剛体運動などに対応。[MIT] website
- libfixmath - クロスプラットフォーム固定小数点数学ライブラリ。[MIT]
- linalg.h - C++用のシングルヘッダー、パブリックドメイン、短ベクトル数学ライブラリ。[Unlicense]
- MATIO - MATLAB MATファイルの入出力ライブラリ。[BSD-2-Clause] website
- MatX - MATLAB/Pythonのような構文を持つGPU加速C++17数値計算ライブラリ。[BSD 3-clause]
- mexce - スケーラー数学式向けのシングルヘッダー、依存関係なしのJITコンパイラ。最適化されたx87 FPUマシンコードを生成。[BSD]
- MIRACL - 高精度整数および有理数算術暗号ライブラリ。[AGPL]
- NumCpp - Python Numpyライブラリのテンプレート化されたヘッダーのみC++実装。[MIT]
- NumKong - 16種類の数値型向けのSIMD加速距離、ドット積、行列演算、地理および幾何学のカーネル。[Apache2](以前はSimSIMDと呼ばれていた)
- OMath - C++23で書かれたクロスプラットフォームの汎用数学ライブラリ。チートやゲーム開発に適しています。[ZLIB]
- muparser - muParserはC++で書かれた拡張性と高性能を備えた数学式パーサーライブラリ。[MIT]
- LibTomMath - 完全にCで書かれた無料オープンソースの汎用数論マルチプレシジョン整数ライブラリ。[PublicDomain & WTFPL] website
- linmath.h - グラフィックスプログラミング向けの軽量線形数学ライブラリ。[WTFPL]
- lp_solve - 線形計画問題の設定と解決に用いられるライブラリ。[LGPL] website
- OpenBLAS - GotoBLAS2 1.13 BSD版に基づく最適化されたBLASライブラリ。[BSD 3-clause] website
- PCG-rand - PCGは、シンプルで高速かつ空間効率が高く、統計的に優れた乱数生成アルゴリズムのファミリーです。多くの汎用乱数生成器とは異なり、これらは予測が難しいです。[Apache]
- QuantLib - 定量金融向けの無料・オープンソースライブラリ。[Modified BSD] website
- sebsjames/maths - テンプレートを用いたC++20数学ライブラリ。クライアント開発者の利便性と快適性を重視( mathplot で使用)。[Apache2] website
- StatsLib - 統計分布関数を提供するC++ヘッダーのみのライブラリ。[Apache2] website
- SymEngine - 高速シンボリック操作ライブラリ。SymPyの核心をC++で再実装したもの。[MIT]
- TinyExpr - 文字列から数学式をパース・評価するCライブラリ。[zlib]
- Vc - C++用のSIMDベクトルクラス。[BSD]
- Versor - ユークリッド、射影、コンフォーマル、時空(など)を含む一般の幾何学代数用の(高速)C++テンプレートライブラリ。
- Wagyu - 結合、交差、差、XORなどの幾何演算を実行する一般ライブラリ。[mapbox-wagyu original]
- wide-integer - Wide-Integerはuint128_t、uint25及、uint512_t、uint1024_tなど、汎用的なC++テンプレートを実装。[BSL-1.0]
- Wykobi - 効率的で堅牢かつ使いやすいC++2D/3D向け計算幾何ライブラリ。[MIT]
- xtensor - 多次元配列表現に着目したC++14数値解析ライブラリ。NumPyの構文にインスピレーションを得ている。[BSD 3-clause] website
- universal - 任意のposit算術を実装するC++14ヘッダーのみライブラリ。posit数はIEEE浮動小数点より効率的な傾斜浮動小数点であり、計算科学の再現性を実現する。[MITライセンス]
- utl::random - モンテカルロシミュレーションおよびゲーム開発向けの高速乱数を実装するC++17ヘッダーのみライブラリ。[MIT]
- XAD - C++向けの強力な自動微分ライブラリ。[AGPL] website
- geogram - 幾何アルゴリズムを実装するプログラミングライブラリ。[BSD-3-Clause]
- std-simd - C++用のstd::simdのポータブル実装。[BSD-3-Clause] :experimental:
- libdivide - libdivideを用いたC/C++向けの最適化された整数除算。[zlib] website
- fpsqrt - C用の高速固定小数点および浮動小数点平方根。[MIT]
- fastmod - 剰余計算およびモジュラー減算を高速に計算するヘッダーのみC/C++ライブラリ。[Apache-2.0]
- Spectra - 大規模固有値問題を解くためのC++ライブラリ。Eigenに基づいている。[MPL2] website
- FastNoiseSIMD - SIMDを活用したノイズ生成関数のライブラリ。[MIT]
メモリ割り当て
- Boehm GC - CおよびC++向けの保守的なガベージコレクタ。[X11に類似] website
- C Smart Pointers - (GNU)Cプログラミング言語向けのスマートポインタ。[MIT]
- Hoard - Linux、Windows、Mac向けの高速かつスケーラブルでメモリ効率の良いmalloc。[Apache-2.0] website
- jemalloc - フラグメント化を避け、スケーラブルな並列処理を強調した一般用途のmalloc(3)実装。[BSD] website
- memory - STLと互換性のあるC++メモリ割り当てライブラリ。[ZLib]
- memory-allocators - 動的メモリ割り当てのパフォーマンス向上を目的としたカスタムメモリ割り当てライブラリ。[MIT]
- mimalloc - コンパクトで汎用的なメモリ割り当てライブラリで、非常に優れたパフォーマンスを実現。[MIT]
- rpmalloc - クロスプラットフォームでロックフリーのスレッドキャッシュ16バイトアライメントメモリ割り当てをCで実装。[PublicDomain]
- snmalloc - メッセージ伝達に基づく高性能メモリ割り当てライブラリ。[MIT]
- TCMalloc - Googleの高速かつマルチスレッド化されたmalloc実装。[Apache-2.0] website
- buddy_alloc - Cで構築された、ヘッダー単体のバディメモリアロケータ。割り当てコストが限定されている。[0BSD]
- tgc - Cで書かれた約500行のコードによるミニガベージコレクタ。[BSD]
- Mesh - C/C++アプリケーションのメモリ消費量を自動的に削減するメモリアロケータ。[Apache-2.0]
- rpmalloc - 公開ドメインのクロスプラットフォーム、ロックフリースレッドキャッシュ、16バイトアライメントのメモリアロケータ。[PublicDomain]
- TLSF - 二段階セグレゲートフィットメモリアロケータ、汎用動的メモリアロケータ。[BSD]
マルチメディア
- GStreamer - メディアハンドリングコンポーネントのグラフを構築するためのライブラリ。[LGPL]
- icey - リアルタイムメディアスタックと、RTSP受信、メディア処理、シグナリング、TURN、ブラウザ配信に用いる軽量libwebrtc代替品。C++20で構築。[LGPL v2.-+]
- libass - ASS/SSAサブタイットフォーマット向けのポータブルサブタイットレンダラー。[ISC]
- libav - オーディオ、動画、字幕および関連メタデータなどのマルチメディアコンテンツを処理するためのライブラリとツールのコレクション。[LGPL v2.1+ およびその他] website
- LIVE555 Streaming Media - RTP/RTCP、RTSP、SIPなどのオープンスタンダードプロトコルを用いたマルチメディアストリーミングライブラリ。[LGPL]
- libVLC - libVLC (VLC SDK) メディアフレームワーク。[GPL]
- MediaInfoLib - 動画およびオーディオファイルの技術的およびタグデータを統合的に表示するための便利なツール。[BSD]
- QtAv - QtおよびFFmpegに基づくマルチメディア再生フレームワーク。プレイヤーを簡単に作成できる。[LGPL] website
- SDL :zap: - シンプル・ディレクト・メディア・レイヤー。[zlib] website
- SFML :zap: - シンプルで高速なマルチメディアライブラリ。[zlib] website
- TagLib - 複数のポピュラーなオーディオフォーマットのメタデータを読み取り・編集できるライブラリ。[LGPL/MPL] website
ネットワーク
- ada - WHATWG準拠で高速なURLパーサー。現代C++で書かれた。[Apache-2.0/MIT]
- ACE - C++で構築されたオブジェクト指向ネットワークプログラミングツールキット。[?MIT?]
- AGENT++ - C++フレームワークは、SNMP v1/2c/3プロトコルエンジンとディスパッチャを提供し、SNMPエージェントの開発に利用可能。[Apache-2.0]
- Boost.Asio :zap: - ネットワークおよび低レベルI/Oプログラミング用のプラットフォームを問わず使えるC++ライブラリ。[Boost] website
- Boost.Beast :zap: - C++11でBoost.AsioをベースにしたHTTPおよびWebSocketライブラリ。[Boost] website
- Breep - イベントベース、C++14のハイレベルペアツーペアライブラリ。[EUPL-1.1 (OSI approved)]
- C++ REST SDK - C++ REST SDK(以前はCasablancaと呼ばれていた)。[Apache2]
- CZMQ - ØMQ用の高レベルCバインディング。[MPL2] website
- Restbed - C++11の非同期RESTフレームワーク。[AGPL]
- Restinio - ヘッダーのみのC++14ライブラリで、埋め込みHTTP/ウェブソケットサーバーを提供。[BSD]
- c-ares - 非同期DNSリクエストに用いるCライブラリ。[MIT]
- cofetch - libcurlのmultiインターフェースとASIOに基づく、連鎖可能な非同期HTTPクライアント。コールバック、コルーチン、ファイアから一つの実装。[MIT]
- cpp-httplib - C++11のヘッダーのみのHTTP/HTTPSサーバーライブラリ。[MIT]
- cpp-netlib - 高度なネットワークプログラミング向けのオープンソースライブラリのコレクション。[Boost]
- cpp-netlib/uri - C++用のURIパーサー/ビルダーライブラリ。RFC 3986およびRFC 3987と互換。[Boost]
- CppServer - 超高速かつ低遅延の非同期ソケットサーバー&クライアントC++ライブラリ。TCP、SSL、UDP、HTTP、HTTPS、WebSocketプロトコルおよび10K接続問題の解決をサポート。[MIT]
- cpr - シンプルで強力なインターフェースを持つ現代的なC++HTTPリクエストライブラリ。PythonのRequestsモジュールをモデルにしている。[MIT] website
- curlcpp - CURL(libcurl)向けのオブジェクト指向C++ラッパー。[MIT]
- curlpp -C++ wrapper around libcURL. [MIT]
- DPDK - データプレーン開発キット、パケット処理用のライブラリおよびドライバー。[BSD-3-Clause & GPL-2.0] website
- ENet - 信頼性のあるUDPネットワークライブラリ。[MIT] website
- evpp - TCP/UDP/HTTPプロトコルを用いたC++の高性能ネットワークライブラリ。[BSD]
- FTP client for C++ - FTPリクエストを送るためのC++クライアント。[MIT]
- H2O - HTTP/1.xおよびHTTP/2をサポートする最適化されたHTTPサーバー。ライブラリとして使用することも可能。[MIT]
- KCP - ネットワーク遅延を減らすための高速かつ信頼性の高いARQプロトコル。[MIT]
- libcurl - マルチプロトコルファイル転送ライブラリ。[MIT/X derivative license]
- libhttpserver - 埋め込みRest HTTPサーバー(その他も)を作成するためのC++ライブラリ。[LGPL2.1]
- Libmicrohttpd - GNU libmicrohttpdは、別のアプリケーションにHTTPサーバーを組み込むことを容易にする小さなCライブラリ。[LGPL v2.-+]
- libpcap - ネットワークトラフィックキャプチャ用のポータブルC/C++ライブラリ。[BSD] website
- libquic - ChromiumのQUIC実装から抽出されたQUICプロトコルライブラリ。[BSD]
- librdkafka - CおよびC++向けのApache Kafkaクライアントライブラリ。[BSD-2-Clause]
- libwebsockets - 軽量な純CのWebSocket実装で、クライアントおよびサーバーのライブラリを提供。[LGPL2.1 + static link exception] website
- Lithium - C++専門の知識がなくても、高性能C++HTTPサーバーを構築できる。[MIT]
- lwIP - 軽量なTCP/IPスタック。[Modified BSD]
- mailio - mailioは、MIMEフォーマットおよびSMTP、POP3、IMAPプロトコル向けのマルチプラットフォームC++ライブラリ。[BSD]
- Mongoose - 極めて軽量なウェブサーバー。[GPL2]
- MQTT-C - エントリーモデルおよびPC向けの埋め込みシステム用のポータブルMQTTCクライアント。[MIT] website
- mTCP - マルチコアシステム向けの高度にスケーラブルなユーザレベルTCPスタック。[Modified BSD]
- Muduo - Linuxにおけるマルチスレッドサーバー向けのC++非ブロッキングネットワークライブラリ。[BSD]
- nghttp2 - HTTP/2Cライブラリ。[MIT] website
- nghttp3 - Cで書かれたHTTP/3ライブラリ。[MIT] website
- Onion - Cで構築された軽量かつ使いやすいHTTPサーバーライブラリ。[Apache2/GPL2]
- OpenDDS - オープンソースのC++実装のオブジェクト管理グループ(OMG)データ配布サービス(DDS)。[Apache2]
- PF_RING™ - 高速パケット処理フレームワーク。[LGPL-2.1] website
- PicoHTTPParser - 非常に小さな、基本的な、高速なHTTPリクエスト/レスポンスパーサー。[MIT]
- POCO :zap: - デスクトップ、サーバー、モバイル、埋め込みシステムで動作するネットワークおよびインターネットベースアプリケーションのためのC++クラスライブラリおよびフレームワーク。[Boost] website
- Proxygen - フェイスブックのC++ HTTPライブラリコレクション。使いやすいHTTPサーバーを含む。[BSD]
- RedPanda - 開発者向けのストリーミングデータプラットフォーム。Kafka APIと互換。10倍速。[BSL]
- RakNet - マルチプラットフォーム対応、オープンソース、C++のネットワークエンジン。ゲーム開発者向け。[BSD]
- restclient-cpp - C++用のシンプルなRESTクライアント。HTTPリクエストにはlibcurlをラップ。[MIT]
- Seasocks - シンプルで小型の、C++に埋め込み可能なウェブサーバー。WebSocketsをサポート。[BSD]
- SNMP++ - SNMP v1/2c/v3をサポートするC++ API。[custom permissive license]
- tlse - 1つのCファイルで構成されたTLS 1.2/1-3実装。tomcryptを暗号ライブラリとして使用。[BSD-2-Clause]
- TQUIC - 高パフォーマンス、軽量、マルチプラットフォーム対応のQUICライブラリ。CおよびC++で公開。[Apache2]
- Tufão - QtをベースにしたC++の非同期ウェブフレームワーク。[LGPL2]
- uriparser - RFC 3986に厳密に準拠したURI解析および処理ライブラリ。[BSD-3-Clause]
- uWebSockets - µWSは、最も軽量で効率的かつスケーラブルなWebSocketおよびHTTPサーバー実装の一つ。[Zlib]
- UCall - io_uringに基づく、高パフォーマンスかつSIMD加速されたRPCライブラリ。[Apache2]
- WAFer - C言語ベースの超軽量ソフトウェアプラットフォーム。スケーラブルなサーバーやネットワークアプリケーションに最適。Cプログラマ向けのnode.jsのようなもの。[GPL2]
- Wangle - 非同期かつイベント駆動の現代的なC++サービスを構築するためのクライアント/サーバーアプリケーションフレームワーク。[Apache-2.0]
- wdt - 複数のTCP経路を介して2システム間のデータ転送を可能な限り高速に実現するための埋め込みライブラリ(およびコマンドラインツール)。[BSD-3-Clause]
- WebSocket++ - C++/Boost Asioに基づくWebSocketクライアント/サーバーライブラリ。[BSD]
- wspp - ゼロ依存、1ヘッダーのみ、現代的なWebSocketクライアントおよびサーバー、ws/wssライブラリ。[MIT]
- PcapPlusPlus - マルチプラットフォームC++によるネットワークスヌーピングおよびパケット解析・構築フレームワーク。[Unlicense]
- ZeroMQ - 高速かつモジュラリーリアルな非同期通信ライブラリ。[LGPL3/MPL2] website
- Zyre - ペアライズアプリケーション向けローカルエリアクラスタリング。[MPL2]
- easyhttpcpp - ソニーが提供するキャッシュ機能を備えたクロスプラットフォームHTTPクライアントライブラリ。[MIT]
- GameNetworkingSockets - ValveによるUDP上の信頼性および信頼性のないメッセージ。接続型API(TCPに類似)。[BSD-3-Clause]
- wepoll - Windows用epollのラッパー(Winsockに基づく)。[BSD-2-Clause]
Office Open XML
xlsx、pptx、docxなど、Office Open XML形式のファイルを解析および操作するライブラリ
- DuckX - Microsoft Word(.docx)ファイルの作成および編集用C++ライブラリ。[MIT]
- FreeXL - スプレッドシート内に存在する有効データを抽出するオープンソースライブラリ。[MPL/GPL-2/LGPL-2]
- libxls - C/C++からバイナリExcelファイルを読み込む。[BSD-2-Clause]
- libxlsxwriter - Excel XLSXファイルを作成するためのCライブラリ。[BSD-2-Clause] website
- OpenXLSX - Microsoft Excel®(.xlsx)ファイルの読み書き、作成、編集用C++ライブラリ。[BSD-3-Clause]
- SimpleXlsxWriter - Microsoft Excel 2007以降向けXLSXファイル作成者。[zlib]
- XLSX I/O - .xlsxファイルの読み書き用Cライブラリ。[MIT]
PDFドキュメントの解析および操作に用いるライブラリ
- libharu - PDF生成用の無料・クロスプラットフォーム・オープンソースソフトウェアライブラリ。[zlib]
- litePDF - GDI関数をデバイスコンテキストを通じてページコンテンツを描画するPDFドキュメント作成・編集ライブラリ。[LGPL v3 and zlib]
- MuPDF - 軽量なPDF、XPS、電子書籍閲覧ツール。[AGPL/Proprietary]
- PDF-Writer - C++でPDFファイルを作成・編集・パースするための高性能ライブラリ。[Apache-2.0] website
- pdfio - PDFファイルを読み書きするためのシンプルなCライブラリ。[Apache-2] website
- PDFium - PDF生成およびレンダリングライブラリ。[BSD-3-Clause]
- PoDoFo - PDFファイルフォーマットとの対話用ライブラリ。[LGPL]
- Poppler - xpdf-3.0コードベースに基づくマルチバックエンドPDFレンダリングオープンソースライブラリ。[GPLv2/GPLv3]
- QPDF - PDFファイルのコンテンツを保持しつつ変換するためのツールおよびC++ライブラリ。[Apache-2.0] website
- Xpdf - Xpdfは無料PDF閲覧ツールおよびツールキットであり、テキスト抽出、画像変換、HTML変換などを含む。[GPL v2/GPL v3]
- DynaPDF - 使いやすいPDF生成ライブラリ。[Commercial]
物理
動力学シミュレーションエンジン
- Box2D - ゲーム用の2D物理エンジン。[BSD類]
- Bullet - ゲーム用の3D物理エンジン。[zlib] website
- Chipmunk - 高速かつ軽量の2Dゲーム物理ライブラリ。[MIT] website
- Jolt Physics - マルチコア対応の剛体物理学および衝突検出ライブラリ。[MIT]
- Kratos - 並列かつ多分野を対象としたシミュレーションソフトウェアのフレームワーク。モジュラリティ、拡張性、高性能を目標としている。[BSD] website
- LiquidFun - ゲーム用の2D物理エンジン。[BSD類]
- Newton Dynamics - リアルタイムシミュレーション用の物理環境を統合したソリューション。[zlib]
- ODE - オープンダイナミクスエンジン - 刚体動力学をシミュレーションするオープンソース、高性能ライブラリ。[BSD&LGPL]
- ofxBox2d - Box2DへのopenFrameworksのラッパー。[BSD類]
- PhysX - Nvidiaが開発したNvidia GameWorksソフトウェアセットの一部として提供される、オープンソースリアルタイム物理エンジンミドルウェアSDK。[BSD-3-Clause]
- PlayRho - インタラクティブな物理エンジンおよびライブラリ。[Zlib]
- Project Chrono - オープンソースのマルチ物理シミュレーションエンジン。[BSD-3-Clause] website
- Quantum++ - 現代的なC++11量子コンピューティングライブラリ。[MIT]
- QuarkPhysics - 2Dソフトボディおよび剛体物理学エンジン。[MIT]
- Simbody - 高パフォーマンスのC++マルチボディ動力学/物理ライブラリ。車両、ロボット、人間の骨格など、関節を持つ生物力学的および機械システムのシミュレーションに適用。[Apache2]
- SOFA - SOFAはリアルタイムシミュレーションをターゲットとしたオープンソースフレームワークであり、特に医療シミュレーションに注目している。[LGPL] website
- tungsten - 高パフォーマンスのC++ベースの物理ベースレンダラー。[zlib]
リフレクション
- config-loader - C++17の静的反射フレームワーク。設定ファイルのパースからネイティブデータ構造へ。[MIT]
- Better Enums - 反射型enum(文字列への変換、イテレーション)。シングルヘッダー。[BSD] website
- clReflect - clangを使用したC++17の反射。[MIT]
- CPFG - C++03の反射、コールバック、スクリプトバインディング用のライブラリ。[Apache2]
- CPP-Reflection - clangを使用したC++17の反射。[MIT]
- Easy Reflection - Rust、JavaまたはGoのように簡単で高速な反射+シリアル化ソリューション。[Apache]
- Enchantum - C++17ヘッダーのみのライブラリ。コンパイル時におけるenumの反射。[MIT]
- Magic Enum - ヘッダーのみのC++17ライブラリ。enumに対する静的反射(文字列への変換、文字列からの変換、繰り返し)を提供。任意のenum型に対応。マクロやボイラープレートコードなし。[MIT]
- magic_get - ユーザー定義型に対してマクロやボイラープレートコードなしでstd::tupleのようなメソッドを提供。[Boost]
- meta - ヘッダーのみ、非侵襲的かつマクロなしのC++ランタイム反射システム。[MIT]
- Nameof - ヘッダーのみのC++17ライブラリで、変数、型、関数、マクロ、エnumのシンプル名を取得できるnameofマクロと関数を提供します。[MIT]
- REFLECT - C++20の静的反射ライブラリ。[MIT]
- reflect-cpp - 反射を用いたシリアライゼーション、構造体からフィールド名を自動取得できる機能を提供します。[MIT]
- RTTR - C++11向けの反射ライブラリ。[MIT] website
- simple_enum - 高速で直感的かつ型安全なC++のエnumサポートライブラリ。[BSL-1.0] website
- TSMP - 侵入型かつマクロを使わないC++20の静的反射ライブラリ。libclangを使用してソースコードから反射データを抽出し、テンプレート特殊化により利用可能にします。[MIT]
- visit_struct - C++における構造体フィールドの反射を実現するミニマムライブラリ。[Boost]
- Refureku - C++17の実行時反射およびコード生成ライブラリ。[MIT]
正規表現
- CppVerbalExpressions - C++の正規表現を簡単に扱えるようにしたライブラリ。[MIT]
- CTRE - コンパイル時PCRE(ほぼ)互換の正規表現マッチャー。[MIT]
- Hyperscan - Hyperscanはインテルが開発した高性能マルチ正規表現マッチングライブラリ。大量の正規表現(1万個以上)を同時にマッチングできます。DPIライブラリスタックで通常使用されます。[BSD]
- Oniguruma - 多様な文字エンコーディングをサポートする現代的で柔軟な正規表現ライブラリ。[BSD]
- PCRE - Perlの正規表現機能を参考にしたC言語の正規表現ライブラリ。[BSD]
- PCRE2 - 正規表現に関するC++/Cライブラリ、ソフトウェア、または資料です。 regular expression pattern matching. [BSD] website
- PIRE - Yandexが開発したPerlと不適合な正規表現ライブラのライブラリ。非常に高速(400MB/s以上)。[LPGL v3.0]
- RE2 - 有限状態マシンを用いた正規表現のためのソフトウェアライブラリ(自動機理論に基づく)。[BSD-3-Clause]
- SLRE - C/C++用の超軽量正規表現エンジン。[GPLv2/Proprietary]
- sregex - 大規模データストリームでのマッチングに用いる、バックトラッキングなしのNFA/DFAベースのPerl互換正規表現エンジンライブラリ。[BSD]
- SRELL - Unicodeを考慮したC++用正規表現テンプレートライブラリ。[BSD]
- TRE - 近似正規表現マッチングライブラリおよびagrepコマンドラインツール。[BSD-2-Clause]
- Vectorscan - 高性能正規表現マッチングライブラリのポータブルなフォーク。[BSD-3-Clause]
- Pawn.Regex - Pawnプラグインで、C++11 std::regexを使用した正規表現のサポートを提供します。[MIT]
ロボティクス
- FusionCore - ROS 2のUKFセンサ融合ライブラリ。GPS、IMU、ホイールオドメトリを融合し、適応型ノイズと異常値除去により、信頼性の高い屋外ローカライズを実現します。[Apache2]
- MOOS-IvP - ロボットプラットフォームにおける自律性を提供するオープンソースC++モジュールセット。特に自律型海洋車両に適用。
- MRPT - モバイルロボットプログラミングツールキット。[BSD]
- PCL - ポイントクラウドライブラリは、2D/3D画像およびポイントクラウド処理を目的とした独立した大規模オープンプロジェクト。[BSD] website
- Robotics Library (RL) - ロボットの運動学、運動計画、制御を扱う自立型C++ライブラリ。[BSD]
- RobWork - ロボットシステムのシミュレーションおよび制御に用いるC++ライブラリのコレクション。[Apache2] website
- ROS - ロボット動作システムは、ソフトウェア開発者にロボットアプリケーションの開発を支援するライブラリとツールを提供。[BSD]
- Ruckig - ロボットおよび機械のリアルタイムモーション生成。[MIT] website
- YARP (Yet Another Robot Platform) - 通信およびデバイスインターフェース用のライブラリとツールキット。[BSD-3-Clause] website
- SPICE Toolkit - ロボット宇宙船から得られた科学観測データの計画および分析に用いる幾何学情報を計算するためのライブラリとツールキット。[MIT] website
科学技術計算
- AMGCL - 大規模稀疏線形システムを代数多層法で解くためのヘッダーのみのC++ライブラリ。[MIT]
- Au - C++14互換の物理単位ライブラリ。依存関係がなく、シングルファイル配布をサポート。安全性、アクセス性、パフォーマンス、開発者体験を重視。[Apache 2.0] website
- FFTW - 1次元または複数次元におけるDFTを計算するCライブラリ。[GPL]
- GSL - GNU科学ライブラリ。[GPL]
- preCICE - 分区マルチ物理シミュレーション(FSI、CHTなど)用の結合ライブラリ。[LGPL] website
- TileDB - 高速な密および稀疏多次元配列データベース管理システム。[MIT] website
- Trilinos - 高性能の偏微分方程式ソルバー。[BSD]
- Torch - GPUを第一に考慮した広範な機械学習アルゴリズムをサポートする科学計算フレームワーク。[BSD-3-Clause] website
- volesti - 切断分布からの高次元サンプリング、凸最適化、体積計算。
スクリプティング
- AngelScript - AngelScriptはゲーム向けの解釈・コンパイル型スクリプティング言語。[zlib]
- Boost.Python - C++とPythonプログラミング言語の間のシームレスな相互運用を可能にするC++ライブラリ。[Boost] website
- cppimport - PythonからC++ファイルを直接インポート![MIT]
- CppSharp - C/C++APIを高度な言語に接続するためのツールとライブラリ。[MIT]
- ChaiScript - C++用の使いやすい埋め込みスクリプティング言語。[BSD] website
- ctypes.sh - bash向けの外部関数インターフェース。[MIT]
- Cython - CythonはPythonプログラミング言語および拡張されたCythonプログラミング言語(Pyrexに基づく)向けの最適化された静的コンパイラである。PythonのC拡張をPython自体と同様に簡単に書けるようにする。[Apache] website
- djinni - 複数言語間の型宣言とインターフェースバインディングを生成するツール。[Apache2]
- Duktape - コンパクトなサイズの埋め込みJavaScriptエンジン。[MIT] website
- JavaCpp - JavaとネイティブC++の間に欠けている橋。[Apache2]
- JerryScript - IoT向けの超軽量JavaScriptエンジン。[Apache-2.0] website
- libffi - MITライセンスのポータブルな外国関数インターフェースライブラリ。[MIT] website
- Lua - 構成ファイルや基本的なアプリケーションスクリプトに用いる、最小で高速なスクリプティングエンジン。[MIT]
- LuaBridge - LuaとC++を接続するための軽量かつ依存関係のないライブラリ。[MIT]
- LuaBridge3 - Lua、LuaJIT、LuauおよびRaviとC++を接続するための軽量かつ依存関係のないライ特。[MIT]
- luacxx - Luaバインディングを作成するためのC++11 API。[MIT]
- Luau - Luaから派生した高速・小型・安全な、段階的に型を指定できる埋め込みスクリプティング言語。[MIT] website
- MicroQuickJS - MicroQuickJS(MQuickJS)は、埋め込みシステム向けのJavaScriptエンジン。[MIT]
- MiniScript - スクリプティング言語として、現代的で洗練されており、学習しやすく、自らのC#またはC++プロジェクトに簡単に埋め込み可能。[MIT]
- nanobind - ミニマムで効率的なC++/Pythonのバインディング。[BSD-3-Clause]
- nbind - JavaScriptからC++ライブラリを呼び出すための魔法のヘッダー。[MIT]
- PHP-CPP - C++でPHP拡張を構築するためのライブラリ。[Apache2] website
- pocketpy - C++17ヘッダーのみのPythonインタプリタ(ゲームスクリプト用)。[MIT] website
- pybind11 - C++11とPythonの間のスムーズな操作。[BSD]
- QuickJS - 小さなかつ埋め込み可能なJavaScriptエンジン。[MIT]
- SIP - Python v2およびv3向けのCまたはC++バインディング生成ツール。[GPL]
- sol2 - C++とLuaのAPIラッパー。高度な機能と優れたパフォーマンスを備えている。[MIT]
- SWIG - C++コードをJavaScript、Perl、PHP、Python、Tcl、Rubyにリンクできるラッパー/インターフェース生成ツール。[GPL/出力ライセンスなし] website
- txiki.js - 極めて小さなJavaScriptランタイム。[MIT]
- V7 - 埋め込み可能なJavaScriptエンジン。[GPL2]
- V8 - Googleが開発した高速JavaScriptエンジン。C++アプリケーションに埋め込み可能。[BSD]
- v8pp - C++クラスや関数をV8に公開し、JavaScriptコードで使用できるヘッダーのみのライブラリ。[BOOST] website
- ChakraCore -A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
- MuJS - C言語で実装された埋め込みJavaScriptインタプリタ。[ISC] website
- hobbes - モーガン・スタンレーが開発した言語と埋め込みJITコンパイラ。[Apache-2.0]
シリアライズ
- BitSerializer - 複数フォーマットのシリアライズライブラリ(JSON、XML、YAML、CSV、MsgPack)[MIT]
- Bitsery - ヘッダーのみのC++バイナリシリアライズライブラリ。[MIT]
- Bond - スキーマ化されたデータを扱うためのオープンソース・クロスプラットフォームフレームワーク。[MIT]
- Boost.Serialization - Boostシリアル化ライブラリ。[Boost] website
- Cap’n Proto - 高速データ交換フォーマットと、能力ベースのRPCシステム。[MIT] website
- cereal - シリアライズ用のC++11ライブラリ。[BSD]
- cista - ゼロコピーによる高性能(デ)シリアライズを実現するC++17ライブラリ。[MIT]
- cppcodec - base64、base32、hexのエンコード/デコードを実行するヘッダーのみのC++11ライブラリ。一貫性と柔軟性を持つAPIを提供。[MIT]
- FastBinaryEncoding - Fast Binary Encodingは、C++、C#、Go、Java、JavaScript、Kotlin、Python、Ruby、Swift向けの超高速かつ汎用的なシリアライズソリューション。[MIT]
- FlatBuffers - メモリ効率の高いシリアライズライブラリ。[Apache2]
- Kaitai Struct - さまざまなバイナリデータ構造を記述するための宣言型言語と、C++パーサーコードを生成するコンパイラ。[GPLv3+][MIT][Apache2]
- iguana - C++20およびC++17で開発された現代的・汎用的・使いやすいシリアライズエンジン。[Apache2]
- MessagePack - CおよびC++用の効率的なバイナリシリアル化フォーマット(JSONに似たもの)。[Apache2] website
- mrpt-serialization - バージョン付きシリアル化をバイナリまたはテキスト形式に。[BSD] website
- nanopb - ANSI Cで実装された小型コードサイズのProtocol Buffers。[Zlib]
- protobuf - Protocol Buffers - Googleのデータ交換フォーマット。[BSD]
- protobuf-c - Cで実装されたProtocol Buffers。[BSD]
- Protocol Puffers - C++20で書かれた、小さな、高度にテンプレート化された、protobufと互換性のあるシリアライズ/デシリアライズヘッダのみのライブラリ。[Apache-2.0]
- SimpleBinaryEncoding - 低遅延アプリケーション向けのバイナリ形式でのアプリケーションメッセージのエンコードおよびデコード。[Apache2]
- upb - Cで実装された小さなprotobuf実装。[BSD]
- Wirehair - 大規模データ用のO(N) Fountain Code。[BSD-3-Clause]
- YAS - 非常に高速なYet Another Serializationライブラリ。バイナリ/テキスト/JSON形式をサポート。[Boost]
- zpp_bits - 実際には、現代のSerializationライブラリの中でも最も速いもの。詳しくは this video で確認してください。
- fbthrift - Facebookが開発したApache Thriftのブランチ。シリアライズライブラリおよびRPCフレームワークを含む。[Apache-2.0]
シリアルポート
- Asio - Asioには、ポータブルにシリアルポートを作成・操作するためのクラスが含まれる。[Boost] website
- Boost.Asio - Boost.Asioには、ポータブルにシリアルポートを作成・操作するためのクラスが含まれる。[Boost] website
- CSerialPort - 軽量かつマルチプラットフォーム対応のシリアルポートライブラリ。[LGPL3]
- Libserial - C++でのシリアルポートプログラミング。[BSD-3-Clause]
- Serial Communication Library - C++で書かれたクロスプラットフォームシリアルポートライブラリ。[MIT] website
ソート
- cpp-sort - C++14向けのソートアルゴリズムおよび関連ツール。[MIT]
- pdqsort - パターンを打ち破るクイックソート。[zlib]
- Timsort - 安定ソート関数で、逆順または半順ソートデータに対してクイックソートベースアルゴリズム(std::sortを含む)を上回る。[MIT]
- Indiesort - std::sort(およびその他のランダムアクセスソート関数)を非ランダムアクセスコンテナで使用できるようにするソートラッパー、またランダムアクセスコンテナや配列における大きな/非自明なコピー型のソート性能を向上させる。[zLib] website
- x86-simd-sort - C++テンプレートライブラリ。高性能SIMDベースのソートアルゴリズムを提供。[BSD-3-Clause]
動画
- libvpx - VP8/VP9 コードック SDK。[BSD]
- FFmpeg - オーディオおよびビデオの記録、変換、ストリーミングを実現する完全なマルチプラットフォームソリューション。[LGPL2/GPL2]
- avcpp - 現代的なC++によるFFmpegのラッパー。[MIT]
- libde265 - オープンソースH.265動画コーデック実装。[LGPL] website
- x265 - オープンソースH.265動画コーデック実装。[GPL2] website
- OpenH264 - オープンソースH.264コーデック。[BSD] website
- Theora - 無料かつオープンなビデオ圧縮フォーマット。[BSD]
- Vireo - Twitterが開発した軽量かつ汎用的なビデオ処理ライブラリ。[MIT]
- libuvc - USBビデオデバイス向けのマルチプラットフォームライブラリ。[BSD]
仮想マシン
- CarpVM - Cで書かれた「興味深い」仮想マシン。これどうなるか見てみよう。[GPLv3]
- MicroPython - Python 3.xの実装をマイクロコントローラに載せることを目指す。[MIT]
- TinyVM - 純粋なANSI Cで書かれた小型・高速・軽量の仮想マシン。[MIT]
Webアプリケーションフレームワーク
- aeronet - 高性能でモジュール化されたC++ HTTP/1.1、HTTP/2およびWebSocketマイクロサービスフレームワーク。パフォーマンスとスケーラビリティに焦点。[MIT]
- Civetweb - 使いやすく、強力なC/C++で埋め込み可能なウェブサーバーを提供。オプションでCGI、SSL、Luaサポートあり。[MIT]
- C++ REST SDK - マイクロソフトが開発した、ネイティブコードによるクラウドベースのクライアントサーバー通信プロジェクト。現代的な非同期C++API設計を使用。[MIT]
- CppCMS - フリーかつ高性能なウェブ開発フレームワーク(CMSではない)。[LGPLv3]
- Crow - クロウはC++でウェブサービスを実行するマイクロフレームワーク。Pythonのフラスクリーティングに類似したルーティングを用いる。[BSD] website
- Cutelyst - QtをベースにしたC++のウェブフレームワーク。Perlのカタリスタフレームワークのシンプルなアプローチを採用。[BSD-3-Clause] website
- Drogon - C++17/2及び高性能なHTTPアプリケーションフレームワーク。[MIT]
- C++ wfrest - C++のウェブフレームワークによるREST API。[Apache2]
- facil.io - イベント駆動型で高性能なCのウェブフレームワーク。HTTP、WebSockets、SSEなどに対応。[MIT] website
- Kore - Cで開発された超高速で柔軟なウェブサーバー/フレームワーク。[ISC]
- libOnion - Cプログラミング言語でウェブサーバーを作成するための軽量ライブラリ。[LGPLv3]
- lwan - 実験的でスケーラブルかつ高性能なHTTPサーバー。[GPL2]
- oat++ - 軽量で依存関係のないフレームワーク。高性能なウェブサービスの作成に適している。[Apache-2.0] website
- Pistache - Pistacheは、純粋なC++11で書かれたC++のRESTフレームワークで、外部依存なし。[Apache2]
- QDjango - C++で書かれたウェブフレームワーク。Qtライブラリに基づいて構築。可能な限りDjangoのAPIに従っているためその名前を持つ。[LGPL]
- TreeFrog Framework - 高速かつフルスタックのウェブアプリケーションフレームワーク。C++とQtをベースにし、HTTPおよびWebSocketプロトコル(O/Rマッピングをサポート)に対応。[BSD] website
- userver - 非同期C++17フレームワーク。豊富な抽象構造とデータベースドライバーを備え、効率的なマイクロサービスやサービス、ユーティリティの迅速かつ快適な作成を可能にする。[Apache-2.0] website
- Wt - ウェブアプリケーション開発用のC++ライブラリ。[GPL/Proprietary]
- httpserver.h - Cで書かれたシングルヘッダーHTTPサーバーライブラリ。[MIT]
- libhttp - マルチプラットフォーム向けC/C++のHTTPおよびHTTPSライブラリ。[MIT]
XML
XMLはひどい。本当に。人間にとって解析するのは難しいし、コンピュータにとっても解析するのは災いである。そんなひどいものに存在する理由はまったくない。- リンス・トーバルズ
- Boost.PropertyTree - XML/JSON/INI/Infoファイルをパース・生成できるプロパティツリー解析・生成ライブラリ。[Boost] website
- Expat - Cで書かれたXMLパーサーライブラリ。[MIT]
- Libxml2 - GnomeのXML Cパーサーおよびツールキット。[MIT]
- libxml++ - C++用のXMLパーサー。[LGPL2]
- Mini-XML - ANSI Cで書かれた小さなXMLパーサーライブラリ。[LGPL2 ただし例外あり]
- PugiXML - XPathをサポートする軽量でシンプルかつ高速なC++用XMLパーサー。[MIT]
- RapidXml - 使いやすさ、移植性、および適切なW3C互換性を維持しつつ、可能な限り速いXMLパーサーの実現に向けた試み。[Boost]
- TinyXML - 他のプログラムに簡単に統合できる、シンプルで小さく、最小限のC++XMLパーサー。[zlib]
- TinyXML2 - 他のプログラムに簡単に統合できる、シンプルで小さく、効率的なC++XMLパーサー。[zlib]
- TinyXML++ - TinyXMLに完全に新しいインターフェースを提供し、C++のテンプレートや例外処理、より良いエラーハンドリングを活用。[MIT]
- Xalan C - XSLT 1.0規格に準拠したスタイルシートを使用してXMLドキュメントを変換するためのライブラリおよびコマンドラインツール。[Apache-2.0] website
- Xerces-C++ - ポータブルなC++のサブセットで書かれた検証XMLパーサー。[Apache2]
YAML
- fkYAML - C++ヘッダーのみのYAMLライブラリ。[MIT]
- LibCYAML - YAMLを読み書きするCライブラリ。[ISC]
- libfyaml - 魅力的な1.2バージョンのYAMLおよびJSONパーサー/ライター。[MIT]
- LibYAML - YAMLをパースおよび出力するためのCライブラリ。[MIT] website
- mini-yaml - シングルヘッダーのYAML 1.0 C++11シリアライザ/デシリアライザ。[MIT]
- rapidyaml - Rapid YAMLはYAMLをパースおよび出力するC++ライブラリ。[MIT]
- yaml-cpp - C++でのYAMLパーサーおよびエミッター。[MIT]
その他
上記のカテゴリに該当しない、あるいはまだ分類されていない便利なライブラリやツール
- access_profiler - C++プログラムにおけるメンバ変数へのアクセス回数をカウントするツール。[GPL3]
- American fuzzy lop a.k.a. afl-fuzz - 時間と最小の入力例を与えることで、自動的にバグを発見する狂気のファズツール。[Apache2]
- Argon2 - パスワードハッシュアルゴリズムArgon2、PHCの勝利者。[CC0/Apache2]
- AsmJit - 低遅延のマシンコード生成。[Zlib] website
- Better String - Cの文字列ライブラリへの代替として、機能的でバッファオーバーフローの問題を解消したもの。またC++のラッパーも含まれる。[BSD, GPL2]
- Boost.Signals2 - 管理されたシグナルとスロットシステムの実装。[Boost] website
- casacore - aips++から派生したC++コアライブラリのセット。[LGPL]
- CCTZ - 経度・時刻規則に基づいて絶対時刻と市民時刻を相互に変換するC++ライブラリ。[Apache-2.0]
- Cheat Sheets of HackingCPP - アルゴリズ及、ビュー、コンテナ、ランダム性などに関するカーティングシートとインフォグラフィック。
- Concord - Cで書かれたディスコAPIのラッパーライブラリ。[MIT] website
- CPPItertools - Pythonのビルトイン関数およびitertoolsライブラリをインスピレーションとして作られた、範囲ベースのforループの拡張機能。[BSD-2-Clause]
- CPP-JWT - C++用のJSON Web Tokenライブラリ。[MIT]
- cpp-lazy - C++11/14/17/20向けの高速かつ使いやすいラグエ評価ライブラリ。[MIT]
- CRCpp - 使いやすく高速なC++ CRCライブラリ。[BSD-3-Clause]
- cxx-prettyprint - C++コンテナ向けの整形表示ライブラリ。[Boost]
- date - C++11/14/17の
ヘッダーに基づく日時ライブラリ。[MIT] website - D++ (DPP) - 軽量で高性能かつスケーラブルなC++ライブラリ。ディスコボットの作成に適している。[Apache2] website
- Dragonbox - C++で実装された新しいfloat-to-string変換アルゴリズムの参照実装。[Apache2/BSL-1.0]
- DynaMix - 実行時におけるオブジェクトの構成と変更を可能にするライブラリ。[MIT]
- emio - 安全かつ高速な、高レベルおよび低レベルの文字入出力ライブラリ。[MIT]
- faker-cxx - C++20用のFakerライブラリ。テストおよび開発用に仮の(しかし現実的な)データを生成するため。[MIT]
- fast_float - 高速かつ正確なC++ from_chars。strtodに比べ4倍から10倍速い。GCC 12、Chromium、Redis、Webkit/Safariに含まれる。[Apache2/BSL—1.0/MIT]
- FastFormat - log4jおよびPantheiosをインスピレーションとして作られた、安全かつ高速なC++フォーマットライブラリ。[Simplified BSD]
- fast_io - C++20向けに大幅に高速化された入出力。[MIT]
- fccf - ディレクトリを再帰的に検索し、検索文字列に一致するC/C++ソースコードを特定するコマンドラインツール。[MIT]
- ffc.h - 単一ヘッダーのc99加速浮動小数点/倍精度数パーサー。fast_floatライブラリのポート。[Apache-2.0/BSL-1.0/MIT]
- {fmt} :zap: - C++用の小型で安全かつ高速なフォーマットライブラリ。[Simplified BSD] website
- gcc-poison - 開発者がアプリケーションから危険なC/C++関数を禁止できるためのシンプルなヘッダーファイル。
- Gear-Lib - POSIX Cによる基本ライブラリのコレクション。エントリーデバイスおよびネットワークサービス開発向け。[MIT]
- happly - PLYファイルフォーマット向けのC++ヘッダーのみのパーサー。.plyを快適にパース![MIT]
- hedley - プラットフォーム固有の不都合を軽減するためのC/C++ヘッダーファイル。website
- Hexi - バイナリストリーミングおよびシリアライゼーション向けの軽量C++ヘッダーのみライブラリ。[Apache-2.0/MIT]
- HighwayHash - 高速かつ強力なハッシュ関数:SipHash/HighwayHash。[Apache-2.0]
- inja - 現代C++向けのテンプレートエンジン。[MIT]
- Jinja2С++ - ほぼ完全コンフォーマンスのテンプレートエンジン実装。website
- jwt-cpp - C++でJSONウェブトークンを作成および検証するためのヘッダーのみのライブラリ。[MIT]
- Kangaru - C++11およびC++14向けのデプロイインジェクションコンテナ。[MIT]
- Klib - 一般的なアルゴリズムおよびデータ構造の軽量かつ小型な実装。[MIT]
- KOMIHASH - 非常に高速かつ高品質のハッシュ関数。離散インクリメントおよびストリーミングハッシュに対応。[MIT]
- libcpuid - x86 CPUの検出および特徴抽出を行うための小さなCライブラリ。[BSD]
- libenvpp - 型安全な環境変数パーサーを提供する現代的なC++ライブラリ。[Apache-2.0]
- libevil - The Evil License Manager。[GPLv3]
- libnih - C関数および構造体を収録した軽量ライブラリ。[GPL2.1]
- libONVIF - もう一つのONVIFライブラリ。[GPL-3.0]
- libpopcnt - 高速なC/C++のビット数のカウントライブラリ。[BSD-2-Clause]
- libsigc++ - 標準C++向けの型安全なコールバックシステム。[LGPL] website
- libusb - USBデバイスにポータブルにアクセスできるためのユニバーサルUSBライブラリ。[LGPL2]
- Mach7 - C++向けのパターンマッチングライブラリ。[BSD]
- minja.hpp - LLMチャットテンプレート向けの最小限のC++ Jinjaテンプレートエンジン。[MIT]
- mio - マルチプラットフォームC++11ヘッダーのみライブラリ。メモリマップファイルIOに対応。[MIT]
- MPark.Variant - C++11/14/17向けのC++17。[BSL-1.0]
std::variant - MPH - C++20 [Minimal] 静的完全ハッシュライブラリ。[MIT]
- Patternia - 現代C++向けのパターンマッチングを提供する。[MIT] website
- PEGTL - パーサーエクスプレッション文法テンプレートライブラリ。[MIT]
- Pipes - C++におけるコレクション上の表現的なコードをパイプライン化するライブラリ。[MIT]
- pprint - Modern C++向けのプリティプリンタ。[MIT]
- pspsdk - PSPホームブリュア開発向けオープンソースSDK。[BSD/GNU GPL3]
- QtVerbalExpressions - このQtライブラリはC++のVerbalExpressionsライブラリに基づいている。[MIT]
- rain - 128ビットおよび256ビットの非暗号ハッシュで最も速いもので、すべてのテストを通過し、140行未満のソースコードで実装。[Apache-2.0]
- RapidFuzz - Levenshtein距離を用いたC++での高速フィズィーストリングマッチング。[MIT] website
- rapidhash - 非常に速く、品質の高い、プラットフォームに依存しないハッシュアルゴリズム。[BSD-2-Clause]
- Reaction - 軽量でヘッダーのみの反応型プログラミングフレームワーク。現代C++20の機能を活用し、効率的なデータフローアプリケーションの構築を可能にする。[MIT]
- Remote Call Framework - C++用のプロセス間通信フレームワーク。[GPL2/Proprietary]
- reproc - クロスプラットフォーム(C99/C++11)プロセスライブラリ。[MIT]
- SafetyHook - C++23のプロシージャフックライブラリ。[BSL-1.0]
- scnlib - 現代C++向けのscanf。[Apache-2.0] website
- Scintilla - 無料のソースコード編集コンポーネント。[MIT]
- SDS - C用のシンプルな動的文字列ライブラリ。[BSD]
- semver.c - ANSI Cで記述されたsemverパーサーおよびレンダラー。[MIT]
- sigslot - C++のシグナル/スロットライブラリ。[PublicDomain]
- SIMD Everywhere - ネイティブにそれらをサポートしていないシステム向けのSIMD命令セットの実装。[MIT]
- SLJIT - プラットフォームに依存しない低レベルJITコンパイラ。[BSD] website
- palacaze/sigslot - シンプルでヘッダーのみのC++14シグナル-スロット実装。[MIT]
- simdzone - 高速かつ標準適合のDNSゾーンパーサー。[BSD-3-Clause]
- SimpleSignal - 高性能なC++11シグナル。[PublicDomain]
- single_file_libs - C/C++のオープンソースライブラリで、依存関係が最小限。[Various]
- Spicy - プロトコルおよびファイルを解析するためのC++パーサー生成器。[BSD] website
- Stage - モバイルロボットシミュレータ。[GPL2]
- stb :zap: - C/C++向けの単一ファイルライブラリの範囲。[PublicDomain]
- stdman - cppreferenceからアーカイブされたHTMLファイルを解析し、Unixベースシステム向けのgroff形式のマニュアルページを生成するツール。[MIT]
- StringZilla - 文字列ライブラリのゴジラ。大規模なテキストデータセットの分割・ソート・シャッフルを「東京タワー」という言葉を言うより速く実行。[Apache-2.0]
- StrTk - C++による高性能な文字列処理ルーチンを含むライブラリ。[MIT]
- tgbotxx - Telegram Bot C++ライブラリ。[MIT]
- The RaBitQ Library - RaBitQアルゴリズム向けの軽量ライブラリ。[Apache-2.0] website
- tiny::optional - std::optionalの代替として、無駄なメモリ消費を防ぐもの。[BSL-1.0]
- Tulip Indicators - 100以上にわたる金融技術分析指標を含むCライブラリ。[LGPL]
- ub-canaries - コンパイラが未定義動作を活用できるよう試みるC/C++プログラムのコレクション。
- value-category-cheatsheet A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft]
- VarTypes - C++ / Qt4で変数を管理するための機能豊かなオブジェクト指向フレームワーク。[LGPL]
- Wildcards - シンプルなC++ヘッダーのみのテンプレートライブラリでワイルドカードによるマッチングを実装。[BSL-1.0]
- xjb - 高速な浮動小数点数から文字列へのアルゴリズム。[Apache-2.0]
- xxHash - 極めて高速な非暗号化ハッシュアルゴリズム。[BSD-2-Clause] website
- xxhash_cpp - xxhashライブラリのC++17への移植。[BSD-2-Clause]
- ZBar - バーコードスキャナーライブラリで、写真/画像/動画ストリームからバーコードをスキャンし、その値を返す。[LGPL2]
- ZXing - Javaで実装されたオープンソースマルチフォーマット1D/2Dバーコード画像処理ライブラリ、その他言語へのポートも提供。[Apache]
- spy - C++17のconstexprライブラリで、コンパイル時におけるOS、コンパイラ、アーキテクチャ、SIMDを検出。[MIT]
- licensepp - C++プロジェクト向けのソフトウェアライセンス管理ライブラリ。[Apache-2.0]
- tinydir - 軽量で、ポータブルで、統合が容易なCのディレクトリとファイルリーダー。[BSD-2-Clause]
- Cello - Cでのより高度なプログラミング、包括的なデータ構造と多態性を提供。[BSD-2-Clause] website
- dyno - C++で実行時多態性と値セマンティクスを実現するライブラリ。[Boost]
- PolyHook - C++のx86/x64向けのハッキングライブラリ。[MIT]
- Verdigris - mocなしでQtを使用できるヘッダーのみのライブラリ。[MIT]
- Flicks - Facebook/Oculusが定義した時間の単位で、一般的なフレームレートを正確に表現。[BSD]
- Linq - C++でのリスト内包をLINQ構文で提供。[Boost]
- libcorrect - コネクティブコードおよびリード・ソロモン誤り訂正に用いるCライブラリ。[BSD-3-Clause]
- libfsm - 有限状態マシンの構築と実行に加え、正規表現およびワイルドカードを含むライブラリ。[BSD-2-Clause]
- origin - コンセプト、診断、その他基礎的なユーティリティを提供するC++ライブラリ。
ソフトウェア
開発環境を構築するためのソフトウェア
コンパイラ
C または C++ コンパイラのリスト
- 8cc - 小さなCコンパイラ。
- c - C “スクリプト” を一括でコンパイル・実行! [MIT]
- Clang - LLVM 用の C コンパイラ。C++11/14/1z および C11 をサポート。LLVM チームが開発。 [NCSA]
- Fil-C - C および C++ の極めて互換性の高いメモリ安全な実装。
- GCC - GNU コンパイラコレクション。C++11/1、14/1z、C11 および OpenMP をサポート。 [GNU GPL3]
- PCC - 非常に古い C コンパイラ。C99 をサポート。
- AMD C++ Compiler - AMD が開発。
- Intel C++ Compiler - Intel が開発。
- LLVM - モジュール化・再利用可能なコンパイラおよびツールチェーン技術のコレクション。
- Microsoft Visual C++ - Microsoft が開発した MSVC。
- Open WatCom - Watcom C、C++、Fortran のクロスコンパイラおよびツール。 [Sybase Open Watcom Public License]
- Oracle Solaris Studio - SPARC および x86 用の C、C++、Fortran コンパイラ。C++11 をサポート。Linux および Solaris で利用可能。 [OTN Developer License]
- TCC - Tiny C コンパイラ。 [LGPL]
- sierra - CISC を中心としたプログラミング言語で、維持性の高いプログラムを作成することを目的としたもの。
- movfuscator - 単一命令 C コンパイラ。プログラムを mov 指令のみにコンパイル。 [MIT]
オンラインコンパイラ
オンラインの C または C++ コンパイラのリスト
- codechef - シンプルなオンラインコンパイラ CodeChef。
- coliru - さまざまな C++ コンパイラをサポートするオンラインコンパイラ/シェル。
- Compiler Explorer - アセンブリ出力が可能なインタラクティブコンパイラ。
- CompileOnline - Linux 上で C++ をオンラインでコンパイル・実行。
- Ideone - 60以上のプログラミング言語でソースコードをコンパイル・実行できるオンラインコンパイラおよびデバッグツール。
- OneCompiler - 70以上のプログラミング言語およびデータベースシステムをサポートするオンラインコンパイラ。
- Programiz - 学習者や開発者向けのオンラインコンパイラ
- repl.it - 教育者・学習者・開発者に向けた強力でシンプルなツールとプラットフォーム
- Rextester - 複数のコンパイラ(Clang、GCC、MSVC)と複数のエディタを提供するオンラインコンパイラ
- Try It Online - TIOは、実用的かつレクリエーション用のプログラミング言語のリストを広げていくオンラインインタープリターファミリー
- Wandbox - Boostが利用可能なオンラインClang/GCCコンパイラ
- paiza.io - 複数ファイルをサポートし、GitHub(gist)統合と協働編集を提供するオンラインC/C++コンパイラ
- InterviewBit - シンプルで使いやすいオンラインC++コンパイラ
デバッガ
C または C++ デバッガのリスト
- Comparison of debuggers - ウィキペディアに掲載されているデバッガーリスト
- GDB - GNUデバッガー
- LLDB - LLDBデバッガー
- Metashell - インタラクティブなテンプレートメタプログラミングシェルで、MDBメタデバッガーを含む
- Valgrind - メモリデバッギング、メモリリーク検出、プロファイリングを行うツール
- x64dbg - Windows向けのオープンソースx64/x32デバッガー
インテグレートド開発環境
C または C++ の代表的な IDE のリスト
- Anjuta DevStudio - GNOME IDE。[GPL3]
- AppCode - JetBrainsのIntelliJ IDEAプラットフォームに基づいたObjective-C、C、C++、JavaScript開発用IDE
- Cevelop - Eclipse CDTに基づくクロスプラットフォームC/C++IDE(追加プラグインあり)
- CLion - JetBrainsによるクロスプラットフォームC/C++IDE
- Code::Blocks - 無料のC、C++、Fortran IDE
- CodeLite - 別のクロスプラットフォーム、無料C/C++IDE。[GPL2(プラグインに関して例外あり)]
- Dev-C++ - ポータブルC/C++/C++11 IDE
- Eclipse CDT - Eclipseプラットフォームに基づく完全に機能するCおよびC++のIDE
- Embarcadero Dev-CPP - Dev-C++のフォークで、新テーマと現代的なコンパイラが事前インストールされている。[GPLv2] website
- Geany - 小型で高速かつプラットフォームを越えたIDE。[GPL]
- IBM VisualAge - IBMが提供するコンピュータ統合開発環境のファミリー
- Irony-mode - Emacsにlibclangを基盤として搭載したC/C++のマイノーム
- juCi++ - libclang統合を備えた軽量かつマルチプラットフォームのC++ IDE。[MIT]
- KDevelop - 無料でオープンソースのIDE
- Microsoft Visual Studio - マイクロソフトが提供するIDE
- Microsoft Visual Studio Code :zap: - マイクロソフトのオープンソースIDE。[MIT] website
- NetBeans - Javaで主に開発するが、PHP、C/C++、HTML5など他の言語にも対応するIDE
- Qt Creator :zap: - QtのSDKに含まれる、プラットフォームを越えたC++、JavaScriptおよびQML用IDE。[GPL3 with exceptions] website
- rtags - clangを基盤としたEmacs向けのC/C++クライアント/サーバーインデクサ
- Xcode - Appleが開発した
- YouCompleteMe - YouCompleteMeはVim向けの高速かつリアルタイムで入力に応じて検索するコード補完エンジン
- C Playground - Online C Programming IDE - オンラインでCプログラミングを練習できるオンラインIDE。コードを書く、編集、実行がオンラインで可能
ビルドシステム
- awesome-cmake - 素晴らしいCMakeスクリプト、モジュール、リソースを厳選したリスト
- Bazel - グーグルが開発したマルチ言語、高速かつスケーラブルなビルドシステム。[Apache]
- Bear - clangツールのためのコンパイルデータベースを生成するツール。[GPLv3]
- Buck - Facebookで開発・使用されているC++向けの高速ビルドシステム。複数のプラットフォームと言語(特にC++)を対象に、小さな再利用可能なモジュールの作成を促進。Javaで書かれた。[Apache]
- build2 - C/C++プロジェクトの開発およびパッケージングに用いる、マルチプラットフォームのビルド、パッケージング、依存関係管理ツールチェーン。[MIT]
- Ccache - 高速なC/C++コンパイラキャッシュ。[GPLv3]
- clib - Cプログラミング言語向けのパッケージマネージャー。[MIT]
- CMake - コンパイラに依存しない方法でソフトウェアのビルドプロセスを管理するための、マルチプラットフォームの無料かつオープンソースソフトウェア。[BSD]
- Cget - Cmakeパッケージの取得。[Boost] website
- Conan - C/C++パッケージマネージャー、オープンソース。[MIT]
- CPM - CMakeとGitをベースにしたC++パッケージマネージャー。
- FASTBuild - 高パフォーマンスで、スケーラブルなコンパイル、キャッシュ、ネットワーク配布をサポートするオープンソースビルドシステム。
- Hunter - CMakeを用いたクロスプラットフォームC++パッケージマネージャー。[BSD-2]
- MesonBuild - 非常に速く、さらに重要なことにユーザーに親しみやすいように設計されたオープンソースビルドシステム。
- Ninja - スピードに焦点を当てた小さなビルドシステム。
- Sccache - C/C++用の高速コンパイラキャッシュ。クロスプラットフォーム対応とクラウドバックアップ機能を備えている。
- Scons - Pythonスクリプトで構成されたソフトウェア構築ツール。
- Sconsolidator - Eclipse CDTにおけるSconsビルドシステムの統合。
- Spack - 複数バージョン、設定、プラットフォーム、コンパイラをサポートする柔軟なパッケージマネージャー。[Apache-2.0/MIT]
- SW - 多くのパッケージが利用可能なクロスプラットフォームC++(およびその他の言語)ビルドシステムおよびパッケージマネージャー。[GPLv3]
- tundra - 非常に大きなソフトウェアプロジェクトでも、可能な限り最短のインクリメンタルビルド時間を提供する高パフォーマンスコードビルドシステム。
- tup - バックグラウンドで変更ファイルを監視するファイルベースビルドシステム。
- Premake - Luaスクリプトで構成されたツール。Visual Studio、GNU Make、Xcode、Code::Blocksなど、Windows、Mac OS X、Linuxでプロジェクトファイルを生成。
- Vcpkg - Windows、Linux、MacOS向けのC++ライブラリマネージャー。[MIT]
- waf - アプリケーションの設定、コンパイル、インストールを行うためのPythonベースのフレームワーク。[BSD] website
- XMake - LuaをベースにしたC/C++クロスプラットフォームビルドユーティリティ。統合パッケージマネージャーxrepoを備えている。[Apache]
- boost-cmake - Boostライブラリ向けのCMakeモジュール。[BSD-3-Clause]
- cmake-examples - さまざまなシナリオ向けの有用なCMake例のコレクション。[MIT]
静的コード分析
コード分析を用いて品質を向上し、欠陥を減少させるツールのリスト
- Cppcheck - C/C++の静的コード分析を行うツール。- source
- CppDepend - コードの依存関係を分析・可視化し、設計ルールを定義、影響分析を行い、コードの異なるバージョンを比較することで、複雑なC/C++コードベースの管理を簡素化。
- cpplint - GoogleのC++スタイルガイドに従ったC++スタイルチェックツール。
- PVS-Studio - プログラムのソースコードにおけるバグ検出ツール。C、C++、C#で記述されたもの。
- cpp-dependencies - C++の#include依存関係をチェックするツール(.dot形式で生成される依存グラフ)。[Apache]
- include-what-you-use - clangと併用してCおよびC++ソースファイル内のインクルードを分析するためのツール。website
- Infer - Java、C、Objective-C向けの静的解析ツール。[BSD]
- OCLint - C、C++およびObjective-Cのソースコードを静的に分析し、品質を向上および欠陥を減少させるためのツール。- source
- Clang Static Analyzer - C、C++、Objective-Cプログラムにおけるバグを検出するソースコード解析ツール。
- Linticator - Eclipse CDTにおけるPc-/FlexeLintの統合。
- IKOS - 抽象解釈理論に基づくC/C++向けの静的解析ツール。[NOSA 1.3]
- List of tools for static code analysis - Wikipediaに掲載されている静的コード解析ツールの一覧。
- OptView2 - Clangの最適化が漏れている箇所を検出するツール。
- Trunk - コードのチェック、テスト、マージ、監視を行うツールキット。
- CodeCompass - 大規模C/C++プロジェクト向けのオープンソースコード理解ツール。[GPL-3.0]
- CodeChecker - Clang Static AnalyzerおよびClang-Tidy向けの解析ツール、欠陥データベース、閲覧拡張機能。[Apache-2.0]
コーディングスタイルツール
- Artistic Style - C/C++/C#/Obj-C/Javaコードのフォーマットを行うツール。もしくはastyleと呼ばれる。
- ClangFormat - C/C++/Obj-Cコードのフォーマットを行うツール。
- Clang-Tidy - ClangベースのC++リントツール。
- EditorConfig - EditorConfigは、異なるエディタおよびIDE間で一貫したコーディングスタイルを維持するためのツール。
- Uncrustify - コードの美しさを保つツール(コードビューティファイア)。
リソース
C++開発スキルや知識を向上させるための書籍、ウェブサイト、記事など多様なリソース
API設計
記事
素晴らしいC++関連記事
- CppCon 2023 Presentation Materials - CppCon 2023の発表資料。
- CppCon 2022 Presentation Materials - CppCon 2022の発表資料。
- CppCon 2021 Presentation Materials - CppCon 2021の発表資料。
- CppCon 2020 Presentation Materials - CppCon 2020の発表資料。
- CppCon 2019 Presentation Materials - CppCon 2019 Presentation Materials.
- CppCon 2018 Presentation Materials - CppCon 2018 Presentation Materials.
- CppCon 2017 Presentation Materials - CppCon 2017 Presentation Materials.
- CppCon 2016 Presentation Materials - CppCon 2016 Presentation Materials.
- CppCon 2015 Presentation Materials - CppCon 2015 Presentation Materials.
- CppCon 2014 Presentation Materials - CppCon 2014 Presentation Materials.
- C++Now 2023 Presentations - C++Now 2023 での発表資料.
- C++Now 2022 Presentations - C++Now 2022 での発表資料.
- C++Now 2021 Presentations - C++Now 2021 での発表資料.
- C++Now 2019 Presentations - C++Now 2019 での発表資料.
- C++Now 2018 Presentations - C++Now 2018 での発表資料.
- C++Now 2017 Presentations - C++Now 2017 での発表資料.
- C++Now 2016 Presentations - C++Now 2016 での発表資料.
- C++Now 2015 Presentations - C++Now 2015 での発表資料.
- C++Now 2014 Presentations - C++Now 2014 での発表資料.
- C++Now 2013 Presentations - C++Now 2013 での発表資料.
- C++Now 2012 Presentations - C++Now 2012 での発表資料.
- cpp17_in_TTs - C++17 の機能についての説明(主に “Tony Tables” で行われた).
- All C++20 core language features with examples - C++20 の核心言語機能に関する参考資料(例を含む).
- Memory Footprint of GUI Toolkits - さまざまな GUI ツールキットのメモリ消費量の比較資料。
- C++ UI Libraries - C++のUIソリューションを網羅したリスト
- C++ Compilation - C++のコンパイルプロセスについての簡潔な説明
- Books on C++17 - C++17に関する書籍のリスト
- modern-cpp-features - 現代C++の言語およびライブラリ機能をまとめたチェックリスト
- Choosing Some C++ Over C - C++を使うべきタイミングについての記事
- C++ 17 Features - C++17の機能を網羅したリスト
- Master C Programming with Open Source Books - Cプログラミングを学ぶためのオープンソース書籍を厳選したリスト
書籍
素晴らしいCまたはC++関連書籍
- List of Free C or C++ Books
- Free C Books - vhf/free-programming-books/C.
- Free C++ Books - vhf/無料プログラミング書/C++.
- Practical Guide to Bare Metal C++
- cppbestpractices - C++のベストプラクティスを協働で集めたコレクション
コーディング標準
コーディングスタイル
- C++ Core Guidelines - C++の作者が審査した公式なC++ガイド
- C++ Dos and Don’ts - Chromiumプロジェクト > 開発者向け > コーディングスタイル > C++のルールと禁止事項
- google-styleguide - Googleが発祥したオープンソースプロジェクトのスタイルガイド
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- LLVM Coding Standards
ポッドキャスト
- CppCast - C++開発者がC++開発者に向けた最初のポッドキャスト
- CppChat - C++コミュニティのメンバーと対話しながら、C++界の最新動向を週に1回(場合によっては)見つめるコンテンツ
講演
- C++ Conferences - C++コンファレンスのカタログ
- CppCon Talks :zap: - C++のコンファレンス。
- Quick game development with C++11/C++14 - Vittorio RomeoによるCppCon 2014の講演
- Presentation on Hana for C++Now 2015
- Meeting Cpp - Meeting C++ YouTubeチャンネル
ビデオ
素晴らしいCまたはC++関連ビデオ
- List of C or C++ YouTube Videos
- Awesome C Programming Tutorials in Hi Def [HD] - 初心者および新規プログラマー向けの詳細なCプログラミング言語チュートリアルのコレクション
- C++ - voidrealmsによって。
- C++ Qt Programming - voidrealmsによって。
- C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
- C++ Programming Tutorials from thenewboston - これらはすべてthenewbostonのC++プログラミングチュートリアルです.
- C++ GUI with Qt Playlist - thenewbostonのC++GUI with Qtチュートリアルの公式プレイリスト.
- Caleb Curry’s C Programming Tutorials - Cプログラミング用のすべてのチュートリアルを一括したプレイリストです.
- C Programming Tutorials - TheNewBostonのすべてのCプログラミングチュートリアルがここにあります.
- Bo Qian’s playlist - Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, …
- The Cherno’s C++ Playlist - The Chernoによる広範なC++チュートリアルシリーズ.
- Code for Yourself C++ Playlist - C++の基礎からソフトウェア設計までをカバーする完全なC++コース.
ウェブサイト
有用なCまたはC++関連ウェブサイト
- Standard C++ :zap: - スタンダードC++に関するニュース、状態およびディスカッション。
- Build Bench - C++のビルドを比較する.
- Quick Bench - C++のベンチマークを速く確認する.
- CppCon - The C++ Conference.
- C++ reference - CおよびC++言語と標準ライブラリに関する完全なオンラインリファレンス.
- cppstat - コンパイラおよび標準ライブラリ実装がアクセスしやすい形でリストされているC++機能のサイトです.
- C++ by Example - 例をもとにC++を学ぶ.
- cplusplus.com - The C++ Resources Network.
- C FAQ - Cに関するよくある質問.
- C++ FAQ - C++に関するよくある質問.
- C++ FQA Lite - C++に関するよく問われる答え.
- C++ Quiz - C++プログラミング言語の知識をテストできるシンプルなオンラインクイズです.
- Guru of the Week - Herb Sutterが作成・執筆したC++プログラミング問題の定期的なシリーズ
- Meeting C++
- PVS-Studio’s challenge - PVS-StudioによるC++クイズで、オープンソースプロジェクトのコード断片に含まれるエラーを特定する問題
- Udemy C++ Courses and Tutorials
- C++ Hints - 毎日、PVS-Studioチームが提供するC++でよく見られる誤りとその解決方法に関するヒント
- C++ tutorial - オンラインチュートリアルサイトで、C++を学ぶための複数のコースを表示するユーザーランクされたサイト
- C++ Tutorial for Beginners - 専門家が厳選したC++チュートリアル
- cppexpert.online - 悪い実践や問題をもとにコードスニペットを改善することで、最高のC++実践を学ぶ
- C++ for yourself - 現代C++に関する包括的なチュートリアルで、基礎からソフトウェア設計までをカバー
- CompileBytes C++ Compiler – Online C++ compiler and interactive code execution environment.
- C++ Resources - C++リソース(書籍、記事、ツール)を収録したコレクション
- CppPatterns - 現代C++のパターンと慣例のリポジトリ。 website
- Function Pointers - C/C++における関数ポインタを理解するためのガイド
ブログ
有用なCまたはC++関連ブログ
- Coding For Speed - Coding For Speed DOT COM、実行時間の短縮
- Eric Niebler
- Sticky Bits
- Paul Fultz II’s Blog
- ridiculousfish - Will It Optimize?
- Embedded in Academia
- Simplify C++
- Fluent C++
- Bartek’s Coding Blog
- Kenny Kerr
- Sutter’s Mill
- Vorbrodt’s C++ Blog
- foonathan::blog()
- C++ Team Blog - Microsoft Visual C++チームによる開発ブログ
その他素晴らしいプロジェクト
有用なコード、スニペット、…のコレクション
- algorithms - C++におけるアルゴリズムとデータ構造
- c-algorithms - C++アルゴリズムライブラリ
- 30 Seconds of C++
- awesome-ld-preload - LD_PRELOADに関連するリソースを厳選したリスト
- awesome-static-analysis - すべてのプログラミング言語向けの静的解析ツールを厳選したリスト
- cpp_functional_programming - C++関数型プログラミングに関する資料とリンクのリスト
- algorithms_and_data_structures - C++でアルゴリズ及データ構造を実装したもの
その他素晴らしいリスト
その他驚くほど素晴らしいリスト
- lists - GitHub上で厳選された(素晴らしい)リストのリスト
- awesome-awesomeness - 素晴らしい素晴らしさを厳選したリスト
- awesome :zap: - すごいリストを厳選した一覧。
- C++ links - C++リソースをカテゴリ分けした一覧。
- Awesome C++ - LibHuntのミラー。
- Awesome C 1
- Awesome C 2
- Awesome Modern C++ - 現代C++に関するリソースのコレクション。
- AwesomePerfCpp - すごいC/C++パフォーマンス最適化リソースの一覧。
- free-programming-books - 無料で入手可能なプログラミング書籍の一覧。
- Inqlude - Qtライブラリのアーカイブ。
- papers-we-love - コンピュータサイエンスコミュニティから読む・議論するべき論文の一覧。
- awesome-algorithms - アルゴリズムを学び・練習するための素晴らしい場所の一覧。
- awesome-hpp - 素晴らしいヘッダーのみのC++ライブラリのキュレーションリスト。
- awesome-talks - 多くのスクリーンキャスト、ユーザーグループの集まりやカンファレンスの講演の録画。
- Projects - どんなプログラミング言語でも誰でも解決できる実用的なプロジェクトの一覧。
- Awesome interview questions - 最も人気のある技術(CおよびC++を含む)に対するインタビュー質問リストのリスト。
- nothings/single_file_libs :zap: - シングルファイルC/C++ライブラリの一覧。
求人
- This list is currently empty, but you can add to it by opening a merge request.
スポンサー
- Please reach out if you are interested in sponsoring this repo. Your company’s name and logo will be prominently displayed here.
貢献
詳細は貢献ガイドラインを確認してください。 すべての貢献者に感謝します。