命名空間
變體
動作

開源 C++ 程式庫列表

出自 cppreference.com
< cpp‎ | 連結

本頁面的目標是建立一份全面的開源 C++ 程式庫列表,以便在需要特定功能實作時,無需浪費時間在網路上(DuckDuckGoGoogleBing 等)搜尋。

如果您知道對他人有用的程式庫,請在此新增連結。除了程式庫的原始碼必須可以輕易取得並下載之外,沒有其他限制。

本頁面「依現狀」提供,旨在發揮其用途,但不提供任何擔保。頁面上可能會出現過時、誤導或錯誤的連結。如果您發現了這類問題,歡迎修正錯誤。

程式庫:目錄

程式庫


目錄

[編輯] 套件管理員

套件管理員 描述
build2 一個開源 (MIT)、跨平台的建置工具鏈,旨在為開發與封裝 C/C++ 專案提供接近 Rust Cargo 的便利性,同時在建置系統方面提供更大的深度與彈性。
cget Cmake 套件檢索器。可用於下載並安裝 cmake 套件。
cmodule 非侵入式的 cmake 相依性管理。
conan 去中心化、開源 (MIT) 的 C/C++ 套件管理員。
CPM.cmake 一個為 cmake 新增相依性管理功能的 cmake 腳本。它是基於 cmake 的 FetchContent 模組所建立的輕量級封裝,增加了版本控制、快取、簡易 API 等功能。
hunter 一個由 cmake 驅動的跨平台 C/C++ 專案套件管理員。
spack 用於超級電腦、Linux 和 macOS 的套件管理員。它讓科學軟體的安裝變得容易,並不綁定於特定語言。
teaport 一個受 cocoapods 啟發的相依性管理員。
vcpkg 適用於 Windows、Linux 和 macOS 的 C/C++ 套件管理員。
xmake 一個基於 Lua 的跨平台 C/C++ 建置工具與套件管理員。

[編輯] 程式庫

[編輯] 音訊

