シングルファイルのパブリックドメイン/オープンソースライブラリで、最小限の依存性
私は、多数のシングルファイルC/C++パブリックドメインライブラリの作者です。 このようなライブラリを書いているのは私だけではないので、以下に他の類似のライブラリを紹介します。
一般的に以下はCやC++から使用可能で、32ビットと64ビットの両方のプラットフォームでコンパイルできる、小さく、統合しやすい、移植可能なライブラリのリストです。しかし私は、特定のライブラリが宣伝どおりであるかどうか、高品質のソフトウェアであるかどうか、個人的に検証したわけではありません。
ルール
- CまたはC++から利用可能なライブラリであること(理想は両方)。
- 複数のプラットフォームで利用可能であること (理想的には、すべての主要なデスクトップおよび/またはすべての主要なモバイル)
- ライブラリは32ビットと64ビットの両方のプラットフォームでコンパイルでき、動作すること。
- ライブラリは最大でも2つのファイル(ヘッダーとソース)を使用すること。
正当な理由がある場合は例外を認めます。
最近の追加情報
最近追加されたものには、左列にアスタリスクが付けられています。
新しいライブラリと訂正
リストの後にあるディスカッションをご覧ください。
JSONパース
ここには多くのJSONパーサーがリストアップされています。いくつかの解析とパフォーマンス結果についてはhttps://github.com/miloyip/nativejson-benchmarkをご覧ください。
その他のリスト
また関連する別のリストにも興味があるかもしれません。
ライブラリのリスト
CおよびC++から利用可能なパブリックドメインのシングルファイルライブラリは太字で表示されています。 その他のライブラリは、パブリックドメインでないか、2ファイルであるか、CとC++の両方から使えないか、3つとも使えないかのいずれかです。2ファイル以上のライブラリは、ほとんど禁止されています。
API欄では"C"はCのみ、"C++"はC++のみ、"C/C++"はどちらからでも使えるC/C++を意味します。いくつかのファイルはCまたはC++としてビルドする必要がありますが、ヘッダーファイルが動作するように extern "C"
を使っていれば"C/C++"として適格です。(場合によっては、ヘッダーファイルのみのライブラリはCまたはC++としてコンパイルされますが、extern "C"
が使用されていないため、どちらか一方からしか呼び出せない実装を生成します。この場合、ほとんどのユーザーにとって障害とならないため、表はまだそれをC/C++として修飾します)
カテゴリー:
- 汎用
- 数学
- パーサー
- グラフィクス
- オーディオ/ビデオ/データ圧縮
- ビデオゲーム
- オペレーティングシステム機能
- デバッグ・プロファイリング・テスト
- その他
AI
library | license | API | files | description |
---|---|---|---|---|
Genann | zlib | C/C++ | 2 | シンプルニューラルネットワーク (ANN) |
KANN | MIT | C/C++ | 2 | 自動微分 (2ファイル) |
micropather | zlib | C++ | 2 | * でパスファインディング |
argv
library | license | API | files | description |
---|---|---|---|---|
Argh! | BSD | C++ | 1 | コマンドライン引数解析 |
Clara | Boost | C++ | 1 | C++ 11 以降に対応したコマンドラインパーサ。 |
CLI11 | BSD | C++ | 1 | モダンなC++11で機能豊富なCLI構文解析を実現 |
cmdline | BSD | C++ | 1 | コマンドライン引数解析 |
flags | public domain | C++ | 1 | コマンドライン引数解析 |
kgflags | MIT | C/C++ | 1 | コマンドライン引数解析 |
linkom | MIT | C/C++ | 1 | コマンドライン引数解析 w/ DOS風オプション |
optionparser | MIT | C++ | 1 | コマンドライン引数解析 |
parg | public domain | C | 2 | コマンドライン引数解析 |
ProgramOptions.hxx | MIT | C++ | 1 | コマンドライン引数解析 |
audio
library | license | API | files | description |
---|---|---|---|---|
aw_ima.h | MIT | C/C++ | 1 | IMA-ADPCM オーディオデコーダ |
btac1c | MIT | C/C++ | 1 | MS-IMA_ADPCM バリアント |
dr_flac | public domain | C/C++ | 1 | FLACオーディオデコーダー |
dr_wav | public domain | C/C++ | 1 | WAVオーディオローダー |
Geneva | MIT | C/C++ | 1 | 各種8ビット波形を生成するライブラリ |
minimp3 | CC0 | C | 1 | sse/neonをサポートするミニマルなMP3デコーダ |
miniaudio | public domain | C/C++ | 1 | オーディオ再生・キャプチャライブラリ |
pocketmod | MIT | C/C++ | 1 | ProTracker MODファイルレンダラー |
sts_mixer | public domain | C/C++ | 1 | 簡易ステレオオーディオミキサー |
tinysound | zlib | C/C++ | 1 | ダイレクトサウンドオーディオミキサー&WAVローダー |
TinySoundFont | MIT | C/C++ | 1 | SoundFont2 ローダー&シンセサイザー |
圧縮
library | license | API | files | description |
---|---|---|---|---|
dmc_unrar | GPLv2+ | C/C++ | 1 | RARファイルの解凍 |
fastlz | MIT | C/C++ | 2 | 高速だが大きなLZ圧縮 |
lz4 | BSD | C/C++ | 2 | 高速だが大きなLZ圧縮 |
miniz.c | MIT | C/C++ | 1 | 圧縮、解凍、ZIPファイル、PNG書き込み |
microtar | MIT | C/C++ | 2 | 軽量tarライブラリ |
pithy | BSD | C/C++ | 2 | 高速だが大きなLZ圧縮 |
暗号
library | license | API | files | description |
---|---|---|---|---|
Monocypher | public domain | C | 2 | 高品質な小型暗号ライブラリ |
TweetNaCl | public domain | C | 2 | 高品質な小型暗号ライブラリ |
データ構造
library | license | API | files | description |
---|---|---|---|---|
avl | public domain | C/C++ | 2 | AVLツリー |
c-bool-value | WTFPLv2 | C/C++ | 1 | 標準C言語によるシンプルで簡単なブーリアン値 |
chobo-shl | MIT | C++ | 1 | C++11標準のライブラリやヘルパーのようなもの。 |
DG_dynarr.h | public domain | C/C++ | 1 | プレーン C のためのタイプセーフな動的配列 (std::vector のような) |
DynaVar | GPL-3.0 | C++ | 1 | 任意の種類のプリミティブデータ型を格納することができるオブジェクト |
klib | MIT | C/C++ | 2 | 多くの 2 ファイルライブラリ: ハッシュ、ソート、Bツリー、その他 |
libpqueue | BSD | C/C++ | 2 | 優先順位待ち行列(ヒープ) |
minilibs | public domain | C | 2 | 2ファイルバイナリートレス (also regex, etc) |
PackedArray | WTFPLv2 | C | 2 | 非Pow2ビット数でメモリ効率の良い要素配列 |
simclist | BSD | C/C++ | 2 | リンクつきリスト |
selist | ISC | C/C++ | 2 | スペース効率に優れたリンクリスト |
mempool | MIT | C++ | 1 | C++の効率的な最小メモリプール実装 |
uthash | BSD | C/C++ | 2 | 1ヘッダ、1ライセンスファイルのライブラリ: 汎用ハッシュ、リスト、その他 |
デバッグ
library | license | API | files | description |
---|---|---|---|---|
dbgtools | zlib | C/C++ | 2 | クロスプラットフォームデバッグユーティリティライブラリ |
debug-assert | zlib | C++ | 1 | モジュール式アサーションマクロ |
debugbreak | BSD | C/C++ | 1 | プログラムデバッグブレーク |
loguru | public domain | C++ | 1 | フレキシブルロギング |
pempek_assert.cpp | WTFPLv2 | C++ | 2 | フレキシブルアサーション |
ファイルおよびファイル名
library | license | API | files | description |
---|---|---|---|---|
DG_misc.h | public domain | C/C++ | 1 | Daniel Gibson の stb.h 風のクロスプラットフォームヘルパー: path/file、文字列 |
dirent | MIT | C/C++ | 1 | dirent for Windows: ファイルとディレクトリの情報を取得します。 |
tfile | MIT | C++ | 1 | FILE* ラッパーが read-write-append-seek-close を行う (Win/Mac/Unix) |
TinyDir | BSD | C | 1 | クロスプラットフォームでのディレクトリ読み込み(Win/POSIX/MinGW) |
tinyfiles | zlib | C/C++ | 1 | クロスプラットフォームでのディレクトリ読み込み(Win/Mac/Unix) |
whereami | WTFPLv2 | C/C++ | 2 | 実行ファイルやモジュールのパスやファイル名を取得する。 |
ジオメトリファイル
library | license | API | files | description |
---|---|---|---|---|
cgltf | MIT | C | 1 | glTF 2.0 ファイルローダー |
fast_obj.h | MIT | C | 1 | wavefront OBJ ファイルローダー |
objzero | MIT | C | 2 | wavefront OBJ ファイルローダー |
tinyply | public domain | C++ | 2 | PLY メッシュファイルローダ |
tinyobjloader | MIT | C++ | 1 | wavefront OBJ ファイルローダー |
tinyobjloader-c | MIT | C | 1 | wavefront OBJ ファイルローダー |
tk_objfile | MIT | C/C++ | 1 | OBJ ファイルローダー |
yocto_obj.h | MIT | C/C++ | 1 | wavefront OBJ ファイルローダー |
幾何学数学
library | license | API | files | description |
---|---|---|---|---|
Clipper | Boost | C++ | 2 | ライン・ポリゴンのクリッピングとオフセット |
df | public domain | C/C++ | 1 | ボロノイ領域を格子の大きさの線形時間で見つける。 |
jc_voronoi | MIT | C/C++ | 1 | float/double データからボロノイ領域を探す |
nanoflann | BSD | C++ | 1 | 点群のKDツリーを構築する |
nv_voronoi.h | public domain | C/C++ | 1 | 整数入力の格子上のボロノイ領域の探索 |
par_msquares | MIT | C/C++ | 1 | 二値化された画像を三角形に変換する |
par_shapes | MIT | C/C++ | 1 | 様々な3次元幾何学形状を生成 |
PolyPartition | MIT | C++ | 2 | ポリゴンの三角形分割、パーティショニング |
rjm_mc.h | public domain | C/C++ | 1 | マーチングキューブ三角測量機 |
sobol.h | public domain | C/C++ | 1 | ソボルと層別サンプリングシーケンス |
sdf.h | MIT | C/C++ | 1 | アンチエイリアス画像から符号付き距離フィールドを計算する |
Tomas Akenine-Moller snippets | public domain | C/C++ | 2 | 様々な3D交差点計算、lib化されていない |
Voxelizer | MIT | C/C++ | 1 | 三角形メッシュをボクセル三角形メッシュに変換する |
xatlas | MIT | C++ | 2 | メッシュパラメタリゼーション |
yocto_bvh.h | MIT | C/C++ | 1 | 線型キャストと境界ボリューム階層の最も近い要素クエリ |
yocto_shape.h | MIT | C/C++ | 1 | シェイプ生成、テッセレーション、法線など。 |
グラフィック(テキスト)
library | license | API | files | description |
---|---|---|---|---|
rang | public domain | C++ | 1 | クロスプラットフォーム・カラーコンソールテキスト |
グラフィクス (2d)
library | license | API | files | description |
---|---|---|---|---|
blendish | MIT | C/C++ | 1 | NanoVGを使ったブレンダースタイルウィジェットレンダリング |
Cimg | CeCILL/CeCILL-C | C++ | 1 | 画像処理ツールキット(60K LoC) |
Immediate2D | public domain | C++ | 2 | Windows用ゼロコンフィギュレーション、イミディエイトモード2Dグラフィックス |
noc_turtle | MIT | C/C++ | 2 | 手続き型グラフィックスジェネレータ |
tigr | public domain | C/C++ | 2 | WindowsとmacOSのためのクイック&ダーティなウィンドウテキスト/グラフィックス |
グラフィクス (3d)
library | license | API | files | description |
---|---|---|---|---|
debug-draw | public domain | C++ | 1 | APIにとらわれない即時モードデバッグレンダリング |
lightmapper | public domain | C/C++ | 1 | OpenGLレンダラを使ってオフラインでライトマップを焼く |
mikktspace | zlib | C/C++ | 2 | 法線マッピングのための接線空間を計算する |
rjm_raytrace.h | public domain | C/C++ | 1 | オフラインベーキングのための最小限のSSEパケットレイトレーサー |
seamoptimizer | public domain | C/C++ | 1 | ライトマップデータを修正して継ぎ目を隠す |
sokol_gfx.h | MIT | C/C++ | 1 | クロスプラットフォーム 3D API ラッパー (GLES2+3/GL3/D3D11/Metal) |
Swarmz | public domain | C++ | 1 | スウォーミング/フロッキングアルゴリズム |
tinygizmo | public domain | C++ | 2 | 3D変換をインタラクティブに編集するためのギズモオブジェクト |
Vertex Cache Optimizer | public domain | C/C++ | 1 | メッシュの頂点キャッシュ最適化 |
Vulkan Memory Allocator | MIT | C/C++ | 1 | Vulkan用メモリアロケータ |
yocto_trace.h | MIT | C/C++ | 1 | 物理ベース単方向パストレーサー(ダイレクトライト用MIS付き |
yocto_symrigid.h | MIT | C/C++ | 1 | 剛体シミュレータ(逐次インパルス/PGS)、凹型オブジェクト対応 |
ハード
library | license | API | files | description |
---|---|---|---|---|
EasyTab | public domain | C/C++ | 1 | マルチプラットフォーム・タブレット入力 |
libue | MIT | C/C++ | 1 | Linuxデバイスのホットプラグアイベント用ヘルパーライブラリ |
ハッシュ化
library | license | API | files | description |
---|---|---|---|---|
xxHash | BSD | C/C++ | 2 | 高速ハッシュ関数 |
画像
library | license | API | files | description |
---|---|---|---|---|
EXR miniexr | public domain | C++ | 2 | OpenEXRライター、ヘッダーファイルが必要 |
EXR tinyexr | BSD | C/C++ | 1 | EXRイメージの読み込み/書き込み、内部でminizを使用 |
GIF gif.h | public domain | C++ | 1 | アニメーションGIFライター(1回のみ搭載可能) |
GIF gif_load | public domain | C/C++ | 1 | (アニメーション) GIFリーダー |
GIF jo_gif.cpp | public domain | C++ | 1 | アニメーションGIFライター(CPPファイルはHファイルとしても使用可) |
JPG jpeg-compressor | public domain | C++ | 2 | 2ファイルJPEG圧縮、2ファイルJPEG伸張 |
JPG NanoJPEG | MIT | C/C++ | 1 | JPEGデコーダ |
JPG tiny_jpeg.h | public domain | C/C++ | 1 | JPEGエンコーダ |
JPG EXIF easyexif | MIT | C++ | 2 | JPEG画像用EXIFメタデータ抽出ツール |
JPG EXIF TinyEXIF | BSD | C++ | 2 | JPEG (XMP w/ TinyXML2 lib) からの EXIF データのパース |
PDF PDFgen | public domain | C | 2 | PDFライター |
PNG lodepng | zlib | C/C++ | 2 | PNGエンコーダー/デコーダー |
PNG picopng.cpp | zlib | C++ | 2 | ちっちゃなPNGローダー |
PNG TinyPngOutput | LGPLv3 | C/C++ | 2 | PNGライター |
PNM PNM | Apache 2.0 | C++ | 1 | PBM、PGM、PPMのリーダ/ライタ |
SVG nanoSVG | zlib | C/C++ | 1 | 1ファイルSVGパーサ、1ファイルSVGラスタライザ |
cro_mipmap.h | public domain | C/C++ | 1 | 平均、最小、最大ミップマップジェネレータ |
rjm_texbleed.h | public domain | C/C++ | 1 | alpha=0となる画素の色を塗りつぶす。 |
数学
library | license | API | files | description |
---|---|---|---|---|
amoeba | MIT | C/C++ | 1 | 制約ソルバー(Cassowary)、Luaバインディング付き |
fft | public domain | C++ | 1 | 高速フーリエ変換 |
PoissonGenerator.h | MIT | C++ | 1 | ポアソン円盤点生成器(円盤または矩形) |
prns.h | public domain | C/C++ | 1 | シーク可能な擬似乱数列 |
rnd.h | public domain | C/C++ | 1 | 擬似乱数生成 |
ShaderFastLibs | MIT | C++ | 1 | (HLSLでも) シェーダ用に最適化された近似超越関数 (特にGCN) |
simrank.hpp | MIT | C++ | 2 | SimRankグラフ類似性アルゴリズム |
SummedAreaTable | MIT | C++ | 1 | Summed-Area Tableの生成とsum/avgクエリ |
TinyExpr | zlib | C | 2 | 文字列から数式を評価する |
マルチスレッド
library | license | API | files | description |
---|---|---|---|---|
bikeshed.h | MIT | C/C++ | 1 | クロスプラットフォーム ロックフリー 固定メモリ 階層型作業スケジューラ |
mm_sched.h | zlib | C/C++ | 1 | enkiTS をベースとしたクロスプラットフォームなマルチスレッドタスクスケジューラ。 |
thread.h | public domain | C/C++ | 1 | クロスプラットフォーム・スレッドプリミティブ |
TinyCThread | zlib | C/C++ | 2 | C11 Threads API のクロスプラットフォーム実装 |
TinyThread++ | zlib | C++ | 2 | C++11 Threads API のクロスプラットフォーム実装 |
ネットワーク
library | license | API | files | description |
---|---|---|---|---|
civetweb | MIT | C/C++ | 2 | HTTP サーバ、Mongoose のフォーク |
EWS | BSD | C/C++ | 1 | HTTPサーバー |
happyhttp | zlib | C++ | 2 | HTTPクライアントリクエスト |
http | public domain | C/C++ | 1 | HTTP get/post |
libcluon | MPL-2.0 | C++ | 1 | Protobuf, LCM/ZCM, JSON, MsgPack のシリアライズ/デシリアライズをネイティブ実装したクロスプラットフォームのソケットラッパーとデータマーシャリング。 |
LUrlParser | MIT | C++ | 2 | 軽量URL・URIパーサ RFC 1738, RFC 3986 |
mm_web.h | BSD | C/C++ | 1 | 軽量ウェブサーバ、webby のフォーク |
mongoose | GPLv2 | C/C++ | 2 | HTTPサーバー |
par_easycurl.h | MIT | C/C++ | 1 | cURL ラッパー |
sts_net | public domain | C/C++ | 1 | クロスプラットフォームソケットラッパー(ソケットセット、パケットAPI) |
yocto | public domain | C/C++ | 2 | 非プロダクションユースのHTTPサーバー |
zed_net | public domain | C/C++ | 1 | クロスプラットフォームソケットラッパー |
znet | MIT | C/C++ | 1 | Luaバインディングによるクロスプラットフォームネットワーキング |
シリアライズ
library | license | API | files | description |
---|---|---|---|---|
archive | public domain | C++ | 1 | STLサポートによるバイナリー・シリアライズとデシリアライズ |
libcluon | MPL-2.0 | C++ | 1 | Protobuf, LCM/ZCM, JSON, MsgPack のネイティブ実装によるクロスプラットフォームなデータシリアライズ/デシリアライゼーション。 |
json
library | license | API | files | description |
---|---|---|---|---|
ajson | Boost | C++ | 1 | JSONのシリアライズとデシリアライズ、STLのサポート |
cJSON | MIT | C/C++ | 1 | JSONパーサー |
json.h | public domain | C/C++ | 2 | JSONパーサー |
json.hpp | MIT | C++ | 1 | JSONのパース、シリアライズ、デシリアライズ |
jzon.h | MIT | C++ | 2 | JSONパーサー |
PicoJSON | BSD | C++ | 1 | JSONパース/シリアライザ |
parson | MIT | C/C++ | 2 | JSONパーサーとシリアライザー |
yaml
library | license | API | files | description |
---|---|---|---|---|
mini-yaml | MIT | C++ | 2 | YAML パーサーとシリアライザー |
csv
library | license | API | files | description |
---|---|---|---|---|
CSVstream | MIT | C++ | 1 | CSVパーサー |
Fast C++ CSV Parser | BSD | C++ | 1 | CSVパーサー |
Rapidcsv | BSD | C++ | 1 | CSVパーサー |
Vince's CSV Parser | MIT | C++ | 1 | CSVパーサおよびシリアライザ |
パーサー
library | license | API | files | description |
---|---|---|---|---|
cmp | MIT | C/C++ | 2 | MessagePack パーサおよびシリアライザ |
inih | BSD | C/C++ | 2 | .iniファイルパーサ |
ini.h | public domain | C/C++ | 1 | .iniファイルパーサ |
minilibs | public domain | C | 2 | 2ファイル正規表現 |
mm_lexer.h | zlib | C/C++ | 1 | C言語風言語レキサー |
SLRE | GPLv2 | C/C++ | 1 | 正規表現マッチャー |
tinymemfile | zlib | C++ | 1 | インメモリファイルのfscanf |
プロファイリング
library | license | API | files | description |
---|---|---|---|---|
MicroProfile | public domain | C++ | 2-4 | CPU(とGPU?)プロファイラ、1-3ヘッダファイル、内部でminizを使用。 |
prof | MIT | C/C++ | 1 | Linux用プロファイラ |
Remotery | Apache 2.0 | C/C++ | 2 | CPU/GPUプロファイラ Win/Mac/Linux、ビューワはWebブラウザを使用。 |
スクリプト
library | license | API | files | description |
---|---|---|---|---|
Duktape | MIT | C | 2 | 埋め込み型JavaScriptエンジン |
MY-BASIC | MIT | C | 2 | BASIC方言のスクリプト言語用インタプリタ |
LIL | zlib | C/C++ | 2 | Tcl ライクなスクリプト言語用インタプリタ |
lualite | MIT | C++ | 1 | C++でLuaバインディングを生成 |
Picol | BSD | C/C++ | 1 | Tcl ライクなスクリプト言語用インタプリタ |
s7 | BSD | C/C++ | 2 | Schemeのサブセット(R5RS/R7RS)用のインタプリタです。 |
文字列
library | license | API | files | description |
---|---|---|---|---|
dfa | MIT | C/C++ | 2 | 高速 UTF-8 デコーダ (ヘッダファイルが必要) |
DG_misc.h | public domain | C/C++ | 1 | Daniel Gibson の stb.h 風のクロスプラットフォームヘルパー: path/file、文字列 |
gb_string.h | public domain | C/C++ | 1 | 動的文字列 |
Obfuscate | public domain | C++ | 1 | C++14用コンパイル保証型文字列リテラル難読化ライブラリ |
inja.hpp | MIT | C++ | 1 | テンプレートエンジン |
strpool.h | public domain | C/C++ | 1 | 文字列インターン |
str_view.hpp | MIT | C++ | 1 | null-termination-aware string-view class |
utf8 | public domain | C/C++ | 1 | UTF-8文字列ライブラリ |
ユニットテスト
library | license | API | files | description |
---|---|---|---|---|
catch | Boost | C++ | 1 | ユニットテスト |
catch2 | Boost | C++ | 1 | ユニットテスト |
doctest | MIT | C++ | 1 | ユニットテスト |
fctx | BSD | C/C++ | 1 | ユニットテスト |
greatest | iSC | C | 1 | ユニットテスト |
hippomocks | LGPL | C++ | 1 | ユニットテスト |
labrat | public domain | C/C++ | 1 | ユニットテスト |
minctest | zlib | C | 1 | ユニットテスト |
munit | MIT | C | 1 | ユニットテスト |
SPUT | BSD | C/C++ | 1 | ユニットテスト |
trompeloeil | Boost | C++ | 1 | ユニットテスト |
utest | MIT | C/C++ | 1 | ユニットテスト |
utest.h | public domain | C/C++ | 1 | ユニットテスト |
ユーザーインターフェース
library | license | API | files | description |
---|---|---|---|---|
dear imgui | MIT | C++ | 9 | 以前は "ImGui" と呼ばれていた即時モードGUI。; サードパーティ製C言語ラッパー |
libcmdf | public domain | C | 1 | CLI アプリケーションを書くための小さなライブラリ |
linenoise | BSD | C/C++ | 2 | ターミナルの読み出しと履歴など |
noc_file_dialog.h | MIT | C/C++ | 1 | ファイルを開く/保存するダイアログ(Win/Mac/Linux) |
nuklear | public domain | C/C++ | 1 | 最小限のGUIツールキット |
tinyfiledialogs | ZLIB | C/C++ | 2 | モーダルダイアログ、ファイルオープン/セーブ (Win/Mac/Linux) |
wcwidth9 | Apache 2.0 | C | 1 | プラットフォーム非依存の wcwidth で unicode 9 を完全サポート |
ベクトル
library | license | API | files | description |
---|---|---|---|---|
algebra3.h | public domain | C++ | 1 | 2、3、4 要素ベクトル用ベクトルユーティリティ(すべてインライン化 |
ccVector.h | public domain | C/C++ | 1 | ベクトル、クォータニオン、行列の計算 |
gb_math | public domain | C/C++ | 1 | ベクトル、四元数、行列の計算をmath.hなしで行う。 |
Handmade Math | public domain | C/C++ | 1 | ベクトル数学 |
linalg.h | public domain | C++ | 1 | ベクトル/マトリックス/クォータニオン数学 |
linalg | ISC | C/C++ | 1 | ベクトル/マトリックス/クォータニオン数学 |
mm_vec.h | BSD | C/C++ | 1 | SIMDベクトル演算 |
ビデオ
library | license | API | files | description |
---|---|---|---|---|
jo_mpeg | public domain | C++ | 1 | MPEGファイルライター |
ビデオゲーム
library | license | API | files | description |
---|---|---|---|---|
app.h | public domain | C/C++ | 1 | Windows専用だが、クロスプラットフォームのゲーム的なフレームワークであること。 |
雑多
library | license | API | files | description |
---|---|---|---|---|
ASAP | MIT | C++ | 1 | 日付の解析、印刷、反復処理、操作を行うためのライブラリです。 |
cpp-generators | BSD | C++ | 1 | C++のジェネレータ |
Hedley | public domain | C/C++ | 1 | コンパイラの移植性、最適化、静的解析など。 |
levenshtein | MIT | C/C++ | 2 | 2つの文字列間の編集距離を計算する |
MakeID.h | public domain | C++ | 1 | 小さな整数IDを効率的に割り当て/解放する。 |
picobench | MIT | C++ | 1 | マイクロベンチマーキング |
PlusCallback | zlib | C++ | 1 | 関数/メソッドコールバック |
process.h | public domain | C/C++ | 1 | プロセスコントロールAPI |
random | MIT | C++ | 1 | 乱数のための便利なAPI |
sokol_time.h | MIT | C/C++ | 1 | クロスプラットフォームでの時間計測 |
stmr | MIT | C | 2 | 英単語の語幹を抽出する |
tinyformat | Boost | C++ | 1 | タイプセーフprintf |
tinytime | zlib | C/C++ | 1 | クイック&ダーティタイム経過時間 |
visit_struct | Boost | C++ | 2 | struct-field reflection |
このようなXMLライブラリもありますが、私はXMLが著しく苦手なので、よく考えてもらうために一番下に記しました。
新しいライブラリと訂正
新しいライブラリの投稿課題として、またはプルリクエストとして提出することができます。ヘッダーファイルとソースファイルは2ファイルですが、ヘッダーファイル、ソースファイル、LICENSE(ライセンスがソースファイルにない場合)は3ファイルとなり、2ファイルではないので受け入れられませんのでご注意ください。しかし、実際には「LICENSE」はライブラリだけにスコープされているわけではないので、いずれにせよソースツリーにライブラリをドロップするだけでは問題です。したがって、ライブラリ作者は、ライセンスをソースファイルに含め、別にLICENSEを要求しないことが推奨されています。
訂正:上記のライブラリの情報が間違っている場合、issue、pull request、またはe-mailで訂正をお送りください。なお、このリストでC/C++の両方から動作するとされているライブラリが、そうでない場合、これはリストの誤りか、ライブラリのバグである可能性があります。あるライブラリが32ビットまたは64ビットで動作しないことがわかった場合、そのライブラリのバグでない限り、そのライブラリはこのリストから削除されるべきです。
リストFAQ
このリストに直接リンクすることはできますか?
はい。 このリンクが優先されます。
3つ以上のファイルから構成されるライブラリXXXは、なぜこのリストにないのですか?
私は任意に最大2ファイルまでと線引きしています。(2つのファイルに見えるライブラリの中には、別のLICENSEファイルを必要とするものがあり、それを除外していることに注意してください)。これらのライブラリの中には、プロジェクトにドロップしてビルドするのが簡単なものもありますから、それでも構わないかもしれません。しかし、stbに来る人は、シングルファイルのパブリックドメインライブラリを求めているので、私たちがここでやっていることから離れすぎているような気がするのです。
なぜ、最大で2つのファイルからなり、他の依存関係が最小のライブラリXXXがこのリストにないのでしょうか?
おそらく私が知らないからだと思いますが、プルリクエスト、イシュー、メール、ツイートでお気軽にお寄せください(あなた自身のライブラリでも他の人のライブラリでもかまいません)。しかし、「他の依存関係が最小限」であることや「軽量」であることなど、他のさまざまな理由から、私はそれを含めないかもしれません。
なぜSQLiteのamalgamated buildはこのリストにないのですか?
さあ?