命名空间
变体
操作

开源 C++ 库列表

来自 cppreference.cn
< 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