函式庫 描述 授權 配置
Amplitude Audio SDK 一款專為遊戲需求設計的跨平台音訊引擎。(原始碼 Apache-2.0 cmake, vcpkg
Aquila 一個用於 C++11 的開源且跨平台 DSP 程式庫。 MIT cmake
Aubio 一個用於音訊與音樂分析的 C/Python 程式庫。(原始碼 GPL-3.0 make
audioFlux 一個用於音訊與音樂分析、特徵提取的 C 程式庫。 MIT
Essentia 一個用於音訊與音樂分析、描述與合成 (MIR) 的開源程式庫與工具。(原始碼 Affero GPLv3
FFTW 一個用於計算 DFT 的程式庫 (SSE/SSE2/AVX/Altivec/ARM Neon)。(原始碼 GPL-2.0 cmake
FMOD 一個易於使用的跨平台音訊引擎與遊戲音訊內容創作工具。 非商業/商業用途免費 cmake
KFR 一個快速、現代、C++17、開源、跨平台的 DSP/DFT 框架,支援音訊重採樣、FIR/IIR 濾波器、雙二階濾波器 (Biquad),(SSE, AVX, AVX-512, ARM NEON)。(原始碼 GPL-2.0 cmake
libsoundio 一個用於跨平台即時音訊輸入與輸出的 C 程式庫。(原始碼 MIT cmake
Maximilian C++ 音訊與音樂 DSP 程式庫。 MIT cmake
Miniaudio 一個音訊播放與錄製的 C 程式庫。(原始碼 Unlicense 單一原始檔
ni-media 用於讀取與寫入音訊檔案的 C++ 程式庫。 MIT cmake, vcpkg
OpenAL 一個跨平台的音訊 API。 BSD/LGPL/私有軟體 cmake
PortAudio PortAudio 是一個免費、跨平台、開源的音訊 I/O 程式庫。(原始碼 MIT cmake, vcpkg
rnnoise 用於音訊降噪的循環神經網路。 BSD-3-Clause make
SELA SimplE Lossless Audio (簡易無損音訊)。 MIT cmake
SoLoud 適用於遊戲的簡易、可攜式音訊引擎。 zlib
Soundtouch SoundTouch 是一個開源的跨平台音訊處理程式庫,用於改變音訊串流或音訊檔案的節奏 (Tempo)、音高 (Pitch) 與播放速率。(原始碼 LGPL-2.1 make
Tonic C++ 中簡易且高效的音訊合成。 Unlicense
Verovio 一個快速且輕量級的樂譜排版程式庫。(原始碼 LGPL cmake, qmake
Wav2Letter++ 一個完全以 C++ 編寫的快速語音辨識工具套件,並使用 ArrayFire 張量程式庫與 flashlight 機器學習程式庫以達到最高效率。 Unlicense cmake

CD
函式庫 描述 授權 配置
libkcompactdisc 一個用於與 CD 介接的程式庫。 GPL v2.0 cmake

數位指紋
函式庫 描述 授權 配置
chromaprint Chromaprint 是一個音訊指紋程式庫,旨在識別近乎相同的音訊。它以精確度與強健性換取搜尋效能。Chromaprint 可以使用多種 FFT 程式庫 - FFmpeg, FFTW3, KissFFT 或 vDSP。(原始碼 MIT, LGPL 2.1 cmake
libmusicbrainz MusicBrainz 用戶端程式庫 (libmusicbrainz),也稱為 mb_client,是一個開發程式庫,專為希望在應用程式中加入 MusicBrainz 查詢功能的開發者所設計。該程式庫支援 Windows, Linux 和 Mac OS X。(原始碼 LGPL-2.1 cmake
libofa 由 MusicIP 開發的開源音訊指紋技術。 APL make

格式
函式庫 描述 授權 配置
AudioFile 一個用於讀取與寫入音訊檔案的簡單 C++ 程式庫。 MIT cmake
audio_file 一個處理多種常見格式音訊檔案讀寫的程式庫。(原始碼 LGPL-2.1 make
dr_libs 用於 C 與 C++ 的單一檔案音訊解碼程式庫 (FLAC, MP3, WAV)。 Unlicense
flac FLAC 代表 Free Lossless Audio Codec (自由無損音訊編解碼器),意味著以 FLAC 壓縮的音訊不會有任何品質損失。FLAC 是最快速且最被廣泛支援的無損音訊編解碼器,非私有且無專利阻礙。 開源, BSD, GPL
LAME LAME 是一款高品質的 MPEG 音訊層 III (MP3) 編碼器。 LGPL
libsndfile 一個 C 程式庫,附帶 C++ 封裝,用於透過標準程式庫介面讀取與寫入包含取樣音訊的檔案 (例如 WAV, AIFF)。(原始碼 LGPL-2.1 cmake, make, vcpkg
minimp3 極簡的 MP3 解碼器。 CC0-1.0 僅標頭檔 (header-only)
Opus 一種完全開放、免版稅、用途廣泛的音訊編解碼器。 BSD cmake
Vorbis Ogg Vorbis 是一種完全開放、非私有、無專利且免版稅的通用壓縮音訊格式。 BSD cmake

標籤
函式庫 描述 授權 配置
id3lib 一個開源、跨平台的程式庫,用於讀取、寫入與處理 ID3v1 與 ID3v2 標籤,並取得基本的 mp3 標頭資訊如位元率。不過,我們現在建議改用 taglib :) LGPL v2
taglib TagLib 音訊元資料程式庫,用於讀取與編輯多種熱門音訊格式的元資料:ID3v1, MP3 檔案的 ID3v2, Ogg Vorbis 註解,以及 FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 與 ASF 檔案中的 ID3 標籤與 Vorbis 註解。(原始碼 LGPLMPL v1.1

[編輯] 效能測試

函式庫 描述 授權 配置
benchmark 一個用於對程式碼片段進行基準測試的程式庫,類似單元測試。 Apache 2.0 cmake
Celero 一個功能豐富的 C++ 基準測試撰寫程式庫/框架。使用 C++11 支援 Windows, Linux 與 OSX。 Apache cmake
Criterion 一個現代 C++ 的微基準測試程式庫。 MIT 僅標頭檔;cmake
gperftools 「Google 效能工具」包含高效能、多執行緒的 malloc 實作,以及用於基準測試堆積分配與 CPU 利用率的工具。 BSD 3-Clause "New" 或 "Revised" configure
nanobench 一個針對 C++11/14/17/20 簡單、快速、準確的單一標頭檔微基準測試功能。(原始碼 MIT 僅標頭檔;cmake
picobench 一個極小的微基準測試程式庫。 MIT 僅標頭檔;cmake
plf::nanotimer 一個最低開銷、跨平台、用於基準測試的簡易計時器類別。 zlib 僅標頭檔 (header-only)

[編輯] 通訊

函式庫 描述 授權 配置
ACE 非同步網路、事件多工解多工、訊息傳遞。(原始碼)(文件 自訂 make
Apache Thrift Apache Thrift 軟體框架,用於可擴充的跨語言服務開發,結合了軟體堆疊與程式碼產生引擎,以建立在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi 與其他語言之間高效且無縫運作的服務。(原始碼 Apache-2.0 cmake, vcpkg
Boost.Asio 非同步與同步網路、計時器、序列 I/O。 BSL-1.0
Boost.Beast 建立在 Boost.Asio 之上的 HTTP 與 WebSocket 程式庫。 BSL-1.0
Breep 一個基於事件、高階、點對點 (P2P) 的程式庫,允許使用者直接傳送與接收物件。 歐盟公共授權條款 1.1 (EUPL 1.1) cmake
brpc 百度內部使用的工業級 RPC 框架,擁有 1,000,000+ 個實例與數千種服務。(原始碼)(文件 Apache 2.0 cmake
C++ REST SDK 一個非同步 HTTP 用戶端與監聽器,非同步串流、URI、JSON。 MIT cmake
cpp-httplib 一個 C++11 單一檔案、僅標頭檔、跨平台的 HTTP/HTTPS 程式庫。 MIT 僅標頭檔;cmake
cpp-netlib 一個 C++ 網路程式庫。 BSL-1.0 cmake
cppsimpleuri 一個現代 C++ URI 與查詢剖析器。 MIT cmake
cpr 一個現代 C++ HTTP 請求程式庫。 MIT cmake
Crow 一個 C++ 微型 Web 框架(受 Python Flask 啟發)。 BSD-3-Clause 僅標頭檔;cmake
curlpp libcURL (CURL 程式庫) 的 C++ 封裝。(原始碼 cmake, vcpkg
DumaisLib 各種工具程式,例如 WebServer, JSON, WebSocket 伺服器,REST 框架(用於在 C++ 應用程式中建立 REST API 的程式庫)。 MIT make
EasyHttp 一個專注於易用性與速度的跨平台 HTTP 用戶端程式庫,支援 HTTP 回應快取等功能。 MIT cmake
eCAL 一個高效能的處理程序間通訊 (IPC) 程式庫。 Apache 2.0 cmake
fineftp-server 一個適用於 Windows 與 Unix 的 FTP 伺服器程式庫。 MIT cmake
FPNN Fast Programmable Nexus Network。高效能完全非同步 RPC 服務框架。同時支援 HTTP, WebSocket, TCP 與可靠的 UDP。支援超高負載伺服器開發,並提供對應的用戶端 SDK。 未知 make
gRPC 一個可以在任何環境中執行的現代開源高效能 RPC 框架。(原始碼)(文件 Apache-2.0 bazel, cmake, vcpkg
gsoap 用於 XML 資料綁定、快速 WSDL/SOAP/XML Web 服務、WS-Security、JSON/XML-RPC RESTful 服務的 C/C++ 開發工具組。 GPLv2
hmbdc 一個輕量級且高效能的 C++17 訊息發布/訂閱 (Pub/Sub) 中介軟體框架/程式庫。 僅標頭檔 (header-only)
HTTPP 一個簡單、C++14、已可投入生產的 HTTP 伺服器(建構於 Boost 之上)與用戶端(建構於 libcurl 之上)。 BSD 2-Clause "Simplified" cmake, make
IXWebSocket 一個無相依性的開源 WebSocket + HTTP 程式庫,支援 SSL 與 per-message deflate WebSocket 擴充。 BSD 3-Clause "New" 或 "Revised" cmake, make
KCP 一種快速且可靠的 ARQ 通訊協定,有助於應用程式降低網路延遲。 MIT cmake
libashttp 一個非同步 HTTP 用戶端程式庫。 GNU Lesser General Public v3.0
libjson-rpc-cpp

一個為 C++ 提供跨平台 JSON-RPC (遠端程序呼叫) 支援的框架,完全相容於 JSON-RPC 2.0 & 1.0。

MIT cmake, conan
libnavajo 一個 C++ 框架,包含快速多執行緒 HTTP 伺服器、HTML5 Websockets, SSL, X509 與 HTTP 驗證、壓縮、Cookie 與進階工作階段管理、IPv4 與 IPv6 (CeCILL-C)。 CeCILL-C 自由軟體授權合約 cmake
libtins 一個網路封包製作與嗅探程式庫。(原始碼)(文件 BSD-2 cmake, vcpkg
LiteNetLibPP 一個適用於遊戲的輕量級可靠 UDP 程式庫。 MIT cmake
mailio MIME 與電子郵件程式庫。 BSD 2-Clause "Simplified" cmake
nanomsg 一個快速訊息佇列,zeromq 的後繼者。
netif 一個用於在 Windows, Linux, macOS 與 FreeBSD 上取得網路位址的 C++14 程式庫。 BSD 3-Clause "New" 或 "Revised" 僅標頭檔;cmake
nghttp2 HTTP/2 C 程式庫與工具(伺服器、用戶端、代理伺服器與基準測試工具)。 MIT cmake, configure
ngrest 一個快速且易於使用的 JSON RESTful Web 服務框架。 Apache 2.0 cmake
nng 一個快速訊息佇列,nanomsg 的後繼者。
Oat++ 一個 Web 框架:REST-API 與請求實作。(原始碼)(文件 Apache 2.0 cmake
omniORB C++ 中最快速、完整且可移植的 CORBA ORB 實作。
OpenDDS DDS (資料分發服務) 實作。
Paho MQTT 一個由 Eclipse 提供的現代 C++ MQTT 用戶端。 cmake
paozhu 一個 C++20 Web 框架,支援 HTTP/2, ORM, WebSocket。 MIT cmake
PcapPlusPlus 多平台 C++ 網路嗅探與封包剖析、製作框架。為許多熱門封包處理引擎(如 libpcap, Npcap, WinPcap, DPDK, AF_XDP 與 PF_RING)提供 C++ 封裝。(原始碼 Unlicense conan, homebrew, cmake, vcpkg
POCO 網路:加密、HTTP;Zip 檔案。(文件
rest_rpc 一個 C++11、高效能、跨平台、易於使用的 RPC 框架。 MIT cmake
restbed 一個跨平台、功能豐富的框架,為 C++14 應用程式帶來非同步 RESTful 功能(透過 HTTP 的安全通訊)。 授權 cmake
restc-cpp 在 C++ 中存取 JSON API。HTTP 用戶端,原生 C++ 類別轉 JSON 序列化,透過 boost::asio 協程進行非同步 I/O。C++14。 MIT cmake
restful_mapper 用於在 C++ 中消費 RESTful JSON API 的 ORM。 cmake, make
seastar 一個高效能伺服器端應用程式框架,基於 C++14/C++17。 Apache 2.0 cmake, etc.
Silicon Silicon C++14 Web 框架:快速且強健的 Web API。 MIT cmake
sockpp 一個簡單、現代的 C++ Socket 程式庫。 BSD 3-Clause "New" 或 "Revised" cmake
stream-client 一個基於 Boost 的輕量級用戶端 Socket/連接器/Socket 池/解析器。 Apache 2.0 僅標頭檔;cmake
tacopie 一個 C++11 TCP 程式庫。 MIT cmake
TAO CORBA
taox11 一個基於 C++11 的 CORBA 實作。 MIT
Unicomm 非同步網路,高階 TCP 通訊框架。
uvw 一個 libuv (跨平台非同步 I/O) 的 C++17 封裝。(原始碼 MIT 僅標頭檔;cmake
WNetWrap 一個 WinInet 的 C++ 封裝。 MIT
wvstreams 一個 C++ 網路程式庫,包含 UniConf 與便利的 D-Bus API。 GPL
zeromq 一個快速訊息佇列。

[編輯] 並發性

函式庫 描述 授權 配置
AdaptiveCpp 提供適用於來自 NVIDIA, AMD, Intel 的 CPU 與 GPU 的 SYCL 與 C++ 並行 STL 卸載編譯器與執行時期系統。 BSD-2-Clause cmake
Asyncpp 一個非同步 C++ 程式庫,提供各種並行操作。 MIT cmake
BlockingCollection C++11 執行緒安全、多生產者、多消費者阻隔佇列、堆疊與優先佇列類別。 GPL-3.0 僅標頭檔 (header-only)
Boost.Atomic 提供原子資料類型與針對這些類型的操作,以及透過原子變數協調多執行緒所需的記憶體順序約束。 BSL-1.0
Boost.Compute 一個基於 OpenCL 的 C++ GPU/並行計算程式庫。 BSL-1.0 cmake
Boost.Context 一個 C++11 程式庫,在單一執行緒上提供協同式多工處理抽象。 BSL-1.0
Boost.Interprocess 簡化處理程序間通訊與同步機制的使用,並提供多種機制:共享記憶體、記憶體映射檔案、信號量、互斥鎖、條件變數、可升級互斥鎖類型、具名同步物件、檔案鎖定、訊息佇列。 BSL-1.0
Boost.Lockfree 提供非阻隔 (即無鎖) 並行資料結構:佇列、堆疊與環狀緩衝區 (spsc_queue)。 BSL-1.0
Boost.MPI 一個對 C++ 友善的標準 訊息傳遞介面 (Message Passing Interface) 介面。 BSL-1.0
Boost.Thread 支援使用多個共享資料的執行執行緒,以及執行緒間資料同步的方法。 BSL-1.0
concurrencpp 現代 C++ 並發性。工作 (Tasks)、執行器 (Executors)、計時器與 C++20 協程。 MIT cmake
dispenso C++ 的高效能並發性。parallel_for, Futures, 管線, 計時器, 定時/週期性工作與並行資料結構。 MIT cmake
Highway 提供效能可移植、長度無關的 SIMD/向量內建函式。支援:SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER。(文件 Apache-2.0 cmake
HPX 一個通用的 C++ 執行時期系統,適用於各種規模的並行與分散式應用程式。(文件 BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB 是一個用於共享記憶體並行程式設計與異質運算的跨平台 C++ 程式庫。該程式庫提供:通用並行演算法、並行容器、可擴充記憶體分配器、工作竊取任務排程器與低階同步原語。(原始碼)(文件 Apache-2.0 或商業授權 cmake, make
KOKKOS 一種用於編寫高效能可移植 HPC 應用程式的程式設計模型,使用 CUDA, HIP, SYCL, HPX, OpenMP 與 C++ 執行緒作為後端。(文件 自訂 cmake, make
libopenmpi Open MPI 專案是一個開源的訊息傳遞介面 (Message Passing Interface) 實作。 3-clause BSD
libsimdpp 一個可移植、零開銷的 C++ 低階 SIMD 程式庫。 Boost 僅標頭檔;cmake
MPL 一個對 C++17 友善的標準 訊息傳遞介面 (Message Passing Interface) 介面。 BSD 3-Clause "New" 或 "Revised" 僅標頭檔;cmake
MutexGear 一個僅使用互斥鎖同步(輪詢、讀寫鎖、工作佇列)的 C/C++11 程式庫。 The MutexGear Library configure, msvc, make
OpenMP 用於並行程式設計的 OpenMP API 規範。
PoCL 一個可移植、可重定向、開源 (基於 LLVM) 的 OpenCL 標準實作。(原始碼)(文件 MIT cmake
RaftLib 一個 C++17 串流般的並行 Actor,能進行並行資料流計算。 Apache-2.0 cmake
SObjectizer 一個小型跨平台框架,用於在 C++ 中透過 Actor 與發布-訂閱模型進行並行與事件驅動應用程式開發。 BSD-3-Clause cmake, vcpkg, conan
stdgpu GPU 上高效的類 STL 資料結構。 Apache 2.0 cmake
subprocess 用於執行子處理程序的 C++17/20 跨平台程式庫。 MIT cmake, teaport
Taskflow 現代 C++ 中的並行任務程式設計。 TASKFLOW MIT cmake
task-thread-pool 適用於 C++11 及更新版本的快速輕量級執行緒池。 BSD-2-Clause 或 MIT 或 BSL-1.0 cmake, vcpkg, 單一標頭檔
ThreadPool 一個簡單的輕量級執行緒池。 BSD-3-Clause 僅標頭檔;cmake, make
thread_pool 一個現代、快速、輕量級的執行緒池。 MIT cmake
Thrust 基於 CUDA, TBB 或 OpenMP 的類 STL 並行演算法與資料結構。 Apache v2.0, Boost v1.0. cmake
TimerAlarm 基於執行緒的計時器與警報。 BSD-3-Clause 僅標頭檔;cmake, make
VexCL 一個用於 OpenCL, CUDA, OpenMP 的 C++ 向量表達式範本程式庫。 MIT cmake
ViennaCL 具備 OpenMP, CUDA 與 OpenCL 後端的線性代數與演算法。(原始碼)(文件 自訂 cmake
Xenium 一個提供各種並行資料結構與回收機制的 C++17 程式庫。 MIT 僅標頭檔;cmake

[編輯] 配置

函式庫 描述 授權 配置
Boost.Program_options 該程式庫允許透過傳統方法(如命令列、配置檔案與環境變數)從使用者取得程式選項,即 (名稱, 數值) 配對。 BSL-1.0
figcone 透過宣告結構體 (struct) 來讀取 JSON, YAML, TOML, XML 或 INI 配置。 MS-PL cmake
gconfmm 一個熱門 GUI 程式庫 GTK 的跨平台(官方)C++ 介面,包含型別安全的回呼,以及一組可透過繼承輕易擴充的綜合性小工具 (Widgets)。gtkmm 使用 STL,包含 string、容器與迭代器。支援 UTF8。(原始碼)(文件 LGPLv2.1 autotools, meson, make
libconfig 一個用於處理結構化配置檔案 ("*.cfg") 的簡單跨平台 C/C++ 程式庫。(原始碼)(文件 LGPL 2.1 autotools, cmake, make
libconfini 一個以 C 語言編寫的跨平台 INI 剖析器。(文件 GPL-3.0 autotools, make
uconfig 一個輕量級 C++17 配置程式庫。 Apache 2.0 僅標頭檔;cmake

命令列
函式庫 描述 授權 配置
Argh! 一個極簡的參數處理器。 BSD 3-Clause 僅標頭檔;cmake, vcpkg
argparse (hbristow) 一個用於剖析命令列參數的精簡 C++ 類別,其介面類似 Python 同名類別。 BSD
argparse (morrisfranken) 一個以優雅方式剖析命令列參數的輕量級程式庫。 Apache 2 僅標頭檔;cmake
argparse (p-ranav) 一個適用於 C++17 的命令列參數剖析器。 MIT 僅標頭檔;cmake, vcpkg
args 一個簡單的 C++ 參數剖析程式庫。 MIT 僅標頭檔;cmake, conan, meson, vcpkg
Boost.Program_options 該程式庫允許透過傳統方法(如命令列、配置檔案與環境變數)從使用者取得程式選項,即 (名稱, 數值) 配對。 BSL-1.0
CLI11 一個 C++11 命令列剖析器,以簡單直觀的介面提供豐富的功能集。 BSD-3-Clause 僅標頭檔;cmake, meson, vcpkg
clipp 用於現代 C++ 的強大且具表達力的參數剖析。 MIT 僅標頭檔;cmake, vcpkg
cmd_line_parser C++17 的命令列剖析器。 MIT 僅標頭檔;cmake
cmdlime 一個 C++17 命令列剖析程式庫,提供簡潔、宣告式的介面,支援子命令、驗證器,並可選擇 GNU, POSIX 或 X11 命令列選項格式。 MS-PL cmake
cxxopts 一個輕量級 C++11/C++17 命令列參數剖析器,支援標準 GNU 風格的選項語法。 MIT 僅標頭檔;bazel, cmake
fire-hpp 使用函式簽章建立功能完整的 CLI。 BSL-1.0 僅標頭檔;cmake
flags 簡單、可擴充的 C++17 參數剖析器。 Unlicense 僅標頭檔;cmake
gflags 一個實作命令列旗標 (flags) 處理的程式庫。它內建對標準類型(如 string)的支援,並具有在原始檔案中定義其所使用旗標的能力。 BSD cmake
structopt 透過定義結構體 (struct) 來剖析命令列參數。 MIT 僅標頭檔;cmake
tclap 一個用於剖析命令列參數的簡單 C++ 範本程式庫。該程式庫提供了一個簡單、靈活的物件導向介面。 MIT cmake

CSS
函式庫 描述 授權 配置
mycss CSS 剖析器。

HOCON
函式庫 描述 授權 配置
cpp-hocon 由 Pupplet 開發的 HOCON 格式的 C++ 實作。

JSON
函式庫 描述 授權 配置
ArduinoJson 適用於 Arduino, IoT 與嵌入式 C++ 的 C++98/11/14/17 JSON 程式庫。 MIT cmake
Boost.JSON C++11/17 中的 JSON 剖析、序列化與 DOM。 BSL-1.0
cajun-jsonapi 一個 C++ JSON API,強調直觀、簡潔的介面,盡可能模仿標準 C++。 make
DAW JSON Link 一個 C++17 程式庫,提供帶有型別檢查的靜態 C++ 綁定,允許直接剖析到使用者資料結構,無需程式庫分配,推/拉模式,分配器支援,constexpr。 BSL 1.0 cmake
Glaze 最快速的 JSON 程式庫之一 (C++23),具有直接記憶體序列化功能。亦支援 BEVE 與 CSV。 MIT cmake, conan, build2, vcpkg
jansson 一個用於編碼、解碼與操作 JSON 資料的 C 程式庫,支援 UTF-8。 MIT cmake, make
jeayeson 一個非常合理的 C++14 JSON 程式庫。 BSD-3 僅標頭檔 (header-only)
jios JSON 輸入輸出串流。 MIT cmake
JOST
json Niels Lohmann 針對 C++11 的 JSON 實作,具有直觀的語法。 MIT 僅標頭檔;bazel, cmake, meson
Jsonifier 一些用於極速 JSON 剖析/序列化的 C++20 類別。 MIT cmake
JSON Voorhees Killer JSON for C++11。(文件 Apache-2.0 cmake
JSON++
json11 一個適用於 C++11 的微型 JSON 程式庫,提供 JSON 剖析與序列化。 MIT cmake
JsonBox 一個用於輕鬆且快速讀寫 JSON 的 C++ 程式庫。 MIT cmake
jsoncons 一個用於 JSON 與類 JSON 資料格式的程式庫,具有 JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON 等功能。 自訂 僅標頭檔 (header-only)
jsoncpp 一個允許操作 JSON 值的程式庫,包括序列化與反序列化,同時保留註解。 MIT cmake, conan, vcpkg
libjson
minijson 一個 C++ 無 DOM 且無分配的 JSON 剖析與序列化程式庫。 自訂 cmake
Neyson 輕量級 C++11 JSON 程式庫。 BSD-3-Clause cmake
nosjob 一個用於產生與消費 JSON 資料的 C++98 程式庫。 MIT make
qjson
rapidjson 一個 C++ 快速 JSON 剖析器/產生器,具備 SAX/DOM 風格 API,支援 UTF-8/16/32,可選擇性使用 SIMD。(文件 自訂 僅標頭檔;cmake, vcpkg
simdjson 利用現代微架構並透過 SIMD 進行並行處理,每秒可剖析數 GB 的 JSON。(文件)(Kino Apache-2.0 cmake, vcpkg
struct_mapping 將 JSON 與 C++ 結構進行互相對應。 MIT cmake
swxJson 目前使用中最方便的 C++ JSON 程式庫。只需一個函式呼叫即可在任何層級讀寫複雜結構。效能約為 RapidJSON 的一半。 MIT make
ThorsSerializer JSON/BSON/YAML 輸入輸出串流。 MIT make
ujson µjson 是一個小型、C++11、UTF-8、JSON 程式庫。 cmake
yyjson 一個以 ANSI C 編寫的高效能 JSON 程式庫。 MIT cmake

TOML
函式庫 描述 授權 配置
toml++ 適用於 C++17 及更新版本的 TOML 剖析器與序列化器。
toml11 基於 C++11 的 TOML 剖析程式庫。

XML
函式庫 描述 授權 配置
ai-xml 透過為類別加入單一且極小的函式,實現物件與 XML 之間的序列化。底層使用 libxml++ AGPL-3.0 make
GPDS 一個通用資料序列化程式庫,用於物件與 XML 之間的序列化。底層使用 TinyXML。
gSOAP XML 資料綁定。
libxml++ libxml++ 是 libxml XML 剖析器 C 程式庫的 C++ 封裝。(文件 LGPL-2
pugixml 一個輕量級、簡單且快速的 C++ XML 剖析器,支援 XPath。 MIT cmake, conan
tinyxml
tinyxml2 TinyXML 的另一個開發中版本。
Xerces

YAML
函式庫 描述 授權 配置
yaml-cpp 一個 C++ YAML 剖析器與發送器。 MIT cmake

[編輯] 容器

函式庫 描述 授權 配置
Boost.Bimap 一個雙向對映程式庫,提供關聯容器如 bimap<X,Y>,其中 XY 皆可作為鍵值。(原始碼 BSL-1.0
Boost.Container 一個實作多種知名容器的程式庫,包括類 STL 容器、遞迴容器,以及新的實用容器:flat_map, flat_set, flat_multimap, flat_multiset, stable_vector, static_vector, small_vector, devector。(原始碼 BSL-1.0 僅標頭檔 (header-only)
Boost.Fusion 一個用於處理異質 Tuple 集合的程式庫。提供一組容器 (vector, list, setmap),以及其底層資料的轉換呈現 (亦稱 views)。(原始碼 BSL-1.0
Boost.Heap 一個具有比 STL 更多功能與不同效能特性的 優先佇列 實作。(原始碼 BSL-1.0
Boost.Pointer Container 提供用於以異常安全方式持有 堆積分配物件 且開銷最小的容器。(原始碼 BSL-1.0
Boost.Tuple 實作 C++11 之前的 n-tuple(固定大小的元素集合)。(原始碼 BSL-1.0
Boost.Variant 實作 C++17 之前的 variant(一個安全的、通用的、基於堆疊的識別 union 容器)。(原始碼 BSL-1.0
C++ Allocators 符合 STL 標準的分配器,適用於固定大小靜態與堆疊基礎記憶體 + 另一個允許自訂邊界分配的分配器。 BSD-3-Clause cmake, make
cpp-btree B-tree 容器能更好地利用 CPU 快取:btree_map, btree_set, btree_multimap, btree_multiset。(原始碼 Apache-2.0 僅標頭檔;cmake
DataFrame C++ 資料框,用於統計、金融與 ML 分析 -- 使用現代 C++ 原生類型與連續記憶體儲存。 BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant 是一個 C++11/14/17 通用的、型別安全的、識別聯合 (discriminated union)。它特別值得一提的是具備非常好的 constexpr 支援。 BSL-1.0 cmake
Frozen C++14 constexpr 基於完美雜湊 (perfect-hashing) 的不可變集合、對映與演算法。 Apache-2.0 僅標頭檔;cmake
Immer 一個持續且不可變的資料結構程式庫。 Boost cmake
plf::colony 無序的「袋裝 (bag-like)」容器,在高修改情境下效能優於 std:: 容器,同時無論插入與移除,皆能為未移除的元素保留有效指標。C++98/11/14 等相容。參閱 P0447 (std::hive)。(原始碼 zlib conan build2
plf::list 一個 std::list 的實作,它犧牲了範圍拼接 (range-splicing) 以換取快取友善性,進而實現更快的插入、刪除與迭代。相容於 C++98/03/11/14/17/20/23/26 等。(原始碼)(文件 zlib
plf::reorderase 針對隨機存取容器的「交換並彈出」(swap-and-pop) / 「移動並彈出」(move-and-pop) 慣用語進行擴展與優化,旨在提升隨機存取容器在刪除元素後的效能(適用於不需保留刪除後順序的場景)。涵蓋單一元素刪除、範圍刪除以及 std::erase_if 風格的刪除操作。相容於 C++98/11/14 等標準。 (原始碼) zlib
plf::queue 作為 std::queue 容器轉接器的直接替代品,在佇列操作情境下具有比 std::dequestd::list 更優異的效能。相容於 C++98/11/14 等標準。 (原始碼) zlib
plf::stack 作為 std::stack 容器轉接器的直接替代品,在堆疊操作情境下具有比 std::vectorstd::deque 更優異的效能。相容於 C++98/11/14 等標準。 (原始碼) zlib
ring_span Arthur O'Dwyer 之 ring_span(又稱環形緩衝區檢視)的輕量化實作。相容於 C++98。 BSL-1.0 僅標頭檔;cmake
strict_variant 針對即時/嵌入式系統設計(例如相容於 -fno-exceptions/-fno-rtti),且永不為空的 C++11 variant。速度快,能防止許多不理想的隱式型別轉換。 BSL-1.0 cmake
Ygg 高效能容器與資料結構的侵入式 C++11 實作,例如紅黑樹區間樹 (Interval tree) 和區間映射 (Interval Map)。 MIT cmake

[編輯] 密碼學

函式庫 描述 授權 配置
Botan 密碼學工具箱。 (原始碼) BSD 2-Clause "Simplified" make
crypto++ 免費的 C++ 密碼學方案類別庫。 (原始碼) Boost make
gnutls 實現 SSL、TLS 和 DTLS 協定及其相關技術的安全通訊函式庫。 (原始碼) LGPL-2.1 make
openssl 穩健、商用級、功能全面的通用密碼學與安全通訊工具箱。 (原始碼) Apache-2.0 make
TomCrypt 相當全面、模組化且可移植的密碼學工具箱,為開發者提供豐富的已知區塊加密法、單向雜湊函式、鏈結模式、虛擬亂數產生器、公開金鑰密碼學及其他多種例程。 (原始碼) 公有領域 (public domain) cmake, make

[編輯] 資料庫

函式庫 描述 授權 配置
Boost::MySQL MySQL 用戶端函式庫 BSL-1.0
cpp-redis 輕量級 C++11 Redis 用戶端:支援非同步、執行緒安全、無相依性、管道傳輸 (pipelining)、跨平台。 (文件) MIT cmake
DTL 讓 ODBC 記錄集看起來就像 STL 容器一樣 (原始碼) (文件)
EasyQtSql 輕量級 C++11(基於 Qt)函式庫,用於快速且簡便的 SQL 查詢 MIT 僅標頭檔;qmake
Galera Galera Cluster 是一個同步多主複製函式庫 (Galera),並為 MySQL/MariaDB 提供寫入集複製 (WSREP) API (原始碼) GPLv2 cmake, scons
LevelDB 由 Google 開發的 C++ 函式庫,處理十億級鍵值 (Key-Value) 資料持久化儲存。 (文件) BSD-3 cmake
libpqxx PostgreSQL 的 C++ 連接器 (原始碼) BSD-3 cmake, make
lmdb++ 用於 LMDB 嵌入式 B+ 樹資料庫函式庫的 C++11 包裝器。 Unlicense make
mongocxx 官方 C++11 MongoDB 驅動程式函式庫 (文件)。它為 CRUD 操作、索引和聚合提供優化的 API。支援 BSON 並具備連線池與認證機制,為建構利用 MongoDB 的 C++ 應用程式提供高效能與可擴充的解決方案。 Apache 2.0 cmake
mysql++ MySQL 資料庫與工具
nanodbc 小型、跨平台、用於原生 C ODBC API 的 C++14 包裝器 MIT cmake
ODB 開源、跨平台且支援多種資料庫的 C++ 物件關聯對映 (ORM) 系統。ODB 支援 MySQL、SQLite、PostgreSQL、Oracle 與 Microsoft SQL Server 關聯式資料庫,並支援 C++98/03 及 C++11 語言標準。 GPL2 和/或 NCUEL
OTL 基於 C++ 樣板的資料庫函式庫,適用於 Oracle DB、ODBC 和 DB2-CLI。 (原始碼)
Pgfe 現代 C++ 的 PostgreSQL 用戶端 (FrontEnd) API Zlib cmake
QTL 適用於 MySQL、SQLite 和 ODBC 的親和且輕量級的 C++ 資料庫函式庫。 Apache-2.0 make
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost
QxOrm 用於 C++/Qt 的物件關聯對映 (ORM) 資料庫函式庫,支援大多數常見資料庫、序列化(JSON、二進位、XML);獨立的多執行緒 HTTP 網頁伺服器 GPLv3 或專有授權
redis-cpp 用於執行 Redis 指令的輕量級 C++17 用戶端函式庫。 MIT 僅標頭檔;cmake
redis-plus-plus 以 C++11 編寫的 Redis 用戶端,支援 Redis Sentinel、Redis Cluster、管道、事務、pubsub、連線池和 STL 風格的介面 Apache-2.0 cmake
SOCI 基於外掛的資料庫函式庫,將 SQL 查詢嵌入常規 C++ 程式碼中;支援的後端包括:DB2、Firebird、MySQL、ODBC (通用後端)、Oracle、PostgreSQL、SQLite3。 (原始碼) (文件) Boost cmake
SQLAPI++ 中介軟體 C++ 資料庫函式庫,支援多種 SQL 資料庫系統:Oracle、SQL Server、DB2、Sybase、MySQL、PostgreSQL、SQLite、Informix、InterBase / Firebird、SQLBase、SQL Anywhere、ODBC、MariaDB。 (原始碼) (文件) 自訂 make
SQLiteCPP 精簡且易於使用的 C++ SQLite3 包裝器。 MIT cmake, meson, vcpkg
SQLite ORM 針對現代 C++、由 SQLite 理解的 SQL 嵌入式領域特定語言 (EDSL)。 AGPL-3.0, MIT 僅標頭檔;cmake, vcpkg
sqlpp11 用於 C++ 中 SQL 查詢與結果的型別安全嵌入式領域特定語言。 BSD-2 cmake
taoPQ 輕量級 C++17 PostgreSQL 用戶端函式庫 Boost cmake

[編輯] 嵌入式語言繫結

函式庫 描述 授權 配置
AngelScript 類似 C++ 的腳本語言。 ZLib
ChaiScript 易於使用的 C++ 嵌入式腳本語言。 BSD-3-Clause
cling 互動式 C++ 直譯器,建構於 Clang 和 LLVM 之上,以利於 RAD、指令稿建立、可嵌入指令稿與執行階段程式碼產生。 (原始碼) 自訂 (Custom) / LGPL cmake
ExprTk 易於使用、易於整合且極度高效的執行階段數學表達式剖析器與評估引擎。ExprTk 支援多種函式、邏輯與向量處理語意,且非常容易擴充。
Jinx 為電子遊戲設計的腳本語言。 MIT cmake
spidermonkey.dev Mozilla 的 JavaScript 與 WebAssembly 引擎。
muparser 以 C++ 編寫、可擴充的高效能數學表達式剖析函式庫。 BSD-2-Clause cmake
PythonQt 用於 Qt 框架的動態 Python 繫結。它提供了一種將 Python 腳本語言嵌入 C++ Qt 應用程式的簡單方法。 LGPL 2.1
lua 輕量級、多範式腳本語言,主要設計用於嵌入式。C 函式庫。 MIT make
sol2 現代 C++ Lua 繫結函式庫。 MIT 僅標頭檔;cmake
v8pp 將 C++ 函式與類別繫結至 V8 JavaScript 引擎。 BSL-1.0 僅標頭檔;cmake

[編輯] 嵌入式/即時 (Realtime)

函式庫 描述 授權 配置
distortos 用於微控制器(ARM, STM32)的物件導向 C++11 RTOS (原始碼) (文件) MPL-2.0 cmake
ETL Embedded Template Library - C++03,專為低資源(嵌入式)平台量身打造的可移植樣板函式庫 (原始碼) MIT
QP/C++ RTOS 核心:基於主動物件 (Active Objects) 與狀態機的即時嵌入式框架 GPLv3
µcuREST 用於微控制器的 C++11 REST/JSON 伺服器框架

[編輯] 檔案詮釋資料 (Metadata)

函式庫 描述 授權 配置
exempi
exiv2
libkexiv2
rarian

[編輯] 金融計算

函式庫 描述 授權 配置
DataFrame 用於統計、金融與機器學習分析的 C++ DataFrame -- 使用現代 C++、原生型別與連續記憶體儲存 BSD-3-Clause cmake, make, conan
QuantLib 定量金融函式庫 - 用於定量金融的免費/開源函式庫 modified BSD

[編輯] 遊戲引擎架構

函式庫 描述 授權 配置
Anax 開源 C++ 實體系統 MIT cmake
Anura 完整功能的遊戲引擎,也是 Frogatto & Friends 背後的技術。 自訂 (Custom) 開源 make, vcpkg
BOX2D 物理引擎 MIT cmake
EntityPlus C++17 實體組件系統 (ECS) BSD-1.0 cmake
EntityX 快速、型別安全的 C++ 實體組件系統 MIT cmake
EnTT 以現代 C++ 編寫,適用於遊戲開發等用途的小型函式庫 MIT 僅標頭檔;cmake, bazel, conan, vcpkg, brew, cppget

[編輯] 一般多媒體

函式庫 描述 授權 配置
Kigs-framework 模組化、多用途的跨平台框架 MIT
openFrameworks MIT
SDL Simple DirectMedia Layer:跨平台(Windows, macOS, Linux, iOS, Android 等),透過各平台的圖形 API (OpenGL/Direct3D/Metal/Vulkan) 提供對音訊、鍵盤、滑鼠、搖桿及圖形硬體的底層存取 (文件) (原始碼) zlib cmake
SFML Simple and Fast Multimedia Library;多平台(Windows, Linux, macOS,即將支援 Android & iOS);提供簡單介面以簡化遊戲與多媒體應用程式的開發。它包含五個模組:系統、視窗、圖形(基於 OpenGL)、音訊與網路。 zlib/png cmake
SIGIL Sound, Input, and Graphics Integration Library;一個簡單、跨平台、極簡的函式庫,用於文字、形狀、輸入、音訊與 2D 影像。支援平台:Windows, Linux 與 Raspberry Pi 授權 cmake

[編輯] 通用

函式庫 描述 授權 配置
Abseil 由 Google 提供的開源 C++ 函式庫集合,旨在增強 C++ 標準函式庫。 (文件) (原始碼) Apache-2.0 cmake
Abstract Intrusive Containers Boost.Intrusive 更靈活,但不相容於 STL。
Au 相容於 C++14 的物理單位函式庫,無相依性,強調安全性、易用性與效能。 (文件) Apache 2.0 僅標頭檔 (header-only)
BDE Bloomberg L.P. 的 Bloomberg Development Environment 核心函式庫。 Apache
Better Enums 具備反射能力的列舉 (Enum)(如列舉轉字串、迭代等),支援 constexpr。 BSD-2 僅標頭檔, cmake, make
bitfield.h 位元欄位結構工具,比基礎語言功能更具移植性與靈活性。
Boost 大型通用函式庫集合 BSL-1.0
CAF C++ Actor Framework (CAF) 是一個開源的 C++11 Actor 模型實作,具有輕量且快速的 Actor 實作、訊息模式比對、網路透明傳訊等功能 BSD
Cinder 社群開發、免費且開源的函式庫,用於 C++ 的專業品質創意編碼。 (文件) (原始碼) Modified BSD cmake
CommonPP 多用途函式庫,特別強調從專案中獲取度量資料。 BSD
composite_op.h 基礎類別資料成員自省,雖然繁瑣且通常不可重入,但有時很有用。
cpp-mmf 一個封裝 POSIX 或 Windows 記憶體對映檔案 (memory-mapped-files) 的 C++98 函式庫
cxxomfort C++ 功能的向後移植(將 C++11 移植到 C++03,將 C++1y 提案移植到 C++11/C++03)。
Dlib 網路、執行緒、圖形介面、資料結構、線性代數、機器學習、XML 與文字剖析、數值最佳化、貝氏網路及其他眾多任務 Boost
eventpp 用於回呼、事件分發器與事件佇列的 C++ 事件函式庫。透過 eventpp,您可以輕鬆實作訊號與插槽機制 (signal and slot)、發布者與訂閱者模式,或觀察者模式。 Apache 2.0
fcppt Freundlich's C++ Toolkit (fcppt) 是一組函式庫集合,專注於透過提供更好的型別並運用函式編程來改進通用 C++ 程式碼。
Folly Facebook 開源函式庫。這是一個跨平台的 C++14 元件庫,設計時充分考慮了實用性與效率。 (文件) Apache-2.0 cmake, vcpkg
GSL C++ Core Guidelines Support Library 實作,由 Bjarne Stroustrup, Herb Sutter 等人在 C++ Core Guidelines 中推薦 MIT cmake, vcpkg
gsl-lite 適用於 C++98, C++11 及更高版本的 ISO C++ Guideline Support Library (GSL) 版本 MIT 僅標頭檔 (header-only)
GUL14 來自 DESY 的 C++14 通用工具函式庫:常用工具函式與型別,包括字串工具、統計與數值函式、容器、除錯工具等。 (原始碼) LGPL-2.1 meson, vcpkg
History 現代 C++17 復原/重做 (Undo/Redo) 框架 Unlicense
hspp 一個實驗性函式庫,將 Haskell 風格的程式編寫帶入 C++。 Apache-2.0 僅標頭檔 (header-only)
IP-DOS (tm) IdeaFarm (tm) Piggyback 分散式作業系統:適用於 C++ 語言的通用程式開發環境。 專有開源 Open Watcom 2.0
JUCE 廣泛、成熟的跨平台 C++ 工具箱 GPL
Kangaru 適用於 C++11 與 C++14 的依賴注入 (Dependency Injection) 容器 MIT
Kerbal 將現代 STL 功能向後移植至先前標準。更多功能!更多 constexpr! LGPL-3.0 僅標頭檔;cmake
libsourcey 用於高速網路與媒體編碼的跨平台 C++14 函式庫。支援 HTTP, WebSockets, TURN, STUN, Symple 等。 LGPL-2.1 cmake
LLNL/units 用於處理測量單位、單位轉換以及單位與測量結果字串表示的執行階段 C++ 函式庫 BSD 3-Clause "New" 或 "Revised" cmake
Loki 包含常見設計模式與慣用語靈活實作的 C++ 設計函式庫。 MIT make
match(it) 適用於 C++17 的輕量級模式比對 (pattern-matching) 函式庫,採用無巨集 API。 Apache-2.0 僅標頭檔 (header-only)
nonstd-lite 包含許多 *-lite 儲存庫(如 span-lite, scope-lite, expected-lite),提供一些已提議或已標準化之 C++17/20/23 函式庫型別(如 std::span, std::expected 等)的 C++98/11 實作。 BSL-1.0 僅標頭檔 (header-only)
nytl 通用 C++17 工具樣板函式庫。 BSL-1.0 僅標頭檔 (header-only)
OnPosix 在 POSIX 平台上提供多種抽象(例如執行緒、網路、日誌記錄、IPC 等)的 C++ 函式庫。
Reason XML, xpath, regex, 執行緒, sockets, HTTP, SQL, 日期時間, 串流, 編解碼, 檔案系統, 壓縮 GPL
SaferCPlusPlus 不安全 C++ 原語(包括指標、intstd::vector)的安全相容替代方案。 Boost
Smart Enum 為您的列舉提供 to_stringfrom_string 等功能。 BSL-1.0 cmake
units 基於 C++14、無相依性的編譯時期維度分析與單位轉換函式庫 MIT 僅標頭檔 (header-only)
yaal Yet Another Abstraction Layer - 演算法、集合、任意精度計算、通用 DSL 語法驅動的剖析器等 CC BY-ND-NC 4.0 cmake
Yato 現代 C++(14/17) 跨平台 STL 風格且相容 STL 的函式庫,實作了容器、範圍 (ranges)、迭代器、型別特性與其他工具;Actor 系統;型別安全的設定介面。 Apache-2.0 cmake
yomm2 適用於 C++17 的開放多方法 (open multi-methods) Boost
zoolib ZooLib 是一個功能豐富的 C++ 工具箱。 MIT

[編輯] GPS

函式庫 描述 授權 配置
gpsd 一套開源、跨平台(Linux/Unix/BSD 風格,含 Android 和 OS X)的 GPS 感知工具,例如用於 GPS 裝置、AIS 收音機與其他導航感測器的轉換與複製常駐程式 (daemon)。gpsd 主要以 C 和 Python 編寫,但也有 C++ 包裝器。gpsd 廣泛應用於行動嵌入式系統中。每個定位感知 Android App 間接地都是 gpsd 的用戶端。 (文件) (原始碼) BSD 2-clause scons

[編輯] 圖形使用者介面

函式庫 描述 授權 配置
Brisk 跨平台 C++20 模組化 GUI 框架,具備反應式能力以及可擴充、GPU 加速的渲染功能。 (原始碼), (文件) GPL2+/專有授權 cmake, vcpkg
Dear ImGui 用於 C++ 的輕量級 GUI 函式庫,相依性極低、可移植、渲染無關 (render-agnostic),針對已啟用 3D 管線的應用程式進行了最佳化。 MIT vcpkg
FLTK 跨平台 C++ GUI 工具箱(Linux, Windows, MacOS),提供現代 GUI 功能,並透過 OpenGL/GLUT 支援 3D 圖形。設計輕量且模組化。包含 UI 建構器。 LGPL ver.2
nana 現代 C++ 風格的跨平台 GUI 程式設計。 (原始碼), (文件) BSL-1.0 cmake, vcpkg
nanogui 適用於 OpenGL 3.x 或更高版本的極簡跨平台視窗工具函式庫 (文件)
OWLNext OWL 的現代化更新,用於在 Windows 上以標準 C++ 編寫 GUI 應用程式
Slint 宣告式 GUI 工具箱,用於為桌面、嵌入式與微控制器建構原生使用者介面。 (原始碼), (文件) GPL 3, 免版稅, 或商業授權 cmake
tiny file dialogs 一套 C/C++ 跨平台檔案對話框(無需初始化、無主迴圈、6 個模態函式呼叫) 僅標頭檔 (header-only)
U++ 具備整合式 IDE 的跨平台(Windows, GNU/Linux, macOS)快速應用程式開發框架。C++17 相容。 (文件) (原始碼) BSD-3-Clause make
WxWidgets 免費且開源的跨平台(Windows, GNU/Linux, macOS)C++ 框架,用於使用原生控制項編寫進階 GUI 應用程式。 (文件) Modified LGPL cmake, make
xtd 現代 C++17/20 框架,用於在 Windows, macOS, Linux, iOS 和 Android 上建立主控台、GUI 和單元測試應用程式。 (原始碼) (文件) MIT cmake

CopperSpice
函式庫 描述 授權 配置
CopperSpice 用於開發跨平台軟體應用程式的 C++ 函式庫集合。它使用現代慣用語 C++,並與 STL 無縫整合。CopperSpice 衍生自 Qt 框架。 (文件) (原始碼) LGPL-2.1 cmake
CsSignal 獨立的 C++ 執行緒感知訊號/插槽函式庫 LGPL-2.1 cmake
CsString 獨立的 C++ Unicode 感知字串函式庫 LGPL-2.1 cmake
libGuarded 獨立的 C++ 多執行緒函式庫,用於管理對共享資料的存取 LGPL-2.1 cmake

GTK+
函式庫 描述 授權 配置
evince
flowcanvas
glibmm
goocanvasmm
gtkmm 用於 GTK+ GUI 函式庫的跨平台 C++ 介面。 LGPL
libglademm
libgnomecanvasmm
webkitgtk

Qt
函式庫 描述 授權 配置
libdbusmenu-qt 小型函式庫,設計用於簡化透過 DBus 共享與顯示選單結構。它適用於 QT 與 GTK+,並使選單建構變得簡單。
Qt (文件) (原始碼)
QuickQanava C++14 網路/圖形視覺化函式庫 / Qt 節點編輯器。 BSD 2.0 cmake
qwt5 用於技術應用程式的 Qt 元件 (Widgets)
qwtplot3d

U++
函式庫 描述 授權 配置
U++ 專注於程式設計師生產力的 C++ 跨平台快速應用程式開發框架。它包括一組函式庫(GUI, SQL 等)以及整合開發環境。 (原始碼/二進位) BSD
upp-components U++ 的第三方套件集合,例如 TerminalCtrl, MessageCtrl 等。 BSD-3-Clause

[編輯] 圖形

函式庫 描述 授權 配置
bgfx 強大的跨平台(Windows, Mac, Linux, iOS, Android, Web)2D/3D 圖形渲染著色器函式庫,具備多種渲染後端:DX, OpenGL, Metal, WebGL, Vulkan 等。 (文件) BSD-2 make
cairomm cairo 圖形函式庫的 C++ 包裝器,這是一個支援多種輸出裝置的 2D 函式庫:X Window, Quartz, Win32, 影像緩衝區, PostScript, PDF, SVG, OpenGL(實驗性)。 LGPL
dfpsr 具有桌面 GUI 工具箱的 2D、3D 與等距軟體渲染器,相依性極簡,專為長期維護而設計,可在沒有任何 3D 加速驅動程式的情況下執行 zlib
gegl Generic Graphics Library (GEGL) 是一個基於資料流的影像處理框架,提供浮點處理與非破壞性影像處理能力。 (原始碼) LGPL
io2d ISO C++ 2D 圖形 API 提案 P0267 的參考實作 BSL-1.0 cmake
nanovg 基於 OpenGL 之上的 C 語言 2D 反鋸齒向量繪圖函式庫,適用於 UI 與視覺化,並已移植至 DX11/Metal/bgfx。 zlib
nux OpenGL 工具函式庫 LGPL v3
pangomm Pango 字型排版函式庫的官方 C++ 介面。 (原始碼) LGPL v2.1 make
Skia 以 C++ 編寫的開源 2D 圖形函式庫。Skia Graphics Engine 被用於 Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter 等。Skia 擁有多種後端:軟體光柵化、(PDF) 輸出、OpenGL, SVG 等。 New BSD
TXLib TX Library 是一個以 C++ 編寫的微型 Win32 2D 圖形函式庫。
ULIS 跨平台 C++14 函式庫,用於通用數位影像處理、2D 軟體光柵器、無限影像格式 (u8, u16, u32, float, double)、自訂位元順序記憶體佈局、所有 Photoshop 像素混合模式 + 11 種額外模式、色彩模型 (RGB, HSL, HSV, CMYK, ...)、色彩管理管線、色彩空間支援 (icm 設定檔與裝置無關)、多執行緒最佳化演算法、SIMD 延伸集 (SSE2) 最佳化演算法、影像池與快取最佳化、動畫影像序列記憶體儲存。 自訂(僅限非商業用途免費) cmake

[編輯] 圖形 (3D)

函式庫 描述 授權 配置
assimp 3D 模型載入 BSD-3 cmake, vcpkg
bgfx 跨平台、與圖形 API 無關的「自備引擎/框架 (Bring Your Own Engine/Framework)」風格渲染函式庫。 BSD-2 make, vcpkg
Diligent Engine 現代跨平台底層 3D 圖形函式庫。 Apache-2.0 cmake
Epoxy GLEW 的現代繼任者。抽象化某些 GL 環境之間的差異,使其有時比 GLEW 更易於使用。自 2015 年起被 GTK+ 專案採用。 MIT meson, vcpkg
G3D G3D Innovation Engine 是一個功能齊全、開源、跨平台(Windows, Linux, Mac OS)的 C/C++ 3D 遊戲引擎。G3D 用於商業遊戲、研究論文、模擬器與大學課程。它支援即時與離線硬體渲染、光線追蹤、模型載入、線性代數以及 GPU 上的 GP 計算。支援 3DS, OBJ, MP4, PNG, JPG, MD3 等多種格式,包含原生的 OpenGL 可換皮 GUI。 (原始碼) (文件) BSD-2
GLAD 用於載入 OpenGL 函式的可自訂、輕量級函式庫
GLEW OpenGL 函式載入器 (原始碼) EXTGL/BSD/MIT make, vcpkg
GLFW OpenGL 視窗管理器 (原始碼) (文件) zlib/libpng cmake, vcpkg
GLM OpenGL Mathematics (GLM) 是一個基於 GLSL 規範的圖形軟體數學函式庫。 The Happy Bunny /
MIT
僅標頭檔;cmake, vcpkg
Godot 以 C++17 編寫的完整功能多平台 2D 與 3D 遊戲引擎,具備自身編寫的 GUI 編輯器以及 Python 風格的腳本語言。 MIT scons
hlsl++ 使用 HLSL 語法進行渲染的 C++ 數學函式庫。支援 SSE 與 NEON MIT 僅標頭檔 (header-only)
Horde3D 小型開源 3D 渲染引擎。其致力於建立一個渲染引擎,在保持輕量與簡潔的同時,提供次世代遊戲所期望的驚人視覺效果。 EPL
Irrlicht Irrlicht 引擎是一個以 C++ 編寫的開源即時 3D 引擎。它具備跨平台特性,使用 D3D, OpenGL 與其自身的軟體渲染器。 zlib/libpng make, vcpkg
klein 適用於圖形與動畫的 C++11/14/17 SSE 優化投射幾何代數 (Projective Geometric Algebra) 函式庫 MIT cmake, vcpkg
Magnum 適用於遊戲與資料視覺化的輕量級模組化 C++11/C++14 圖形中介軟體 (原始碼) 自訂 cmake
O3DE Open-source 3D Engine(前身為 Amazon 的 Lumberyard)是一個跨平台 C++ 3D 引擎,用於建構 AAA 遊戲、電影級 3D 世界與高擬真模擬。包含物理模擬、腳本引擎、網路與 更多功能。 (文件) Apache 2.0 cmake
Ogre3D OGRE 是一個物件導向圖形渲染引擎,是一個多用途視覺化函式庫,適用於科學視覺化、遊戲、模擬、虛擬實境與其他圖形專案。它跨平台且非常穩健,擁有良好的文件。 MIT cmake, vcpkg
Open CASCADE 用於 3D CAD/CAM/CAE 應用程式的 SDK (原始碼) LGPL-2.1 cmake
OpenGL 用於開發 3D 應用程式的 3D 語言、圖形與 SDK。 Khronos (MIT)
OpenSceneGraph OpenSceneGraph 是一個開源高效能 3D 圖形工具箱,被視覺模擬、遊戲、虛擬實境、科學視覺化與建模等領域的應用程式開發者所使用。 (原始碼) (文件) 自訂 (Custom),GNU LGPL cmake, vcpkg
Visionaray C++ 光線追蹤樣板函式庫。 MIT cmake
VTK Visualization Toolkit (VTK) 是用於處理與顯示科學資料的開源軟體。它配備了最先進的 3D 渲染工具、一系列 3D 互動小工具以及廣泛的 2D 繪圖能力。 BSD-3 cmake, vcpkg
Vulkan 底層 API,移除了先前一代圖形 API 中的許多抽象。這非常有利於提供極致效能,但副作用是增加了開發者的複雜度。幸運的是,現有許多優秀的教學課程可幫助克服此障礙並快速上手。 Khronos (MIT) make, vcpkg

[編輯] 影像

函式庫 描述 授權 配置
Adobe/boost GIL 高層級通用函式庫,專注於運算 2D 影像的演算法。I/O 選項非常有限。 BSL-1.0
agge Anti-Grain Evolution。用於 C++ 的速度與品質 2D 圖形引擎 MIT cmake
FreeImage 開源函式庫專案,為希望支援 PNG, BMP, JPEG, TIFF 等流行圖形影像格式的開發者提供服務 GPLv2, GPLv3, FIPL
FreeImageRe 開源函式庫 FreeImage v3.18 的分支,用於支援影像轉碼器更新並調整以利舒適使用。保留了所有原始格式與外掛程式。 GPLv2, GPLv3, FIPL cmake
GraphicsMagick 讀取、寫入與處理超過 88 種主要格式的影像。於 2002 年從 ImageMagick 分支出來 版權 (Copyright) Mercurial
SAIL 讀取與寫入靜態、動畫、多頁影像及其詮釋資料與 ICC 設定檔。轉換能力。以簡潔與速度為目標。 MIT cmake
stb 一組遊戲開發導向的 C/C++ 函式庫,特色包含影像載入器/寫入器/調整器、字型文字光柵器、型別安全容器、ogg vorbis 解碼器、即時 DXT 壓縮器、Perlin 雜訊產生器、pet DSL 的詞法分析器、快速 sprintf 等。 MIT, 自訂 (Custom) 僅標頭檔 (header-only)

格式
函式庫 描述 授權 配置
djvulibre
imagemagick
Kaitai Struct C++ runtime
libraw
openexr
poppler
qimageblitz
SVG++

繪圖
函式庫 描述 授權 配置
Matplot++ 基於 gnuplot 的 C++ 資料視覺化圖形函式庫。Matplot++ 可利用以下函式庫:OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3。 (文件) MIT cmake
plotutils GNU plotutils 套件包含 libplot,這是一個用於匯出多種格式(向量與點陣)之 2D 向量圖形的 C/C++ 函式庫。libplot 可以製作 2D 向量圖形動畫,並使用類 Postscript API 進行檔案匯出與圖形動畫製作。 GPL
sciplot gnuplot 驅動的現代 C++ 科學繪圖函式庫,支援匯出至 PDF, SVG, PNG, EPS 等。 MIT 僅標頭檔;cmake, vcpkg

[編輯] 影像處理

函式庫 描述 授權 配置
dlib
Halide 用於影像與張量高效能處理的 C++ 嵌入式 DSL。 MIT cmake, vcpkg
ITK - Insight Toolkit ITK 是一個開源、跨平台函式庫,為開發者提供用於影像分析的廣泛軟體工具套件。透過極限程式設計 (extreme programming) 方法開發,ITK 建構於一個空間導向的成熟架構之上,用於二維、三維或更高維度科學影像的處理、分割與配準。 Apache 2.0 cmake
opencv
OTB

[編輯] 國際化 (Internationalization)

函式庫 描述 授權 配置
gettext GNU 國際化函式庫。 GPL make
ICU International Components for Unicode 是一套成熟、廣泛使用的 C/C++ 函式庫,為軟體應用程式提供 Unicode 與全球化支援。 (原始碼) icu4c/LICENSE make
spirit-po 小型函式庫,用於剖析 po 檔案並提供類似 GNU libintl 的介面。基於 boost::spirit。 BSL-1.0 僅標頭檔 (header-only)
uni-algo 適用於 C/C++ 的 Unicode 演算法實作 MIT/Unlicense cmake, conan, vcpkg

[編輯] 日誌記錄 (Logging)

函式庫 描述 授權 配置
Backward 列印精美的 Python 風格堆疊追蹤 (stack traces),包含顏色與程式碼片段,特別適用於當機情況。 MIT 僅標頭檔;cmake, conan
Boost.Log 易於使用、可擴充且高效能的跨平台日誌函式庫。 BSL-1.0
clutchlog 單一標頭檔的日誌記錄系統,旨在進行多功能除錯 (DEBUGGING),而非用於服務事件儲存。 BSD cmake
glog 基於 C++ 風格串流的 C++98 Google 日誌記錄函式庫 授權 bazel, cmake, vcpkg
Log4cplus 跨平台、C++17 日誌記錄 API(仿照 Java log4j API),提供對日誌管理與設定的執行緒安全、靈活且細緻的控制。 BSD (雙條款) 或 Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp 用於靈活記錄日誌至檔案、syslog、IDSA 等目的地的 C++ 類別函式庫。 LGPL
log4cxx Apache log4cxx 是一個模仿 Apache log4j 的 C++ 日誌記錄框架。 (原始碼) Apache cmake
lwlog 極其快速的同步與非同步 C++17 日誌記錄函式庫 MIT cmake
Pantheios 診斷日誌記錄 API 函式庫,兼具型別安全、效率、通用性與可擴充性 BSD 風格
plog 便攜且簡單的 C++ 日誌記錄器,少於 1000 行程式碼 MPL-2.0
Quill 跨平台、C++14 非同步低延遲日誌記錄函式庫 MIT cmake
spdlog 超快速的 C++ 日誌記錄函式庫 MIT 僅標頭檔;cmake, conan

[編輯] 錯誤處理

函式庫 描述 授權 配置
Boost.LEAF 用於 C++11 的輕量級錯誤處理函式庫:單一標頭檔格式、無相依性、無動態記憶體分配、可在有或無例外處理 (exception handling) 的情況下使用,支援多執行緒。 (原始碼) BSL-1.0 僅標頭檔, cmake

[編輯] 數學

函式庫 描述 授權 配置
alglib ALGLIB 是一個跨平台(Windows/POSIX/Linux)的數值分析與資料處理函式庫。ALGLIB 功能包括:資料分析、最佳化與非線性求解器、插值、線性代數與線性求解器、FFT 及其他許多功能。 免費(GPL/個人/學術)與商業授權
ArrayFire 用於平行運算的跨平台(Windows/OSX/Linux)通用 HPC (CPU/GPU/OpenCL/CUDA/GPGPU) 函式庫。ArrayFire 領域包含:向量演算法、影像處理、電腦視覺、訊號處理、線性代數、統計等。 (原始碼) 自訂
Boost.Math 包含數學領域的多項貢獻:浮點數工具、數學常數、統計分佈與函數、統計學、向量泛函 - 範數、特殊函數、求根與最小化演算法、多項式與有理函數、插值、求積與微分、濾波器、複數函數、四元數、八元數、整數工具(最大公因數與最小公倍數)、級數、有理數與連分數。 BSL-1.0
Boost.Random 提供各種產生器與分佈,用以產生具有實用屬性(例如均勻分佈)的隨機數。 BSL-1.0
Boost.SafeNumerics C++14,保證正確的整數算術,可直接替代內建整數型別。 BSL-1.0 僅標頭檔 (header-only)
cpp-measures 用於處理物理量測的 C++11 函式庫 MPL-2.0 僅標頭檔 (header-only)
G+Smo 用於等幾何分析(Isogeometric Analysis)的跨平台函式庫 (文件) MPL-2.0 cmake
GNU MP bignum C++ 介面 提供多載函數與運算子的 C++ 便利類別介面。GMP 是一個免費的 C 語言函式庫,用於任意精度的算術運算,適用於有號整數、有理數與浮點數。 GNU LGPL v3 與 GNU GPL v2
libmpdec++ 一個用於正確捨入、任意精度十進制浮點算術的跨平台 C 函式庫(包含 C++ 包裝器)。 BSD-2-Clause make, nmake
NTL 用於數論計算的函式庫。NTL 是一個高效能、可移植的 C++ 函式庫,提供用於處理有號、任意長度整數,以及處理整數域與有限域上的向量、矩陣與多項式的資料結構與演算法。 LGPLv2.1+
PCGrand PCG 是一系列簡單、快速、空間效率高且統計品質優良的隨機數生成演算法。與許多通用隨機數生成器(RNG)不同,它們也難以預測。 Apache
stats++ 先進且全面的統計軟體:資料收集與預處理、統計、機器學習與最佳化,提供開放的 C++ 原始碼。
StatsLib 統計分佈函數的模板函式庫。 Apache-2.0 僅標頭檔 (header-only)

自動機理論
函式庫 描述 授權 配置
yasmine C++11 UML 狀態機框架 (文件) (原始碼) 授權

數值類別庫
函式庫 描述 授權 配置
BigNumber 一個用於建立與計算任意長度整數的 C++ 類別 Apache 2.0 cmake
Boost.Multiprecision 多精度函式庫(Multiprecision Library)在 C++ 中提供整數、有理數、浮點數與複數型別,這些型別具有比 C++ 普通基礎(內建)型別更廣的範圍與精度 BSL-1.0
cln CLN 是一個用於各類數字進行高效率、任意精度計算的函式庫。 GPL
CNL Compositional Numeric Library(組合數值函式庫) - 定點精度數值型別 BSL-1.0 cmake, conan
fpm C++11 fixed-point math(定點數學)函式庫,在整數上提供標準函式庫的浮點功能。若目標平台缺乏浮點運算單元(FPU)或需要確定性計算,此庫非常實用。 MIT 僅標頭檔;cmake
Universal Numbers 一個 C++17/20 模板函式庫,提供原生算術型別的插入式替換(整數/十進制/定點/浮點/Posit/對數/區間) MIT cmake, vcpkg, conan

計算幾何
函式庫 描述 授權 配置
Boost.Geometry Boost.Geometry(又稱 Generic Geometry Library, GGL)定義了用於解決幾何問題的概念、基元與演算法。Boost.Geometry 包含一個基於概念、元函數與標籤派發,且與維度無關、與座標系統無關且可擴展的核心。支援的演算法包括:面積、長度、周長、質心、凸包、交集(裁切)、內含(點在多邊形內)、距離、外包框(Bounding Box)、簡化、變換等。該函式庫支援高精度算術數值。 BSL-1.0
CGAL 計算幾何演算法函式庫 GPL-3.0 或商業授權 cmake
PCL 點雲(Point Cloud)函式庫
pmp-library 多邊形網格處理(Polygon Mesh Processing)函式庫
Wykobi 計算幾何函式庫

圖論
函式庫 描述 授權 配置
Boost.Graph BSL-1.0
CXXGraph 用於圖形表示、操作、分割與演算法的 C++17 函式庫 AGPL-3.0 僅標頭檔;cmake
GTpo C++14 有向圖建模函式庫,屬於 QuickQanava 專案的一部分 BSD qmake, cmake
LEMON Library for Efficient Modeling and Optimization in Networks(高效網路建模與最佳化函式庫),實現了專注於組合最佳化、圖論與網路的常用資料結構與演算法。 (文件) 授權
NGraph C++ 中的簡單(網路)圖論函式庫
OGDF Open Graph algorithms and Data structures Framework(開放圖論演算法與資料結構框架) - 這是一個用於圖論演算法的 C++ 函式庫,特別是用於自動圖形繪製。 GPL v2 或 v3

線性代數
函式庫 描述 授權 配置
Armadillo 一個用於線性代數與科學計算的 C++ 模板函式庫,提供 OpenBLAS、Intel MKL、LAPACK、ATLAS、ARPACK、SuperLU 與 FFTW 的包裝器。適用於機器學習、模式識別、數位訊號處理(DSP)、生物資訊、統計學、金融等領域。 Apache 2.0
Blasw 一個 C++11 BLAS 與部分 LAPACK 的包裝器 BSD-3-Clause 僅標頭檔;cmake
Blaze
Blitz++ 一個 C++ 模板類別函式庫,提供高效能密集陣列與向量、隨機數生成器以及小型向量。 GPL-3.0, LGPL-3.0, 自訂授權 cmake
Boost.uBLAS 一個 C++ 模板類別函式庫,為密集、打包與稀疏矩陣提供 BLAS level 1, 2, 3 功能。使用表達式模板(Expression Templates)。 BSL-1.0
C++ Matrix 高效能且精確(例如處理邊界情況)的矩陣數學函式庫,具有表達式模板算術運算子 BSD-3-Clause cmake, make
DecompLib 一個 C++11 函式庫,用於將向量分解為一組正定加權基向量。 MIT 僅標頭檔 (header-only)
Dlib - 線性代數工具
Eigen 一個用於線性代數的 C++ 模板函式庫:矩陣、向量、數值解算器與相關演算法。 MPL2 cmake, conan
ETL
IT++
Matrix 在 Linux 與 Windows 上均可使用的易用型 C++ 科學計算函式庫。 MIT cmake
NumCpp 一個實現 Python NumPy 功能的 C++ 模板函式庫 MIT 僅標頭檔(header-only);cmake, vcpkg, conan
PETSc 一套用於科學應用平行求解的資料結構與常式,這些應用通常由偏微分方程建模。它支援 MPI,透過 CUDA 或 OpenCL 支援 GPU,以及混合 MPI-GPU 模型。
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK(重新設計的 ARPACK 稀疏特徵值計算工具組),是一個用於大規模特徵值問題的開源 C++ 函式庫,構建於 Eigen 線性代數函式庫(同樣為開源且僅含標頭檔)之上。 (原始碼) MPL-2.0 僅標頭檔;cmake, vcpkg
Tense 一個快速的 C++17 表達式模板矩陣與張量函式庫 BSD-3-Clause 僅標頭檔;cmake
xtensor 一個用於數值分析與多維陣列表達式的 C++ 函式庫。 BSD

機器學習
函式庫 描述 授權 配置
Dlib 一個機器學習工具庫
FANN 一個 Fast Artificial Neural Network(快速人工神經網路)函式庫
gaenari 基於 C++17 的增量式決策樹 Apache-2.0 cmake
liblinear
libtorch 熱門 PyTorch Python 函式庫的 C++ 前端(後端以 C++ 編寫) BSD 風格 cmake
MLPACK 一個機器學習套件
Shogun 一個大規模機器學習工具箱
stats++
tensorflow 一個開源的機器學習框架;提供穩定的 C++ API,且主要以 C++ 編寫 Apache-2.0 bazel

數值計算
函式庫 描述 授權 配置
LibBF 由 Bellard 開發的任意精度數值計算函式庫,附帶一個可計算 π 至數十億位的範例程式 MIT

最佳化
函式庫 描述 授權 配置
ceres-solver 一個用於建模與求解大型、複雜最佳化問題的開源 C++ 函式庫。這是一個功能豐富、成熟且高效能的函式庫,自 2010 年起便在 Google 的生產環境中使用。 Apache cmake, conan
OptimLib 一個用於非線性函數數值最佳化方法的 C++11 函式庫。

符號表達式處理
函式庫 描述 授權 配置
CasADi 一個用於非線性最佳化與自動微分的符號框架。支援符號表達式的 C++ 程式碼生成,以及已編譯生成程式碼的動態連接。 LGPLv3.0 cmake
ExprTk C++ 數學表達式工具組函式庫(ExprTk)是一個易於使用、易於整合且極為高效的執行時期數學表達式解析與求值引擎。ExprTk 支援多種形式的函數式、邏輯與向量處理語義,且極易擴展。 MIT 僅標頭檔 (header-only)
GiNaC 一個用於建立整合系統的函式庫,該系統將符號操作與電腦科學中更成熟的領域(如計算密集型數值應用、圖形介面等)整合在同一個框架下。 GPLv3
mathiu.cpp 一個 C++17 的簡單電腦代數系統 Apache-2.0 cmake
SEMT 一個編譯時期的符號微分函式庫 授權 make
SymbolicC++ 一個通用電腦代數系統 GPLv2 autoconf
SymCC 一個編譯器包裝器,可在編譯期間將符號執行嵌入程式中,並附帶一個執行時支援函式庫。本質上,編譯器會插入程式碼,計算程式中每個數值的符號表達式。實際計算會在執行時透過呼叫支援函式庫來完成。 GPLv3 cmake
SymEngine 一個獨立的快速 C++ 符號操作函式庫。 MIT cmake
ViennaMath 一個符號數學函式庫,支援在執行時期與編譯時期進行數學表達式的方便實例化、操作與求值。 MIT cmake

[編輯] 元編程

函式庫 描述 授權 配置
Boost.CallableTraits 一個用於編譯時期檢查與操作所有「可呼叫(callable)」型別的 C++11/17 函式庫。是 Boost.FunctionTypes 的後繼者。 BSL-1.0 僅標頭檔 (header-only)
Boost.Hana 一個同時支援型別與數值的新型元編程函式庫 BSL-1.0
Boost.Metaparse 一個編譯時期解析器函式庫,可從編譯時期字串中產生型別、數值與元函數 BSL-1.0
Boost.Mp11 一個用於編譯時期操作包含型別的資料結構的 C++11 元編程函式庫。 BSL-1.0 僅標頭檔 (header-only)
Boost.MPL 原始的元編程函式庫,針對 C++03,速度較慢 BSL-1.0
Boost.PFR 一個用於基本反射(無宏)的 C++14 函式庫:透過索引存取使用者定義型別的成員、IO 串流。 BSL-1.0 僅標頭檔 (header-only)
Boost.Proto 一個用於建立支援表達式模板的 EDSL(嵌入式領域特定語言)的函式庫 BSL-1.0
Brigand 使用渴望型(eager)元函數,針對最佳效能進行了優化
CoMeta 一個輕量級的 C++14 元編程函式庫 僅標頭檔 (header-only)
Meta 使用渴望型(eager)元函數,在效能方面介於 metal 與 brigand 之間
Metal 使用渴望型(eager)元函數,100% SFINAE 友好
refl-cpp 一個現代的 C++ 編譯時期反射函式庫,支援多載、模板、屬性與代理
Refureku 一個 C++17 執行時期反射與程式碼生成函式庫 MIT cmake
visit_struct 一個微型反射函式庫,為 C++11/14 提供結構訪問器。獨立運作,程式碼量約 200-400 行(取決於計算方式)。

[編輯] PDF

函式庫 描述 授權 配置
HARU 一個免費、跨平台、開源的 PDF 檔案生成函式庫。 (文件) (原始碼) Zlib cmake
JagPDF 一個免費、開源的 PDF 生成函式庫 (文件) MIT
PoDoFo 一個用於處理 PDF 的免費、可移植 C++17 函式庫 LGPL-2.0 cmake, conan, vcpkg
PDF-Writer 一個用於建立、修改與解析 PDF 檔案的高效能 C++ 函式庫 Apache-2.0 cmake, conan, vcpkg

[編輯] 物理與模擬

函式庫 描述 授權 配置
Bullet 用於遊戲、視覺特效、機器人學與強化學習的物理模擬引擎
HELICS 一個用於同步時間並在不同類型的模擬器之間交換資料的共同模擬(co-simulation)框架 BSD 3-Clause "New" 或 "Revised" cmake
ProjectCHRONO 一個開源的多物理場模擬引擎
ReactPhysics3D 一個用於 3D 模擬與遊戲的 C++ 物理引擎函式庫

[編輯] 機器人學

感知
函式庫 描述 授權 配置
GTSAM 感測器融合、SLAM、SFM、VO、電腦視覺 (原始碼) BSD cmake
opencv 電腦視覺與感知、校準、特徵匹配 (原始碼) (文件) BSD, Apache 2 cmake

[編輯] 序列化

函式庫 描述 授權 配置
Boost.Serialization BSL-1.0
C++ XML 物件
cereal 一個 C++11 序列化函式庫 BSD
cista 一個簡單、高效能、零拷貝(zero-copy)的 C++ 序列化與反射函式庫。 (原始碼) MIT cmake
cppcodec 一個 C++11 函式庫,用於編碼/解碼 base64、base32 與 hex,具有一致、靈活的 API MIT 僅標頭檔 (header-only)
GPDS 一個通用資料序列化程式庫,用於物件與 XML 之間的序列化。底層使用 TinyXML。
gSOAP 一個精確的 XML 序列化
iguana 一個現代、通用且易於使用的序列化引擎,以 C++17 開發,基於編譯時期反射。支援的格式:JSON、XML、使用者定義格式。 Apache-2.0 cmake
jios JSON 序列化 MIT cmake
protobuf Protocol Buffers (又稱 protobuf) 是 Google 的一種語言無關、平台無關、可擴展的結構化資料序列化機制,包含 .proto 檔案編譯器。 (文件) 自訂 bazel, cmake
rpnx-serial 一個可以序列化/反序列化 std::mapstd::vector 等型別的函式庫。
Serio 一個快速輕量級的 C++ 序列化函式庫 BSD-3-Clause 僅標頭檔;cmake
ThorsSerializer 一個 C++ 的 JSON 序列化函式庫 MIT make
yaml-cpp
YAS Yet Another Serialization(又一個序列化函式庫)是一個 C++11 函式庫,無任何第三方函式庫依賴。存檔格式可以是二進制、文字、JSON。 Boost 僅標頭檔 (header-only)

二進位序列化
函式庫 描述 授權 配置
binn 一個二進制序列化函式庫,設計為緊湊、快速且易於使用,其本身就是同名格式的一種實現。
blobify 一個僅從結構定義即可推斷序列化佈局的 C++17 函式庫。 Boost 僅標頭檔;cmake
bson-cxx 一個 BSON 格式的 C++11 實現。 scons
fast_ber 一個使用 BER/DER 編碼規則的高效能 C++11 序列化函式庫。編碼佈局由 ASN.1 模式定義。
UBjsonCpp 一個基於 C++14 的高效能 UBJson 讀寫函式庫

[編輯] 排序

函式庫 描述 授權 配置
Cpp-sort 一個在簡單套件中收集各種排序演算法的函式庫。 MIT
Indiesort 一個函數模板,允許將 std::sort(以及其他隨機存取排序函數)用於非隨機存取容器。它還提高了在隨機存取容器與陣列中排序大型物件的效能。 zlib
Timsort 一個穩定的排序函數模板,對於反向或半排序的資料,其效能優於包括 std::sort 在內的基於快速排序(quicksort)的演算法。 MIT

[編輯] 系統

函式庫 描述 授權 配置
Infoware 一個用於獲取系統與硬體資訊的 C++ 函式庫,無需呼叫命令列。 Creative Commons v1.0 cmake

[編輯] 終端

函式庫 描述 授權 配置
cli 一個用於現代 C++ 互動式命令列介面的跨平台函式庫。 BSL-1.0 僅標頭檔;cmake, make, nmake, vcpkg
cwidget 一個高階 C++ 終端介面函式庫,仿照 GTK+ 與 Qt 建模,但使用 curses 作為其顯示層。 GPL v2.0 make
replxx 一個支援 UTF-8、語法高亮與提示的 readline 與 libedit 替代品。

[編輯] 測試

函式庫 描述 授權 配置
bandit 一個對人類友好的 C++11 單元測試框架。 (原始碼) MIT cmake
Boost.Test 一個 C++03/11/14/17 單元測試函式庫,可在多種平台與編譯器上使用。 (原始碼) BSL-1.0 cmake, b2
Catch2 一個現代、原生 C++ 的單元測試、TDD 與 BDD 測試框架 - 使用 C++14、C++17 及更高版本 Boost cmake
cppunit 著名的 JUnit 單元測試框架的 C++ 移植版 LGPL-2.1 make
CUTE 一個 C++ Unit Testing Easier(讓 C++ 單元測試更輕鬆,無需依賴靜態初始化進行註冊),並整合於 Cevelop 以進行 TDD MIT 僅標頭檔 (header-only)
doctest 一個最輕量級、功能豐富的 C++ 單標頭檔單元測試與 TDD 測試框架 MIT 僅標頭檔;cmake
ELFspy 使用虛構物件(fakes)與間諜物件(spies)進行隔離測試 - 僅限 Linux GPL-2.0 make
faker-cxx 一個用於生成測試資料的現代 C++20 Faker 函式庫。 MIT cmake
Google Test Google 測試與模擬(Mocking)框架。 (原始碼) BSD 3-Clause "New" 或 "Revised" bazel, cmake
lest 一個原生 C++11 的微型單元測試、TDD 與 BDD 框架(包含 C++98 變體)。 Boost 僅標頭檔;cmake
liblittletest 一個可移植的測試框架 LGPL-2.1 僅標頭檔 (header-only)
snitch 一個輕量級的 C++20 測試框架。 Boost cmake
tunit 一個支援 Windows、macOS、Linux、iOS 與 Android 的現代 C++17 單元測試函式庫。官方網站 MIT cmake

[編輯] 文字

編碼
函式庫 描述 授權 配置
strsuite 一個用於管理不同編碼字串的 C++20 函式庫 LGPL3.0 cmake
uchardet 猜測字串編碼,基本上與 Python 中的 uchardet 函數相同。 MOZILLA PUBLIC LICENSE v1.1 cmake
win-iconv 一個用於 Linux 與 Mac 的字元集編碼轉換函式庫。Windows 上的 iconv 實作基於 Win32 字元集轉換 API。 公有領域 (public domain) cmake

差異/修補 (Diff/Patch)
函式庫 描述 授權 配置
diff_match_patch 建立並應用字串修補程式(需要 Qt) Apache 2.0 qmake

格式
函式庫 描述 授權 配置
coformat 一個配套的 C++ 函式庫,為 std::format 啟用文字著色與樣式功能。 公有領域 (public domain) 僅標頭檔 (header-only)
fmt 一個開源格式化函式庫,為 C stdio 與 C++ iostreams 提供快速且安全的替代方案。是 C++20 std::format 系列的原型。 授權 cmake, conan

剖析
函式庫 描述 授權 配置
BNFlite 一個輕量級語法解析器函式庫 MIT 僅標頭檔 (header-only)
Boost.Spirit 一組用於解析與輸出生成的 C++17 函式庫,實現為使用表達式模板與模板元編程的 Domain Specific Embedded Languages (DSEL,嵌入式領域特定語言)。Spirit 函式庫使目標語法可以完全以 C++ 編寫。 (原始碼) (文件) BSL-1.0 cmake
CTRE 快速的 Compile-Time Regular Expressions(編譯時期正規表達式),支援在編譯時期或執行時期進行匹配/搜尋/捕捉。 Apache-2.0 僅標頭檔, cmake, vcpkg
lexy 一個 C++17 解析組合子(parser combinator)函式庫,允許您透過方便的 C++ DSL 指定語法來撰寫解析器,並具有手寫解析器所具備的所有靈活性與控制力。支援 UTF-8/16/32。 (文件) BSL-1.0 cmake
PEGTL Parsing Expression Grammar Template Library(解析表達式語法模板函式庫)是一個零依賴、C++17 僅標頭檔的解析組合子函式庫,用於根據 Parsing Expression Grammar (PEG) 建立解析器。 Boost 僅標頭檔 (header-only)

搜尋
函式庫 描述 授權 配置
clucene CLucene 是一個跨平台、功能齊全、開源的索引與搜尋引擎/API。 (原始碼) (文件) LGPL v2.1 cmake
Step20 用於建構 後綴樹 的 Ukkonen 線上演算法,以及用於建構 後綴陣列 的 Manber 演算法。 MIT 僅標頭檔 (header-only)
xapian 一個具有索引功能的開源搜尋引擎 (原始碼) (文件) GPL v2+ make

範本引擎
函式庫 描述 授權 配置
inja 一個 C++17 的模板引擎。 MIT 僅標頭檔;cmake, conan, vcpkg 等。
Jinja2C++ 一個 Jinja2 模板的 C++14/17 實現 MPL-2.0 cmake, conan

[編輯] 版本控制

函式庫 描述 授權 配置
coo-semver 一個用於語義版本號的 C++ 操作函式庫。
LibGit2 版本控制系統 Git 的核心函式庫。

[編輯] 影片

函式庫 描述 授權 配置
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 一個支援 H.264 編碼與解碼的多平台、多架構開源函式庫 (原始碼) BSD-2 Clause meson

[編輯] 網路

函式庫 描述 授權 配置
Chromium Embedded
cpp-jwt
Drogon 一個基於 C++14/17 的 HTTP Web 應用程式框架,可在 Linux/macOS/Unix/Windows 上執行。
ffead-cpp 一個 C++ framework for Enterprise Application Development(企業應用開發框架),符合 HTTP1/HTTP2/HTTP3 標準,支援多種伺服器後端 Apache 2.0 cmake
libhttpserver 一個用於建立高效能 RESTful Web 伺服器的 C++ 函式庫。建立在 libmicrohttpd 之上,為開發人員提供簡單的 API,以 C++ 建立 HTTP 服務。 LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden 一個用於使用 HTML/CSS/JS GUI 建立跨平台 C++ 桌面應用程式的 SDK。 (文件) (原始碼) 授權 npm
oatpp 一個功能強大、可移植、輕量級且零依賴的 Web 框架,適用於 IoT 與高效能 Web 服務。
QtWebApp 受 Java Servlets 啟發的 C++ HTTP(s) 伺服器
Tufão 一個建立在 Qt 之上的 C++11 非同步 Web 框架 (文件) LGPL-2.1, GPL-2.0 cmake
uri-template 用於 C++ 的 URI 模板展開與反向匹配 Apache 2.0 cmake
userver C++ 非同步框架 Apache 2.0 cmake
Wt 用於 Web 應用程式的元件與建構模組,內建安全性、PDF 渲染、2D 與 3D 繪圖、ORM、圖表、身份驗證框架。 (文件) (原始碼) GNU GPL 或商業授權

[編輯] 參見

C 文件 關於 非 ANSI/ISO 函式庫

[編輯] 外部連結

1.  C++ 單元測試框架列表 — 維基百科
2.  精選的(超棒的)僅標頭檔 C++ 函式庫列表 — GitHub
3.  精選的(超棒的)C++ 與 C 函式庫列表 — GitHub
4.  Boost C++ 函式庫 — Boost.org
5.  龐大的 C++ 開源遊戲與框架列表 — GitHub.io
English Deutsch 日本語 中文(简体) 中文(繁體)