名稱空間
變體
操作

開源 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 是一個開源跨平臺音訊處理庫,用於改變音訊流或音訊檔案的速度、音調和播放速率。(原始碼 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 僅標頭檔案
Opus 一個完全開放、免版稅、高度通用的音訊編解碼器。 BSD cmake
Vorbis Ogg Vorbis 是一種完全開放、非專有、無專利和免版稅的通用壓縮音訊格式。 BSD cmake

標籤
描述 許可證 配置
id3lib 一個用於讀取、寫入和操作 ID3v1 和 ID3v2 標籤,並檢索一些基本 MP3 頭資訊(如位元率)的開源跨平臺庫。但是,我們現在建議改用 taglib :) LGPL v2
taglib TagLib 音訊元資料庫是一個用於讀取和編輯幾種流行音訊格式元資料的庫:MP3 檔案的 ID3v1、ID3v2,Ogg Vorbis 註釋以及 FLAC、MPC、Speex、WavPack、TrueAudio、WAV、AIFF、MP4 和 ASF 檔案中的 ID3 標籤和 Vorbis 註釋。(原始碼 LGPLMPL v1.1

[編輯] 效能測試

描述 許可證 配置
benchmark 一個用於對程式碼片段進行效能測試的庫,類似於單元測試 Apache 2.0 cmake
Celero 一個功能豐富的 C++ 效能測試編寫庫/框架。支援 Windows、Linux 和 OSX,使用 C++11。 Apache cmake
Criterion 一個用於現代 C++ 的微效能測試庫 MIT 僅標頭檔案;cmake
gperftools “Google Performance Tools”包含一個高效能、多執行緒的 malloc 實現,以及用於測試堆分配和 CPU 利用率的工具。 BSD 3-Clause "New" or "Revised" configure
nanobench 一個簡單、快速、準確的單標頭檔案微效能測試功能,適用於 C++11/14/17/20。(原始碼 MIT 僅標頭檔案;cmake
picobench 一個微型(超微型)效能測試庫 MIT 僅標頭檔案;cmake
plf::nanotimer 一個最低開銷、跨平臺的簡單計時器類,用於效能測試。 zlib 僅標頭檔案

[編輯] 通訊

描述 許可證 配置
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 一個基於事件、高階的對等庫,允許使用者直接傳送和接收物件。 歐洲公共許可證 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 一個高效能程序間通訊庫 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 一個 C/C++ 開發工具包,用於 XML 資料繫結、快速 WSDL/SOAP/XML Web 服務、WS-Security、JSON/XML-RPC RESTful 服務 GPLv2
hmbdc 一個輕量級高效能 C++17 訊息釋出/訂閱中介軟體框架/庫 僅標頭檔案
HTTPP 一個簡單、C++14、生產就緒的 HTTP 伺服器(基於 Boost 構建)和一個客戶端(基於 libcurl 構建)。 BSD 2-Clause "Simplified" cmake, make
IXWebSocket 一個無依賴的開源 WebSocket + HTTP 庫,支援 SSL 和每訊息解壓縮 WebSocket 擴充套件。 BSD 3-Clause "New" or "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" or "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 協程進行非同步 IO。C++14。 MIT cmake
restful_mapper 用於在 C++ 中消費 RESTful JSON API 的 ORM cmake, make
seastar 一個基於 C++14/C++17 的高效能伺服器端應用框架。 Apache 2.0 cmake, etc.
Silicon Silicon C++14 Web 框架:快速健壯的 Web API MIT cmake
sockpp 一個簡單、現代的 C++ socket 庫 BSD 3-Clause "New" or "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 一個 C++ 中的 WinInet 包裝器 MIT
wvstreams 一個 C++ 網路庫,包括 UniConf 和便捷的 D-Bus API GPL
zeromq 一個快速訊息佇列

[編輯] 併發

描述 許可證 配置
AdaptiveCpp 提供一個 SYCL 和 C++ 並行 STL 解除安裝編譯器和執行時系統,適用於 NVIDIA、AMD、Intel 的 CPU 和 GPU BSD-2-Clause cmake
Asyncpp 一個提供各種併發操作的非同步 C++ 庫 MIT cmake
BlockingCollection C++11 執行緒安全、多生產者、多消費者阻塞佇列、棧和優先佇列類 GPL-3.0 僅標頭檔案
Boost.Atomic 提供原子資料型別及其操作,以及透過原子變數協調多執行緒所需的記憶體排序約束。 BSL-1.0
Boost.Compute 一個基於 OpenCL 的 C++ GPU/平行計算庫。 BSL-1.0 cmake
Boost.Context 一個 C++11 庫,在單個執行緒上提供協作多工抽象。 BSL-1.0
Boost.Interprocess 簡化程序間通訊和同步機制的使用,並提供廣泛的機制:共享記憶體、記憶體對映檔案、訊號量、互斥量、條件變數和可升級互斥量型別、同步物件的命名版本、檔案鎖定、訊息佇列。 BSL-1.0
Boost.Lockfree 提供非阻塞(也稱無鎖)併發資料結構:佇列、棧和環形緩衝區 (spsc_queue)。 BSL-1.0
Boost.MPI 標準 訊息傳遞介面 的 C++ 友好介面 BSL-1.0
Boost.Thread 支援使用共享資料和執行緒間資料同步的多個執行執行緒。 BSL-1.0
concurrencpp C++ 現代併發。任務、執行器、計時器和 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 或 Commercial cmake, make
KOKKOS 一個用於編寫效能可移植 HPC 應用程式的程式設計模型,使用 CUDA、HIP、SYCL、HPX、OpenMP 和 C++ 執行緒作為後端(文件 自定義 cmake, make
libopenmpi Open MPI 專案是一個開源訊息傳遞介面實現。 3-clause BSD
libsimdpp 一個可移植的零開銷 C++ 低階 SIMD 庫。 Boost 僅標頭檔案;cmake
MPL 標準 訊息傳遞介面 的 C++17 友好介面 BSD 3-Clause "New" or "Revised" 僅標頭檔案;cmake
MutexGear 一個純互斥量的同步(輪、讀寫鎖、工作佇列)C/C++11 庫 MutexGear 庫 configure, msvc, make
OpenMP OpenMP 並行程式設計 API 規範
PoCL OpenCL 標準的可移植、可重定向的開源 (基於 LLVM) 實現。(原始碼)(文件 MIT cmake
RaftLib C++17 流式併發 Actor,支援並行資料流計算。 Apache-2.0 cmake
SObjectizer 一個小型跨平臺框架,透過使用 Actor 和釋出-訂閱模型在 C++ 中構建併發和事件驅動應用程式。 BSD-3-Clause cmake, vcpkg, conan
stdgpu GPU 上的高效 STL 類資料結構 Apache 2.0 cmake
subprocess C++17/20 跨平臺庫,用於執行子程序 MIT cmake, teaport
Taskflow 現代 C++ 中的並行任務程式設計 TASKFLOW MIT cmake
task-thread-pool 適用於 C++11 及更高版本的快速輕量級執行緒池。 BSD-2-Clause 或 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 透過宣告結構體讀取 JSON、YAML、TOML、XML 或 INI 配置 MS-PL cmake
gconfmm 一個流行的 GUI 庫 GTK 的跨平臺(官方)C++ 介面,包括型別安全的 Callback 和一套全面的可繼承擴充套件的 widget。gtkmm 使用 STL,包括 string、容器和迭代器。支援 UTF8。(原始碼)(文件 LGPLv2.1 autotools, meson, make
libconfig 一個簡單跨平臺的 C/C++ 庫,用於處理結構化配置檔案("*.cfg")(原始碼)(文件 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 一個實現命令列標誌處理的庫。它內建支援標準型別(如字串),並能夠在原始檔中定義所使用的標誌。 BSD cmake
structopt 透過定義結構體來解析命令列引數。 MIT 僅標頭檔案;cmake
tclap 一個用於解析命令列引數的簡單 C++ 模板庫。該庫提供了一個簡單、靈活的面向物件介面。 MIT cmake

CSS
描述 許可證 配置
mycss CSS 解析器

HOCON
描述 許可證 配置
cpp-hocon Puppet 開發的 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 一個 JSON 的 C++ API,著重於直觀、簡潔的介面,儘可能模仿標準 C++。 make
DAW JSON Link 一個 C++17 庫,提供靜態 C++ 繫結和型別檢查,允許直接解析到使用者資料結構,無需庫分配、支援 push/pull 模式、分配器支援、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 僅標頭檔案
jios JSON 輸入輸出流 MIT cmake
JOST
json Niels Lohmann 的 C++11 JSON 庫,具有直觀的語法。 MIT 僅標頭檔案;bazel, cmake, meson
Jsonifier 一些 C++20 類,用於極快的 JSON 解析/序列化。 MIT cmake
JSON Voorhees C++11 的殺手級 JSON(文件 Apache-2.0 cmake
JSON++
json11 一個適用於 C++11 的小型 JSON 庫,提供 JSON 解析和序列化。 MIT cmake
JsonBox 一個 C++ 庫,用於輕鬆快速地讀寫 JSON。 MIT cmake
jsoncons 一個用於 JSON 和類似 JSON 資料格式的庫,支援 JSON Pointer、JSON Patch、JSONPath、CSV、MessagePack、CBOR、BSON、UBJSON。 自定義 僅標頭檔案
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 並行化,每秒解析數千兆位元組的 JSON。(文件)(影片 Apache-2.0 cmake, vcpkg
struct_mapping 將 JSON 對映到 C++ 結構體並從中對映。 MIT cmake
swxJson 目前最便捷的 C++ JSON 庫。只需一個函式呼叫即可讀寫任何複雜結構。效能約為 RapidJSON 的一半。 MIT make
ThorsSerializer JSON/BSON/YAML 輸入輸出流 MIT make
ujson µjson 是一個小型 C++11 UTF-8 JSON 庫。 cmake
yyjson 一個用 ANSI C 編寫的高效能 JSON 庫。 MIT cmake

TOML
描述 許可證 配置
toml++ 適用於 C++17 及更高版本的 TOML 解析器和序列化器。
toml11 基於 C++11 的 TOML 解析庫

XML
描述 許可證 配置
ai-xml 透過向類新增一個最小函式來序列化物件到 XML 和從 XML 反序列化。內部使用 libxml++ AGPL-3.0 make
GPDS 一個通用資料序列化器,用於將物件序列化到 XML 並從 XML 反序列化。內部使用 TinyXML。
gSOAP XML 資料繫結
libxml++ libxml++ 是 libxml XML 解析器 C 庫的 C++ 封裝器。(文件 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_mapflat_setflat_multimapflat_multisetstable_vectorstatic_vectorsmall_vectordevector。(原始碼 BSL-1.0 僅標頭檔案
Boost.Fusion 一個用於處理異構“元組”集合的庫。提供了一組容器(vectorlistsetmap),以及它們底層資料的轉換表示,即“檢視”。(原始碼 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++ 分配器 用於固定大小靜態和基於棧記憶體的 STL 一致分配器 + 另一個允許自定義邊界分配的一致分配器 BSD-3-Clause cmake, make
cpp-btree B-樹容器更好地利用 CPU 快取:btree_mapbtree_setbtree_multimapbtree_multiset。(原始碼 Apache-2.0 僅標頭檔案;cmake
DataFrame 用於統計、金融和機器學習分析的 C++ DataFrame —— 採用現代 C++,使用原生型別和連續記憶體儲存。 BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant 是一個 C++11/14/17 通用、型別安全、判別式 union。它尤其以其出色的 constexpr 支援而聞名。 BSL-1.0 cmake
Frozen C++14 constexpr 基於完美雜湊的不可變集合、對映和演算法。 Apache-2.0 僅標頭檔案;cmake
Immer 一個持久且不可變資料結構的庫。 Boost cmake
plf::colony 無序的“袋狀”容器,在高修改場景下效能優於 std:: 容器,同時無論插入和擦除如何,都能保持指向未擦除元素的有效指標。相容 C++98/11/14/等。另請參閱 P0447 (std::hive)。(原始碼 zlib conan build2
plf::list 一個 std::list 實現,為了快取友好性犧牲了範圍拼接,從而實現更快的插入、擦除和迭代。相容 C++98/03/11/14/17/20/23/26/等。(原始碼)(文件 zlib
plf::reorderase “交換並彈出”/“移動並彈出”慣用語的擴充套件和最佳化,用於隨機訪問容器,以提高隨機訪問容器的擦除效能,當擦除後的順序不重要時。涵蓋單個、範圍和 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),永不為空的 variant,目標 C++11。快速,防止許多不必要的隱式轉換。 BSL-1.0 cmake
Ygg 一個 C++11 高效能容器和資料結構的侵入式實現,例如 紅黑樹區間樹 和區間對映。 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 一個相當全面、模組化和可移植的加密工具包,為開發者提供了大量知名的分組密碼、單向雜湊函式、連結模式、偽隨機數生成器、公鑰加密和許多其他例程。(原始碼 公共領域 cmake, make

[編輯] 資料庫

描述 許可證 配置
Boost::MySQL MySQL 客戶端庫 BSL-1.0
cpp-redis C++11 輕量級 Redis 客戶端:非同步、執行緒安全、無依賴、管道、多平臺。(文件 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++ 庫,用於處理十億級鍵值資料的持久化儲存。(文件 BSD-3 cmake
libpqxx PostgreSQL 的 C++ 聯結器(原始碼 BSD-3 cmake, make
lmdb++ LMDB 嵌入式 B+ 樹資料庫庫的 C++11 包裝器。 Unlicense make
mongocxx MongoDB 的官方 C++11 驅動庫(文件)。它提供用於 CRUD 操作、索引和聚合的最佳化 API。支援 BSON,並具有連線池和身份驗證機制,為利用 MongoDB 構建 C++ 應用程式提供高效能和可擴充套件的解決方案。 Apache 2.0 cmake
mysql++ MySQL 資料庫和工具
nanodbc 一個小型、跨平臺、C++14 的原生 C ODBC API 包裝器 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 一個友好輕量級的 C++ 資料庫庫,用於 MySQL、SQLite 和 ODBC。 Apache-2.0 make
QUINCE C++ 表示式查詢 (ORM+EDSL) Boost
QxOrm 一個用於 C++/Qt 的物件關係對映 (ORM) 資料庫庫,支援最常見的資料庫、序列化(JSON、二進位制、XML);獨立的併發 HTTP Web 伺服器 GPLv3 或專有
redis-cpp 一個輕量級的 C++17 客戶端庫,用於執行 Redis 命令。 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 嵌入式領域特定語言 (EDSL)。 AGPL-3.0, MIT 僅標頭檔案;cmake, vcpkg
sqlpp11 一個用於 C++ 中 SQL 查詢和結果的型別安全嵌入式領域特定語言。 BSD-2 cmake
taoPQ 一個輕量級的 C++17 PostgreSQL 客戶端庫 Boost cmake

[編輯] 嵌入式語言繫結

描述 許可證 配置
AngelScript 一種類似 C++ 的指令碼語言。 ZLib
ChaiScript 一個易於使用的 C++ 嵌入式指令碼語言。 BSD-3-Clause
cling 一個互動式 C++ 直譯器,基於 Clang 和 LLVM 構建,利用 RAD、建立指令碼、嵌入式指令碼和執行時程式碼生成。(原始碼 自定義 / LGPL cmake
ExprTk 一個易於使用、易於整合且極其高效的執行時數學表示式解析器和評估引擎。ExprTk 支援多種形式的函式、邏輯和向量處理語義,並且非常容易擴充套件。
Jinx 一種專為影片遊戲設計的指令碼語言。 MIT cmake
spidermonkey.dev Mozilla 的 JavaScript 和 WebAssembly 引擎。
muparser 一個用 C++ 編寫的可擴充套件高效能數學表示式解析器庫。 BSD-2-Clause cmake
PythonQt Qt 框架的動態 Python 繫結。它提供了一種將 Python 指令碼語言輕鬆嵌入 C++ Qt 應用程式的方法。 LGPL 2.1
lua 一種輕量級多正規化指令碼語言,主要用於嵌入式用途。C 庫。 MIT make
sol2 一個現代 C++ Lua 繫結庫。 MIT 僅標頭檔案;cmake
v8pp 將 C++ 函式和類繫結到 V8 JavaScript 引擎。 BSL-1.0 僅標頭檔案;cmake

[編輯] 嵌入式/即時

描述 許可證 配置
distortos 一個用於微控制器(ARM、STM32)的面向物件 C++11 RTOS(原始碼)(文件 MPL-2.0 cmake
ETL 嵌入式模板庫 - C++03,專為低資源(嵌入式)平臺量身定製的行動式模板庫(原始碼 MIT
QP/C++ RTOS 核心:基於活躍物件和狀態機的即時嵌入式框架 GPLv3
µcuREST 用於微控制器的 C++11 REST/JSON 伺服器框架

[編輯] 檔案元資料

描述 許可證 配置
exempi
exiv2
libkexiv2
rarian

[編輯] 金融計算

描述 許可證 配置
DataFrame 一個用於統計、金融和機器學習分析的 C++ DataFrame——使用原生型別和連續記憶體儲存的現代 C++。 BSD-3-Clause cmake, make, conan
QuantLib 一個量化金融庫 - 一個免費/開源的量化金融庫 修改過的 BSD

[編輯] 遊戲引擎架構

描述 許可證 配置
Anax 一個開源的 C++ 實體系統 MIT cmake
Anura 一個功能齊全的遊戲引擎,也是 Frogatto & Friends 背後的技術。 自定義 開源 make, vcpkg
BOX2D 一個物理引擎 MIT cmake
EntityPlus 一個 C++17 實體元件系統 BSD-1.0 cmake
EntityX 一個快速、型別安全的 C++ 實體元件系統 MIT cmake
EnTT 一個用現代 C++ 編寫的用於遊戲開發及更多功能的微型庫 MIT 僅標頭檔案;cmake, bazel, conan, vcpkg, brew, cppget

[編輯] 通用多媒體

描述 許可證 配置
Kigs-framework 一個模組化多用途跨平臺框架 MIT
openFrameworks MIT
SDL 簡單直觀的媒體層:一個跨平臺(Windows、macOS、Linux、iOS、Android 和其他)庫,透過平臺圖形 API(OpenGL/Direct3D/Metal/Vulkan)提供對音訊、鍵盤、滑鼠、遊戲杆和圖形硬體的低階訪問。(文件)(原始碼 zlib cmake
SFML 簡單快速多媒體庫;多平臺(Windows、Linux、macOS,很快支援 Android 和 iOS);提供一個簡單的介面,以簡化遊戲和多媒體應用程式的開發。它由五個模組組成:系統、視窗、圖形(基於 OpenGL)、音訊和網路。 zlib/png cmake
SIGIL 聲音、輸入和圖形整合庫;一個簡單、跨平臺、極簡的文字、形狀、輸入、音訊和 2D 影像庫。支援的平臺:Windows、Linux 和 Raspberry Pi 許可證 cmake

[編輯] 通用

描述 許可證 配置
Abseil Google 的 C++ 庫開源集合,旨在增強 C++ 標準庫。(文件)(原始碼 Apache-2.0 cmake
抽象侵入式容器 Boost.Intrusive 更靈活,但不相容 STL。
Au 一個 C++14 相容的物理單位庫,無依賴項,強調安全性、可訪問性和效能。(文件 Apache 2.0 僅標頭檔案
BDE Bloomberg L.P. 的 Bloomberg 開發環境核心庫 Apache
更好的列舉 具有 constexpr 支援的反射列舉(列舉到字串、迭代等)。 BSD-2 僅標頭檔案,cmake, make
bitfield.h 位域結構工具,比基本語言工具更便攜/靈活。
Boost 一個大型的通用庫集合 BSL-1.0
CAF C++ Actor Framework (CAF) 是一個開源 C++11 actor 模型實現,具有輕量級快速的 actor 實現、訊息模式匹配、網路透明訊息傳遞等功能 BSD
Cinder 一個社群開發、免費開源的庫,用於 C++ 中的專業創意編碼。(文件)(原始碼 修改過的 BSD cmake
CommonPP 一個多用途庫,非常注重從專案中獲取指標。 BSD
composite_op.h 基本的類資料成員自省,繁瑣且通常不可重入,但有時有用。
cpp-mmf 一個 C++98 庫,封裝了 POSIX 或 Windows 的記憶體對映檔案
cxxomfort C++ 功能的回溯(C++11 到 C++03,C++1y 提案到 C++11/C++03)。
Dlib 網路、執行緒、圖形介面、資料結構、線性代數、機器學習、XML 和文字解析、數值最佳化、貝葉斯網路以及許多其他任務 Boost
eventpp 一個用於回撥、事件分派器和事件佇列的 C++ 事件庫。使用 eventpp,您可以輕鬆實現訊號和槽機制、釋出者和訂閱者模式或觀察者模式。 Apache 2.0
fcppt Freundlich 的 C++ 工具包 (fcppt) 是一個庫集合,專注於透過提供更好的型別和利用函數語言程式設計來改進通用 C++ 程式碼。
Folly Facebook 開源庫。一個跨平臺 C++14 元件庫,設計時考慮了實用性和效率。(文件 Apache-2.0 cmake, vcpkg
GSL C++ 核心指南支援庫實現,由 Bjarne Stroustrup、Herb Sutter 等人在C++ 核心指南中推薦 MIT cmake, vcpkg
gsl-lite ISO C++ 指南支援庫 (GSL) 的一個版本,適用於 C++98、C++11 及更高版本 MIT 僅標頭檔案
GUL14 來自 DESY 的 C++14 通用實用程式庫:常用實用程式函式和型別,包括字串實用程式、統計和數值函式、容器、除錯工具等。(原始碼 LGPL-2.1 meson, vcpkg
History 現代 C++17 撤消/重做框架 Unlicense
hspp 一個將 Haskell 風格程式設計引入 C++ 的實驗性庫。 Apache-2.0 僅標頭檔案
IP-DOS (tm) IdeaFarm (tm) Piggyback 分散式作業系統:一個用於 C++ 語言的通用程式設計環境。 專有開源 Open Watcom 2.0
JUCE 一個功能豐富、成熟的跨平臺 C++ 工具包 GPL
Kangaru 一個用於 C++11 和 C++14 的依賴注入容器 MIT
Kerbal 將現代 STL 功能回溯到以前的標準。更多功能!更多 constexpr! LGPL-3.0 僅標頭檔案;cmake
libsourcey 一個用於高速網路和媒體編碼的跨平臺 C++14 庫。支援 HTTP、WebSockets、TURN、STUN、Symple 等。 LGPL-2.1 cmake
LLNL/units 一個執行時 C++ 庫,用於處理測量單位及其轉換,以及單位和測量的字串表示 BSD 3-Clause "New" or "Revised" cmake
Loki 一個 C++ 設計庫,包含常見設計模式和習語的靈活實現。 MIT make
match(it) 一個用於 C++17 的輕量級模式匹配庫,具有無宏 API。 Apache-2.0 僅標頭檔案
nonstd-lite 一個 *-lite 儲存庫列表(例如,span-litescope-liteexpected-lite),包含一些提議或已標準化的 C++17/20/23 庫型別(如 std::spanstd::expected 等)的 C++98/11 實現)。 BSL-1.0 僅標頭檔案
nytl 一個通用的 C++17 實用程式模板庫。 BSL-1.0 僅標頭檔案
OnPosix 一個 C++ 庫,在 POSIX 平臺上提供多種抽象(例如,執行緒、網路、日誌、IPC 等)。
Reason XML、xpath、regex、執行緒、套接字、HTTP、SQL、日期時間、流、編碼和解碼、檔案系統、壓縮 GPL
SaferCPlusPlus 用於不安全 C++ 原語的安全相容替代品,包括指標、intstd::vector Boost
Smart Enum 為您的列舉提供 to_stringfrom_string 等功能。 BSL-1.0 cmake
units 一個基於 C++14 構建的編譯時量綱分析和單位轉換庫,無依賴項 MIT 僅標頭檔案
yaal 又一個抽象層 - 演算法、集合、任意精度計算、通用 DSL 語法驅動的解析器等 CC BY-ND-NC 4.0 cmake
Yato 一個現代 C++(14/17) 跨平臺 STL 風格和 STL 相容庫,實現了容器、範圍、迭代器、型別特性和其他工具;Actor 系統;型別安全配置介面。 Apache-2.0 cmake
yomm2 一個用於 C++17 的開放式多方法 Boost
zoolib ZooLib 是一個功能豐富的 C++ 工具包。 MIT

[編輯] GPS

描述 許可證 配置
gpsd 一個開源、跨平臺(Linux/Unix/BSD 系列,包括 Android 和 OS X)的 GPS 感知工具集,例如用於 GPS 裝置、AIS 無線電和其他導航感測器的轉換器和複製守護程式。gpsd 主要用 C 和 Python 編寫,但也有 C++ 包裝器。gpsd 在移動嵌入式系統中無處不在。每個具有定位功能的 Android 應用程式都間接是 gpsd 客戶端。(文件)(原始碼 BSD 2-clause scons

[編輯] 圖形使用者介面

描述 許可證 配置
Brisk 跨平臺 C++20 模組化 GUI 框架,具有響應式功能和可擴充套件的 GPU 加速渲染。(原始碼),(文件 GPL2+/專有 cmake, vcpkg
Dear ImGui 一個輕量級的 C++ GUI 庫,依賴項極少,可移植,與渲染無關,針對 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 用於在 Windows 上以標準 C++ 編寫 GUI 應用程式的 OWL 的現代更新
Slint 一個宣告式 GUI 工具包,用於為桌面、嵌入式和微控制器構建原生使用者介面。(原始碼),(文件 GPL 3,免版稅,或商業 cmake
tiny file dialogs 一組 C/C++ 跨平臺檔案對話方塊(無初始化,無主迴圈,6 個模態函式呼叫) 僅標頭檔案
U++ 一個跨平臺(Windows、GNU/Linux、macOS)快速應用程式開發框架,捆綁了 IDE。相容 C++17。(文件)(原始碼 BSD-3-Clause make
WxWidgets 一個免費開源的跨平臺(Windows、GNU/Linux、macOS)C++ 框架,用於使用原生控制元件編寫高階 GUI 應用程式。(文件 修改過的 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 小部件
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++ 包裝器,cairo 是一個支援多種輸出裝置的 2D 庫:X Window、Quartz、Win32、影像緩衝區、PostScript、PDF、SVG、OpenGL(實驗性)。 LGPL
dfpsr 一個 2D、3D 和等距軟體渲染器,帶桌面 GUI 工具包,極簡依賴,專為長期維護而設計,可在沒有任何 3D 加速驅動程式的情況下執行。 zlib
gegl 通用圖形庫 (GEGL) 是一個基於資料流的影像處理框架,提供浮點處理和無損影像處理功能。(原始碼 LGPL
io2d P0267 的參考實現,建議的 ISO C++ 2D 圖形 API 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 圖形引擎用於 Google Chrome、Chrome OS、Mozilla Firefox、Android、LibreOffice、Flutter 等。Skia 有多種後端:軟體光柵化、(PDF) 輸出、OpenGL、SVG 等。 新 BSD
TXLib TX Library 是一個用 C++ 編寫的 Win32 微型 2D 圖形庫。
ULIS 一個用於通用數字影像處理、2D 軟體光柵化、無限影像格式(`u8`、`u16`、`u32`、floatdouble)、自定義位序記憶體佈局、所有 Photoshop 畫素混合模式 + 11 種額外模式、顏色模型(RGB、HSL、HSV、CMYK 等)、顏色管理管道、色彩空間支援(icm 配置檔案和裝置無關)、多執行緒最佳化演算法、SIMD 擴充套件(SSE2)最佳化演算法、影像池和快取最佳化、動畫影像序列記憶體儲存的跨平臺 C++14 庫。 自定義(僅限非商業用途免費) cmake

[編輯] 圖形 (3D)

描述 許可證 配置
assimp 3D 模型載入 BSD-3 cmake, vcpkg
bgfx 一個跨平臺、與圖形 API 無關的“自帶引擎/框架”風格的渲染庫。 BSD-2 make, vcpkg
Diligent Engine 一個現代的跨平臺低階 3D 圖形庫。 Apache-2.0 cmake
Epoxy GLEW 的現代繼任者。抽象了某些 GL 上下文之間的差異,這有時使其比 GLEW 更易於使用。自 2015 年以來被 GTK+ 專案使用。 MIT meson, vcpkg
G3D G3D Innovation Engine 是一個功能齊全、開源、跨平臺(Windows、Linux、Mac OS)的 3D 遊戲引擎,用 C/C++ 編寫。G3D 用於商業遊戲、研究論文、模擬器和大學課程。它支援即時和離線硬體渲染、光線追蹤、模型載入、線性代數和 GPU 上的 GP 計算。支援 3DS、OBJ、MP4、PNG、JPG、MD3 和許多其他格式,包括原生的 OpenGL 可換膚 GUI。(原始碼)(文件 BSD-2
GLAD 一個可定製的輕量級庫,用於載入 OpenGL 函式
GLEW 一個 OpenGL 函式載入器(原始碼 EXTGL/BSD/MIT make, vcpkg
GLFW 一個 OpenGL 視窗管理器(原始碼)(文件 zlib/libpng cmake, vcpkg
GLM OpenGL 數學庫 (GLM) 是一個基於 GLSL 規範的圖形軟體 C++ 數學庫。 The Happy Bunny /
MIT
僅標頭檔案;cmake, vcpkg
Godot 一個功能齊全的 C++17 跨平臺 2D 和 3D 遊戲引擎,帶有一個用自身編寫的 GUI 編輯器和一個受 Python 啟發的指令碼語言。 MIT scons
hlsl++ 一個使用 HLSL 語法進行渲染的 C++ 數學庫。支援 SSE 和 NEON MIT 僅標頭檔案
Horde3D 一個小型開源 3D 渲染引擎。其編寫旨在建立一個圖形引擎,提供下一代遊戲所期望的令人驚歎的視覺效果,同時保持輕量和儘可能乾淨。 EPL
Irrlicht Irrlicht 引擎是一個用 C++ 編寫的開源即時 3D 引擎。它是跨平臺的,使用 D3D、OpenGL 和其自己的軟體渲染器。 zlib/libpng make, vcpkg
klein 一個 C++11/14/17 SSE 最佳化的圖形和動畫投影幾何代數庫 MIT cmake, vcpkg
Magnum 一個輕量級模組化的 C++11/C++14 圖形中介軟體,用於遊戲和資料視覺化(原始碼 自定義 cmake
O3DE Open-source 3D Engine(前身為 Amazon 的 Lumberyard)是一個 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 圖形工具包,被應用開發者用於視覺模擬、遊戲、虛擬現實、科學視覺化和建模等領域。(原始碼)(文件 自定義,
GNU LGPL
cmake, vcpkg
Visionaray 一個 C++ 光線追蹤模板庫。 MIT cmake
VTK 視覺化工具包 (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 抗鋸齒進化。一個用於 C++ 中速度和質量的 2D 圖形引擎 MIT cmake
FreeImage 一個開源庫專案,供希望支援流行圖形影像格式(如 PNG、BMP、JPEG、TIFF 等)的開發人員使用。 GPLv2, GPLv3, FIPL
FreeImageRe 一個來自開源庫 FreeImage v3.18 的分支,用於支援影像編解碼器更新並調整以方便使用。所有原始格式和外掛都已維護。 GPLv2, GPLv3, FIPL cmake
GraphicsMagick 讀取、寫入和操作超過 88 種主要格式的影像。2002 年從 ImageMagick 分支。 版權 Mercurial
SAIL 讀取和寫入靜態、動畫、多頁影像及其元資料和 ICC 配置檔案。具有轉換功能。目標是簡單和快速。 MIT cmake
stb 一組面向 C/C++ 遊戲開發的庫,包括影像載入器/寫入器/調整器、字型文字光柵化器、型別安全容器、ogg vorbis 解碼器、即時 DXT 壓縮器、Perlin 噪聲生成器、用於 pet DSL 的詞法分析器、快速 sprintf 等。 MIT, 自定義 僅標頭檔案

格式
描述 許可證 配置
djvulibre
imagemagick
Kaitai Struct C++ 執行時
libraw
openexr
poppler
qimageblitz
SVG++

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

[編輯] 影像處理

描述 許可證 配置
dlib
Halide 一個 C++ 嵌入式 DSL,用於影像和張量的高效能處理。 MIT cmake, vcpkg
ITK - Insight Toolkit ITK 是一個開源、跨平臺庫,為開發人員提供一套廣泛的影像分析軟體工具。ITK 透過極限程式設計方法開發,建立在經過驗證的空間導向架構上,用於處理、分割和註冊二維、三維或更多維度的科學影像。 Apache 2.0 cmake
opencv
OTB

[編輯] 國際化

描述 許可證 配置
gettext GNU 國際化庫。 GPL make
ICU Unicode 國際元件是一套成熟、廣泛使用的 C/C++ 庫,為軟體應用程式提供 Unicode 和全球化支援。(原始碼 icu4c/LICENSE make
spirit-po 一個小型庫,它解析 po 檔案並提供類似於 GNU libintl 的介面。基於 boost::spirit。 BSL-1.0 僅標頭檔案
uni-algo C/C++ 的 Unicode 演算法實現 MIT/Unlicense cmake, conan, vcpkg

[編輯] 日誌

描述 許可證 配置
Backward 列印漂亮的 Python 風格堆疊跟蹤,帶顏色和原始碼片段,尤其是在崩潰時。 MIT 僅標頭檔案;cmake,conan
Boost.Log 一個易於使用、可擴充套件且高效能的跨平臺日誌庫。 BSL-1.0
clutchlog 單標頭檔案日誌系統,目標是多功能除錯而不是服務事件儲存。 BSD cmake
glog 基於 C++ 風格流的 C++98 Google 日誌庫 許可證 bazel, cmake, vcpkg
Log4cplus 跨平臺 C++17 日誌 API(仿照 Java log4j API),提供執行緒安全、靈活且任意粒度的日誌管理和配置控制。 BSD(兩條款)或 Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp 一個 C++ 類庫,用於靈活地將日誌記錄到檔案、syslog、IDSA 和其他目標。 LGPL
log4cxx Apache log4cxx 是一個 C++ 日誌框架,仿照 Apache log4j。(原始碼 Apache cmake
lwlog 一個極其快速的同步和非同步 C++17 日誌庫 MIT cmake
Pantheios 一個診斷日誌 API 庫,提供型別安全、效率、泛型和可擴充套件性的組合 BSD 風格
plog 一個不到 1000 行程式碼的 C++ 可移植簡單日誌庫 MPL-2.0
Quill 一個跨平臺 C++14 非同步低延遲日誌庫 MIT cmake
spdlog 一個超快的 C++ 日誌庫 MIT 僅標頭檔案;cmake,conan

[編輯] 錯誤處理

描述 許可證 配置
Boost.LEAF 一個輕量級 C++11 錯誤處理庫:單標頭檔案格式,無依賴,無動態記憶體分配,可與異常處理一起使用或不使用,多執行緒就緒。(原始碼 BSL-1.0 僅標頭檔案,cmake

[編輯] 數學

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

自動機理論
描述 許可證 配置
yasmine 一個 C++11 UML 狀態機框架(文件)(原始碼 許可證

數字類庫
描述 許可證 配置
BigNumber 一個用於建立和計算任意長度整數的 C++ 類 Apache 2.0 cmake
Boost.Multiprecision Multiprecision 庫提供 C++ 中的整數、有理數、浮點數和複數型別,這些型別具有比 C++ 普通基本(內建)型別更大的範圍和精度 BSL-1.0
cln CLN 是一個用於高效計算各種任意精度數字的庫。 GPL
CNL 組合數字庫 - 定精度數字型別 BSL-1.0 cmake, conan
fpm 一個 C++11 定點數學庫,提供標準庫的浮點功能在整數上。如果您的目標平臺缺少 FPU,或者需要確定性計算,則非常有用。 MIT 僅標頭檔案;cmake
Universal Numbers 一個 C++17/20 模板庫,提供本機算術型別(整數/十進位制/定點/浮點/posits/對數/區間)的外掛替代品 MIT cmake, vcpkg, conan

計算幾何
描述 許可證 配置
Boost.Geometry Boost.Geometry(又名通用幾何庫,GGL)定義了概念、原語和演算法來解決幾何問題。Boost.Geometry 包含一個維度無關、座標系無關和可擴充套件的核心,基於概念、元函式和標籤排程。支援的演算法有:面積、長度、周長、質心、凸包、交集(裁剪)、內部(點在多邊形內)、距離、包絡(邊界框)、簡化、變換等。該庫支援高精度算術數字。 BSL-1.0
CGAL 計算幾何演算法庫 GPL-3.0 或商業 cmake
PCL 點雲庫
pmp-library 多邊形網格處理庫
Wykobi 計算幾何庫

圖論
描述 許可證 配置
Boost.Graph BSL-1.0
CXXGraph 一個用於圖表示、操作、分割槽和演算法的 C++17 庫 AGPL-3.0 僅標頭檔案;cmake
GTpo 一個 C++14 有向圖建模庫,是 QuickQanava 專案的一部分 BSD qmake, cmake
LEMON 網路高效建模和最佳化庫實現了常見的專注於組合最佳化、圖和網路的資料結構和演算法。(文件 許可證
NGraph 一個簡單的 (網路) 相簿,用 C++ 編寫
OGDF 開放圖演算法和資料結構框架 - 是一個 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 級別 1、2、3 功能。使用表示式模板。 BSL-1.0
C++ Matrix 高效能、精確(例如,邊緣情況)的矩陣數學庫,具有表示式模板算術運算子。 BSD-3-Clause cmake, make
DecompLib 一個 C++11 庫,用於將向量分解為一組正定加權基向量。 MIT 僅標頭檔案
Dlib - 線性代數工具
Eigen 一個用於線性代數的 C++ 模板庫:矩陣、向量、數值求解器和相關演算法。 MPL2 cmake, conan
ETL
IT++
Matrix 易於使用的科學計算庫,適用於 Linux 和 Windows 平臺。 MIT cmake
NumCpp 一個實現 Python NumPy 的 C++ 模板庫 MIT 僅標頭檔案;cmake、vcpkg、conan
PETSc 一套用於並行求解由偏微分方程建模的科學應用程式的資料結構和例程。它支援MPI,透過CUDA或OpenCL支援GPU,以及混合MPI-GPU。
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK 是一個用於大規模特徵值問題的開源C++庫,建立在Eigen線性代數庫(也是開源且僅標頭檔案)之上。( ) MPL-2.0 僅標頭檔案;cmake, vcpkg
Tense 一個快速的C++17表示式模板矩陣和張量庫 BSD-3-Clause 僅標頭檔案;cmake
xtensor 一個用於多維陣列表示式數值分析的C++庫。 BSD

機器學習
描述 許可證 配置
Dlib 一套機器學習工具
FANN 一個Fast Artificial Neural Network 庫
gaenari 一個基於C++17的增量決策樹 Apache-2.0 cmake
liblinear
libtorch 流行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 僅標頭檔案
GiNaC 一個用於建立整合系統的庫,該系統將符號操作與計算機科學中更成熟的領域(如計算密集型數值應用、圖形介面等)整合在一起。 GPLv3
mathiu.cpp 一個簡單的C++17計算機代數系統 Apache-2.0 cmake
SEMT 一個編譯時符號微分 許可證 make
SymbolicC++ 一個通用計算機代數系統 GPLv2 autoconf
SymCC 一個編譯器包裝器,它在編譯期間將符號執行嵌入到程式中,以及一個相關的執行時支援庫。本質上,編譯器插入程式碼,為程式中的每個值計算符號表達式。實際計算透過在執行時呼叫支援庫進行。 GPLv3 cmake
SymEngine 一個獨立的快速C++符號操作庫。 MIT cmake
ViennaMath 一個符號數學庫,可以在執行時和編譯時方便地例項化、操作和評估數學表示式。 MIT cmake

[編輯] 超程式設計

描述 許可證 配置
Boost.CallableTraits 一個用於編譯時檢查和操作所有“可呼叫”型別的C++11/17庫。是Boost.FunctionTypes的繼任者。 BSL-1.0 僅標頭檔案
Boost.Hana 一個用於型別和值的新超程式設計庫 BSL-1.0
Boost.Metaparse 一個編譯時解析器庫,從編譯時字串生成型別、值和元函式 BSL-1.0
Boost.Mp11 一個用於編譯時操作包含型別的C++11超程式設計庫。 BSL-1.0 僅標頭檔案
Boost.MPL 一個原始的超程式設計庫,面向C++03,速度較慢 BSL-1.0
Boost.PFR 一個用於基本反射(無需宏)的C++14庫:按索引訪問使用者定義型別的成員,IO流。 BSL-1.0 僅標頭檔案
Boost.Proto 一個用於構建基於表示式模板的EDSL的庫 BSL-1.0
Brigand 使用急切元函式,為最佳效能而最佳化
CoMeta 一個輕量級C++14超程式設計庫 僅標頭檔案
Meta 使用急切元函式,在效能方面介於metal和brigand之間
Metal 使用急切元函式,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 一個免費的行動式C++17 PDF處理庫 LGPL-2.0 cmake, conan, vcpkg
PDF-Writer 一個用於建立、修改和解析PDF檔案的高效能C++庫 Apache-2.0 cmake, conan, vcpkg

[編輯] 物理和模擬

描述 許可證 配置
Bullet 一個用於遊戲、視覺效果、機器人和強化學習的物理模擬引擎
HELICS 一個用於在不同型別的模擬器之間同步時間和交換資料的協同模擬框架 BSD 3-Clause "New" or "Revised" cmake
ProjectCHRONO 一個開源多物理場模擬引擎
ReactPhysics3D 一個用於3D模擬和遊戲的C++物理引擎庫

[編輯] 機器人技術

感知
描述 許可證 配置
GTSAM 感測器融合、SLAM、SFM、VO、計算機視覺 ( ) BSD cmake
opencv 計算機視覺和感知、校準、特徵匹配 ( ) ( 文件 ) BSD, Apache 2 cmake

[編輯] 序列化

描述 許可證 配置
Boost.Serialization BSL-1.0
C++ XML objects
cereal 一個C++11序列化庫 BSD
cista 一個簡單、高效能、零複製的C++序列化和反射庫。( ) MIT cmake
cppcodec 一個C++11庫,用於以一致、靈活的API編碼/解碼base64、base32和hex MIT 僅標頭檔案
GPDS 一個通用資料序列化器,用於將物件序列化到 XML 並從 XML 反序列化。內部使用 TinyXML。
gSOAP 一個精確的XML序列化
iguana 一個基於編譯時反射開發的現代、通用且易於使用的C++17序列化引擎。支援的格式:JSON、XML、使用者定義。 Apache-2.0 cmake
jios JSON序列化 MIT cmake
protobuf Protocol Buffers(又稱protobuf)是Google的語言中立、平臺中立、可擴充套件的結構化資料序列化機制,包括.proto檔案編譯器。( 文件 ) 自定義 bazel, cmake
rpnx-serial 一個可以(反)序列化std::mapstd::vector等型別的庫。
Serio 一個快速輕量級的C++序列化庫 BSD-3-Clause 僅標頭檔案;cmake
ThorsSerializer 一個用於JSON的C++序列化庫 MIT make
yaml-cpp
YAS Yet Another Serialization 是一個沒有第三方庫依賴的C++11庫。歸檔可以是二進位制、文字、JSON。 Boost 僅標頭檔案

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

[編輯] 排序

描述 許可證 配置
Cpp-sort 一個包含各種排序演算法的簡單包。 MIT
Indiesort 一個函式模板,允許std::sort(和其他隨機訪問排序函式)用於非隨機訪問容器。它還提高了隨機訪問容器和陣列中大物件排序的效能 zlib
Timsort 一個穩定的排序函式模板,對於反向或半排序資料,其效能優於基於快速排序的演算法,包括std::sort MIT

[編輯] 系統

描述 許可證 配置
Infoware 一個用於獲取系統和硬體資訊的C++庫,無需透過命令列。 Creative Commons v1.0 cmake

[編輯] 終端

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

[編輯] 測試

描述 許可證 配置
bandit 一個對C++11友好的單元測試庫。( ) MIT cmake
Boost.Test 一個C++03/11/14/17單元測試庫,可在多種平臺和編譯器上使用。( ) BSL-1.0 cmake, b2
Catch2 一個現代的、C++原生的測試框架,用於單元測試、TDD和BDD - 使用C++14、C++17及更高版本 Boost cmake
cppunit 著名JUnit單元測試框架的C++移植版 LGPL-2.1 make
CUTE 一個更C++ Unit Testing Easier(不依賴靜態初始化進行註冊),整合到Cevelop中用於TDD MIT 僅標頭檔案
doctest 一個最輕量級、功能豐富的C++單標頭檔案測試框架,用於單元測試和TDD MIT 僅標頭檔案;cmake
ELFspy 使用偽造和間諜進行隔離測試 - 僅限Linux GPL-2.0 make
faker-cxx 一個用於生成測試資料的現代C++20 Faker庫。 MIT cmake
Google Test Google測試和模擬框架。( ) BSD 3-Clause "New" or "Revised" bazel, cmake
lest 一個C++11原生的輕量級框架,用於單元測試、TDD和BDD(包含C++98變體)。 Boost 僅標頭檔案;cmake
liblittletest 一個可移植的測試框架 LGPL-2.1 僅標頭檔案
snitch 一個輕量級C++20測試框架。 Boost cmake
tunit 一個現代C++17單元測試庫,支援Windows、macOS、Linux、iOS和Android。官方網站 MIT cmake

[編輯] 文字

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

差異/補丁
描述 許可證 配置
diff_match_patch 建立和應用字串補丁(需要Qt) Apache 2.0 qmake

格式
描述 許可證 配置
coformat 一個用於std::format的C++配套庫,用於啟用文字顏色化和樣式。 公共領域 僅標頭檔案
fmt 一個開源格式化庫,提供C stdio和C++ iostream的快速安全替代方案。C++20 std::format家族的原型。 許可證 cmake, conan

解析
描述 許可證 配置
BNFlite 一個輕量級語法解析庫 MIT 僅標頭檔案
Boost.Spirit 一組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解析器組合庫,允許您透過在方便的C++ DSL中指定解析器來編寫它,具有手寫解析器的所有靈活性和控制。支援UTF-8/16/32。( 文件 ) BSL-1.0 cmake
PEGTL Parsing Expression Grammar Template Library是一個零依賴的C++17僅標頭檔案解析器組合庫,用於根據解析表示式語法 (PEG) 建立解析器。 Boost 僅標頭檔案

搜尋
描述 許可證 配置
clucene CLucene是一個跨平臺、功能齊全的開源索引和搜尋引擎/API。( ) ( 文件 ) LGPL v2.1 cmake
Step20 Ukkonen的線上演算法用於構建字尾樹,Manber的演算法用於構建字尾陣列 MIT 僅標頭檔案
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

[編輯] Web

描述 許可證 配置
Chromium Embedded
cpp-jwt
Drogon 一個基於C++14/17的HTTP Web應用程式框架,運行於Linux/macOS/Unix/Windows。
ffead-cpp 一個用於C++企業Application Development的framework,相容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框架,適用於物聯網和高效能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