Namespaces
Variants

A list of open-source C++ libraries

From cppreference.net

本页面的目标是构建一个全面的开源C++库列表,以便当需要特定功能的实现时,无需浪费时间在网络上搜索( DuckDuckGo Google Bing 等)。

如果您了解可能对他人有用的库,请在此处添加其链接。除要求库的 源代码 必须易于 获取 下载外,对收录内容没有任何限制。

本页面“按原样”提供——希望能有所帮助,但不作任何担保。此处可能出现过时、误导性或错误的链接。如果您发现此类问题,若能修正错误将不胜感激。

库:目录

库:


目录

包管理器

包管理器 描述
build2 一个开源(MIT协议)、跨平台的构建工具链,旨在为C/C++项目开发与打包提供近似Rust Cargo的便捷性,同时提供更深入的构建系统灵活度。
cget Cmake包获取工具。可用于下载和安装cmake软件包。
cmodule 非侵入式cmake依赖管理工具。
conan 去中心化的开源(MIT协议)C/C++包管理器。
CPM.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滤波器、双二阶滤波器(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 免费、跨平台、开源音频I/O库 ( 源码 ) MIT cmake, vcpkg
rnnoise 用于音频降噪的循环神经网络 BSD-3-Clause make
SELA MIT cmake
SoLoud 轻量便携的游戏音频引擎 zlib
Soundtouch 开源跨平台音频处理库,用于改变音频流或音频文件的节奏、音调和播放速率 ( 源码 ) LGPL-2.1 make
Tonic 简易高效的C++音频合成库 Unlicense
Verovio 快速轻量的音乐符号雕刻库 ( 源码 ) LGPL cmake, qmake
Wav2Letter++ 完全使用C++编写的快速语音识别工具包,采用ArrayFire张量库和flashlight机器学习库以实现最高效率 BSD许可证 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代表 解码器,采用FLAC压缩的音频质量无损。作为最快且支持最广的无损音频编解码器,FLAC具有非专有、无专利限制的特点。 开源协议 , BSD, GPL
LAME 高质量的MPEG音频第三层(MP3)编码器 LGPL
libsndfile 通过统一标准库接口读写采样音频文件(如WAV、AIFF)的C库(含C++封装)( 源码 ) 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文件中的Vorbis注释与ID3标签。( 源码 LGPL MPL 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" or "Revised" configure
nanobench 为C++11/14/17/20提供的简单、快速、精确的单头文件微基准测试功能( 源码 MIT 仅头文件;cmake
picobench 极简微基准测试库 MIT 仅头文件;cmake
plf::nanotimer 用于基准测试的最低开销、跨平台简单计时器类 zlib 仅头文件

通信

<tr
库名称 功能描述 许可证 配置方式
ACE 异步网络通信、事件多路分离、消息传递 ( 源码 ) ( 文档 ) 自定义 make
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框架,部署超百万实例,支持上千种服务 ( 源码 ) ( 文档 ) 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 受Python Flask启发的C++微服务Web框架 BSD-3-Clause 仅头文件;cmake
curlpp libcURL的C++封装库 ( 源码 ) cmake, vcpkg
DumaisLib 多功能工具库:Web服务器、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 编程 络。高性能全异步RPC服务框架,同时支持HTTP、WebSocket、TCP和可靠UDP,支持超高负载服务器开发并提供对应客户端SDK 未知 make
gRPC 现代开源高性能RPC框架,可在任意环境中运行 ( 源码 ) ( 文档 ) Apache-2.0 bazel, cmake, vcpkg
gsoap 用于XML数据绑定、快速WSDL/SOAP/XML Web服务、WS安全、JSON/XML-RPC RESTful服务的C/C++开发工具包 GPLv2
hmbdc 轻量级高性能C++17消息发布/订阅中间件框架/库 仅头文件
HTTPP 基于Boost构建的简单C++14生产级HTTP服务器,以及基于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宽松通用公共许可证v3.0
libjson-rpc-cpp

为C++提供跨平台JSON-RPC(远程过程调用)支持的框架,完全兼容JSON-RPC 2.0和1.0规范

MIT cmake, conan
libnavajo C++框架,包含快速多线程HTTP服务器、HTML5 WebSocket、SSL、X509与HTTP认证、压缩、Cookie及高级会话管理,支持IPv4与IPv6 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后继者

并发

库名称 功能描述 许可证 配置方式
AdaptiveCpp 为NVIDIA、AMD、Intel的CPU和GPU提供SYCL及C++并行STL卸载编译器和运行时系统 BSD-2-Clause cmake
Asyncpp 异步C++库,提供多种并发操作 MIT cmake
BlockingCollection C++11线程安全的多生产者多消费者阻塞队列、栈和优先级队列类 GPL-3.0 仅头文件
Boost.Atomic 提供原子数据类型及操作,以及通过原子变量协调多线程所需的内存排序约束 BSL-1.0
Boost.Compute 基于OpenCL的GPU/并行计算C++库 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++并发库,支持并行循环、Future、流水线、定时器、定时/周期性任务及并发数据结构 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 跨平台C++共享内存并行编程和异构计算库,提供通用并行算法、并发容器、可扩展内存分配器、工作窃取任务调度器和底层同步原语( 源码 )( 文档 Apache-2.0 或商业许可 cmake, make
KOKKOS 高性能计算应用性能可移植编程模型,后端支持CUDA、HIP、SYCL、HPX、OpenMP和C++线程( 文档 自定义 cmake, make
libopenmpi 开源消息传递接口实现 3条款BSD
libsimdpp 跨平台零开销C++底层SIMD库 Boost 仅头文件;cmake
MPL 标准 消息传递接口 的C++17友好封装 BSD 3条款"新版"或"修订版" 仅头文件;cmake
MutexGear 纯互斥锁同步C/C++库:轮盘锁、读写锁、维护锁、工作队列 MutexGear库许可 configure, msvc, make
OpenMP 并行编程OpenMP API规范
PoCL 基于LLVM的可移植开源OpenCL标准实现( 源码 )( 文档 MIT cmake
RaftLib C++17流式并发执行体,支持并行数据流计算 Apache-2.0 cmake
SObjectizer 轻量跨平台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</

配置

库名称 功能描述 许可协议 配置方式
Boost.Program_options 该库支持通过命令行、配置文件和環境变量等常规方式获取程序配置参数(即(名称,值)对) BSL-1.0
figcone 通过声明结构体读取 JSON、YAML、TOML、XML 或 INI 配置文件 MS-PL cmake
gconfmm 流行 GUI 库 GTK 的跨平台(官方)C++ 接口,包含类型安全回调机制和可通过继承轻松扩展的完整组件集。 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) 轻量级命令行参数解析类,接口设计类似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 基于函数签名创建功能完整的命令行界面 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 Pupplet开发的HOCON格式的C++实现

JSON
库名称 功能描述 许可证 配置方式
ArduinoJson 适用于Arduino、物联网及嵌入式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静态绑定库,支持类型检查、直接解析到用户数据结构、无库内存分配、推拉模式、分配器支持和常量表达式 BSL 1.0 cmake
Glaze 最快的C++23 JSON库之一,支持直接内存序列化,同时兼容BEVE和CSV格式 MIT cmake, conan, build2, vcpkg
jansson 支持UTF-8编码的C语言JSON数据编码、解码及操作库 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 用于极速JSON解析/序列化的C++20类库 MIT cmake
JSON Voorhees C++11高效JSON处理库( 文档 Apache-2.0 cmake
JSON++
json11 轻量级C++11 JSON库,提供解析与序列化功能 MIT cmake
JsonBox 便捷高效的C++ JSON读写库 MIT cmake
jsoncons 支持JSON及类JSON数据格式的库,包含JSON指针、JSON补丁、JSON路径、CSV、MessagePack、CBOR、BSON、UBJSON 自定义 仅头文件
jsoncpp 支持JSON值操作(含序列化与反序列化)并保留注释的库 MIT cmake, conan, vcpkg
libjson
minijson 无DOM且免内存分配的C++ JSON解析与序列化库 自定义 cmake
Neyson 轻量级C++11 JSON库 BSD-3-Clause cmake
nosjob 用于生成和使用JSON数据的C++98库 MIT make
qjson
rapidjson 支持SAX/DOM风格API的快速C++ JSON解析器/生成器,兼容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 基于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 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> ,其中 X Y 均可作为键使用。( 源码 BSL-1.0
Boost.Container 实现多种标准容器(包括类标准库容器)、递归容器及新型实用容器: flat_map flat_set flat_multimap flat_multiset stable_vector static_vector small_vector devector 。( 源码 BSL-1.0 仅头文件
Boost.Fusion 用于处理异构 元组 集合的库。提供容器( vector list set map )及其底层数据的转换视图(即 视图 )。( 源码 BSL-1.0
Boost.Heap 实现功能更丰富、性能特性各异的 优先队列 ,超越标准库实现。( 源码 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 符合标准库规范的固定大小静态和基于栈内存的分配器 + 支持自定义边界分配的另一规范分配器 BSD-3-Clause cmake, make
cpp-btree B-树容器能更好利用 CPU 缓存: btree_map btree_set btree_multimap btree_multiset 。( 源码 Apache-2.0 仅头文件;cmake
DataFrame 用于统计、金融和机器学习分析的 C++ DataFrame —— 采用现代 C++ 使用原生类型和连续内存存储 BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant 是 C++11/14/17 通用的类型安全可辨识联合。特别以出色的 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::deque std::list 。兼容 C++98/11/14 等标准。( 源码 zlib
plf::stack std::stack 容器适配器的直接替代容器,在栈场景中性能优于 std::vector std::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
tiny::optional std::optional 的替代实现,支持使用哨兵值消除内存存储开销。 BSL-1.0 cmake
Ygg 侵入式 C++11 高性能容器和数据结构

密码学

库名称 描述 许可证 配置方式
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客户端:支持异步、线程安全、无依赖、流水线操作、跨平台 ( 文档 ) MIT cmake
DTL 使ODBC记录集呈现为STL容器样式 ( 源码 ) ( 文档 )
EasyQtSql 基于Qt的轻量级C++11库,用于快速简便的SQL查询 MIT 仅头文件;qmake
Galera 同步多主复制库(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原生ODBC API封装 MIT cmake
ODB 开源跨平台跨数据库C++对象关系映射系统。支持MySQL、SQLite、PostgreSQL、Oracle和SQL Server关系数据库,兼容C++98/03和C++11标准 GPL2 和/或 NCUEL
OTL 基于C++模板的数据库库,支持Oracle DB、ODBC和DB2-CLI ( 源码 )
Pgfe 现代C++实现的PostgreSQL客户端前端API Zlib cmake
QTL 友好的轻量级C++数据库库,支持MySQL、SQLite和ODBC Apache-2.0 make
QUINCE QU eries IN C ++ E xpressions (ORM+EDSL) Boost
QxOrm C++/Qt对象关系映射数据库库,支持主流数据库,序列化(JSON、二进制、XML);独立多线程HTTP网络服务器 GPLv3 或 专有协议
redis-cpp 轻量级C++17 Redis命令执行客户端库 MIT 仅头文件;cmake
redis-plus-plus C++11编写的Redis客户端,支持Redis哨兵、集群、流水线、事务、发布订阅、连接池及STL风格接口 Apache-2.0 cmake
SOCI 基于插件的数据库库,支持在常规C++代码中嵌入SQL查询;支持后端包括:DB2、Firebird、MySQL、ODBC、Oracle、PostgreSQL、SQLite3 ( 源码 ) ( 文档 ) Boost cmake
SQLAPI++ 支持多SQL数据库系统的C++中间件数据库库: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嵌入式领域特定语言实现 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 基于Clang和LLVM构建的交互式C++解释器,支持快速应用开发、脚本编写、嵌入式脚本和运行时代码生成 ( 源码 ) 自定义 / LGPL cmake
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实时操作系统 ( 源码 ) ( 文档 ) MPL-2.0 cmake
ETL 入式 - C++03,专为低资源(嵌入式)平台设计的可移植模板库 ( 源码 ) MIT
QP/C++ 实时操作系统内核:基于活动对象和状态机的实时嵌入式框架 GPLv3
µcuREST 面向微控制器的C++11 REST/JSON服务器框架

文件元数据

库名称 功能描述 许可协议 配置方式
exempi
exiv2
libkexiv2
rarian

金融计算

库名称 功能描述 许可协议 构建配置
DataFrame 基于现代C++的DataFrame库,采用原生类型和连续内存存储,支持统计分析、金融计算和机器学习 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 S imple D irectMedia L ayer:跨平台(Windows、macOS、Linux、iOS、Android等)底层多媒体访问库,通过平台图形API(OpenGL/Direct3D/Metal/Vulkan)提供音频、键盘、鼠标、手柄和图形硬件访问功能( 文档 )( 源码 zlib cmake
SFML S imple and F ast M ultimedia L ibrary;跨平台多媒体库(支持Windows、Linux、macOS,即将支持Android和iOS);提供简化接口便于开发游戏和多媒体应用。包含五大模块:系统、窗口、图形(基于OpenGL)、音频和网络 zlib/png cmake
SIGIL S ound, I nput, and G raphics I ntegration L ibrary;轻量级跨平台多媒体库,提供文本、图形、输入、音频和2D图像处理功能。支持平台:Windows、Linux和树莓派 许可协议 cmake

通用

库名称 描述 许可证 配置方式
Abseil 谷歌开源的C++库代码集合,旨在增强C++标准库功能。( 文档 )( 源码 Apache-2.0 cmake
Abstract Intrusive Containers Boost.Intrusive 更灵活,但不兼容STL。
Au 兼容C++14的无依赖物理单位库,注重安全性、易用性和性能。( 文档 Apache 2.0 仅头文件
BDE 彭博有限合伙企业提供的Bloomberg开发环境核心库。 Apache
Better Enums 支持constexpr的反射枚举(枚举转字符串、迭代等)。 BSD-2 仅头文件, cmake, make
bitfield.h 位域结构工具,比基础语言功能更具可移植性/灵活性。
Boost 大型通用库集合 BSL-1.0
CAF C++ Actor框架(CAF)是开源的C++11参与者模型实现,具有轻量级快速参与者实现、消息模式匹配、网络透明消息传递等特性 BSD
Cinder 社区开发的免费开源库,用于C++专业级创意编程。( 文档 )( 源码 修改版BSD cmake
CommonPP 多功能库,重点支持从项目中获取指标数据。 BSD
composite_op.h 基础类数据成员内省工具,虽然繁琐且通常不可重入,但有时很有用。
cpp-mmf 封装POSIX或Windows内存映射文件的C++98库
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 适用于C++98、C++11及后续版本的ISO C++指南支持库(GSL)变体 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) 寄生分布式操作系统: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-lite scope-lite expected-lite ),包含部分已提案或标准化的C++17/20/23库类型(如 std::span std::expected 等)的C++98/11实现。 BSL-1.0 仅头文件
nytl 通用C++17实用模板库。 BSL-1.0 仅头文件

GPS

库名称 功能描述 许可协议 配置方式
gpsd 一套开源、跨平台(支持Linux/Unix/BSD系列系统,包括Android和OS X)的GPS工具集,包含用于GPS设备、AIS无线电及其他导航传感器的转换器和复制守护进程。 gpsd 主要采用C和Python编写,同时提供C++封装接口。该组件已广泛应用于移动嵌入式系统,所有具备定位功能的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 图形。设计小巧且模块化,包含界面构建器 LGPL 2.0 版
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 个模态函数调用) 仅头文件
U++ 跨平台(Windows、GNU/Linux、macOS)快速应用开发框架,内置集成开发环境。兼容 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无缝集成。该库派生自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+ 图形界面库的跨平台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++封装,支持多种输出设备:X Window、Quartz、Win32、图像缓冲区、PostScript、PDF、SVG、OpenGL(实验性) LGPL
dfpsr 集成桌面GUI工具组的2D、3D及等距投影软件渲染器,依赖极简,专为长期维护设计,无需3D加速驱动即可运行 zlib
gegl 通用图形库(GEGL)是基于数据流的图像处理框架,提供浮点处理与非破坏性图像处理能力( 源码 LGPL
io2d P0267 提案(为ISO C++提出的 2D图形API )的参考实现 BSL-1.0 cmake
nanovg 基于OpenGL的抗锯齿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等。支持多种后端:软件光栅化、(PDF)输出、OpenGL、SVG等 New BSD
TXLib 面向Win32平台的轻量级C++ 2D图形库
ULIS 跨平台C++14通用数字图像处理库,2D软件光栅化器,支持无限图像格式( u8 u16 u32 float double ),自定义位序内存布局,完整Photoshop像素混合模式+11种扩展模式,色彩模型(RGB、HSL、HSV、CMYK等),色彩管理流水线,色彩空间支持(icm配置文件和设备无关),多线程优化算法,SIMD扩展优化算法(SSE2),图像池与缓存优化,动画序列内存存储 自定义协议(仅限非商业用途免费) cmake

图形 (3D)

库名称 功能描述 许可证 配置方式
assimp 三维模型加载 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创新引擎是全功能、开源、跨平台(Windows、Linux、Mac OS)的C/C++ 3D游戏引擎。被商业游戏、研究论文、模拟器和大学课程采用。支持实时和离线硬件渲染、光线追踪、模型加载、线性代数及GPU通用计算。支持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 Open GL 学库(GLM)是基于 GLSL 规范的C++图形软件数学库 The Happy Bunny /
MIT
仅头文件;cmake, vcpkg
Godot 功能完整的跨平台2D和3D游戏引擎,采用C++17编写,包含基于自身开发的GUI编辑器及类Python脚本语言 MIT scons
hlsl++ 使用HLSL语法的C++渲染数学库。支持SSE和NEON MIT 仅头文件
Horde3D 轻量级开源3D渲染引擎。致力于创建兼具次世代游戏惊艳视觉效果与极致简洁的图形引擎 EPL
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 3D 擎(前身为亚马逊Lumberyard)是用于开发3A游戏、电影级3D世界和高保真模拟的C++跨平台3D引擎。包含物理模拟、脚本引擎、网络功能及 更多特性 。( 文档 Apache 2.0 cmake
Ogre3D 面向对象的图形渲染引擎——适用于科学可视化、游戏、仿真、虚拟现实等图形项目的多功能可视化库。具备跨平台性、鲁棒性和完善文档 MIT cmake, vcpkg
Open CASCADE 3D CAD/CAM/CAE应用开发套件( 源码 LGPL-2.1 cmake
OpenGL 用于开发3D应用程序的3D语言、图形接口和开发套件 Khronos (MIT)
OpenSceneGraph 开源高性能3D图形工具包,广泛应用于视觉仿真、游戏、虚拟现实、科学可视化与建模等领域( 源码 )( 文档 自定义,
GNU LGPL
cmake, vcpkg
Visionaray C++光线追踪模板库 MIT cmake
VTK 用于处理和显示科学数据的开源软件。提供最先进的3D渲染工具、3D交互控件套件及广泛的2D绘图功能 BSD-3 cmake, vcpkg
Vulkan 底层API,消除了前代图形API中的许多抽象层。虽能提供极致性能,但增加了开发复杂度。现有优质教程可帮助快速掌握 Khronos (MIT) make, vcpkg

图像处理

库名称 功能描述 许可协议 配置方式
Adobe/boost GIL 专注于二维图像算法的高级通用库,输入输出功能支持有限 BSL-1.0
agge Anti-Grain Evolution。专注于速度与质量的C++二维图形引擎 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噪声生成器、领域专用语言词法分析器、快速sprintf等组件 MIT, Custom 仅头文件
ThorVG 轻量级跨平台矢量图形库,用于渲染矢量场景与动画(支持SVG和Lottie),可跨软件平台和应用可视化图形内容( 源码 MIT conan, meson, msys2, vcpkg

格式
库名称 功能描述 许可协议 配置方式
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 库,这是一个用于导出多种矢量/位图格式二维矢量图形的 C/C++ 库。 libplot 支持二维矢量图形动画,并采用类 Postscript 的 API 实现文件导出与图形动画。 GPL
sciplot 基于 gnuplot 的现代 C++ 科学绘图库,支持导出 PDF, SVG, PNG, EPS 等格式。 MIT 仅头文件;cmake, vcpkg

图像处理

库名称 功能描述 许可协议 配置方式
dlib
Halide 用于高性能图像和张量处理的C++嵌入式领域特定语言 MIT cmake, vcpkg
ITK - Insight Toolkit ITK是一个开源跨平台库,为开发者提供全面的图像分析软件工具套件。该库采用极限编程方法开发,基于经过验证的空间导向架构,支持二维、三维或更高维度科学图像的处理、分割和配准。 Apache 2.0 cmake
opencv
OTB

国际化

库名称 功能描述 许可协议 构建配置
gettext GNU国际化库 GPL make
ICU U nicode 国际化组件 是一组成熟且广泛使用的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
cpptrace 适用于C++11及更高版本的简单、便携、自包含堆栈跟踪库。包含信号安全堆栈跟踪、异常堆栈跟踪、源码片段等功能 MIT cmake, conan, vcpkg
glog 基于C++风格流的Google C++98日志库 License bazel, cmake, vcpkg
libassert 功能完备的C++断言库,为断言失败提供高质量诊断信息 MIT cmake, conan, vcpkg
Log4cplus 跨平台C++17日志API(仿照Java log4j API),提供线程安全、灵活且可任意粒度控制的日志管理和配置 BSD (双条款) 或 Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp 用于向文件、系统日志、IDSA和其他目标进行灵活日志记录的C++类库 LGPL
log4cxx Apache log4cxx是基于Apache log4j模式的C++日志框架( 源码 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)数值分析与数据处理库。主要功能包括:数据分析、优化与非线性求解器、插值、线性代数与线性求解器、快速傅里叶变换等。 免费(GPL/个人/学术)与商业许可
ArrayFire 跨平台(Windows/OSX/Linux)通用高性能计算库(支持CPU/GPU/OpenCL/CUDA/GPGPU)。涵盖领域包括:向量算法、图像处理、计算机视觉、信号处理、线性代数、统计学等。( 源码 自定义许可
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 bignum C++ interface 提供重载函数与操作符的C++便捷类接口。 GMP 是用于任意精度算术运算的免费C库,支持有符号整数、有理数和浮点数运算。 GNU LGPL v3 与 GNU GPL v2
libmpdec++ 跨平台C库(含C++封装),提供正确舍入的任意精度十进制浮点运算。 BSD-2-Clause make, nmake
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 该多精度库提供C++中的整数、有理数、浮点数和复数类型,具有比C++普通基本(内置)类型更广的 数值范围和更高精度 BSL-1.0
cln 支持任意精度各类数值高效计算的函数库 GPL
CNL 合式 - 提供固定精度数值类型 BSL-1.0 cmake, conan
fpm C++11 数学库,在整数上实现标准库浮点功能。适用于目标平台缺少FPU或需要确定性计算的场景 MIT 仅头文件;cmake
Universal Numbers C++17/20模板库,提供原生算术类型(整数/十进制/定点数/浮点数/Posit/对数/区间)的插件式替代方案 MIT cmake, vcpkg, conan

计算几何学
库名称 功能描述 许可协议 配置方式
Boost.Geometry Boost.Geometry(又称通用几何库GGL),定义了解决几何问题的概念、基元与算法。该库包含基于概念、元函数和标签分发的维度无关、坐标系无关且可扩展的内核。支持的算法包括:面积、长度、周长、质心、凸包、交集(裁剪)、包含关系(点面判断)、距离、外包矩形、简化、变换等计算。该库支持高精度算术运算 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 L ibrary for E fficient M odeling and O ptimization in N etworks 实现了聚焦组合优化、图与网络的通用数据结构和算法( 文档 许可协议
NGraph 简洁的C++(网络)图库
OGDF O pen G raph algorithms and D ata structures F ramework - 专注于自动图形绘制的C++图算法库 GPL v2 或 v3

线性代数
库名称 功能描述 许可协议 配置方式
Armadillo 用于线性代数和科学计算的C++模板库,封装了OpenBLAS、Intel MKL、LAPACK、ATLAS、ARPACK、SuperLU和FFTW。适用于机器学习、模式识别、数字信号处理、生物信息学、统计学、金融等领域。 Apache 2.0
Blasw C++11 BLAS及部分LAPACK封装库 BSD-3-Clause 仅头文件;cmake
Blaze
Blitz++ 提供高性能稠密数组和向量、随机数生成器以及小向量运算的C++模板类库 GPL-3.0, LGPL-3.0, 自定义许可 cmake
Boost.uBLAS 为稠密矩阵、压缩矩阵和稀疏矩阵提供BLAS 1/2/3级功能的C++模板类库,采用表达式模板技术 BSL-1.0
C++ Matrix 具备表达式模板算术运算符的高性能、高精度(如边界情况处理)矩阵数学库 BSD-3-Clause cmake, make
DecompLib 用于将向量分解为一组正定加权基向量的C++11库 MIT 仅头文件
Dlib - linear algebra tools
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 基于 Eigen 线性代数库(同为开源且仅头文件)重构的大规模特征值问题计算工具包( 源码 MPL-2.0 仅头文件;cmake, vcpkg
Tense 基于C++17表达式模板的快速矩阵与张量库 BSD-3-Clause 仅头文件;cmake
xtensor 用于多维数组表达式数值分析的C++库 BSD

机器学习
库名称 描述 许可证 配置方式
Dlib 机器学习工具集
FANN 快速人工神经网络库
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年起已在谷歌生产环境中使用。 Apache cmake, conan
OptimLib 面向非线性函数的C++11数值优化方法库。

符号表达式操作
库名称 功能描述 许可协议 配置方式
CasADi 用于非线性优化和算法微分的符号框架。支持符号表达式的C++代码生成以及编译生成代码的动态连接。 LGPLv3.0 cmake
ExprTk C++数学表达式工具库,是简单易用、易于集成且极其高效的运行时数学表达式解析与求值引擎。支持多种函数式、逻辑式和向量处理语义,并具有高度可扩展性。 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 用于处理PDF的免费便携式C++17库 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 和十六进制 MIT 仅头文件
GPDS 通用数据序列化器,支持对象与 XML 之间的序列化。底层使用 TinyXML
gSOAP 精确的 XML 序列化工具
iguana 基于编译时反射开发的现代化、通用且易用的 C++17 序列化引擎。支持格式:JSON、XML、用户自定义格式 Apache-2.0 cmake
jios JSON 序列化库 MIT cmake
protobuf 协议缓冲区(即 protobuf)是 Google 开发的与语言无关、平台无关、可扩展的结构化数据序列化机制,包含 .proto 文件编译器 ( 文档 ) 自定义 bazel, cmake
rpnx-serial 支持序列化/反序列化 std::map std::vector 等类型的库
Serio 快速轻量级的 C++ 序列化库 BSD-3-Clause 仅头文件;cmake
ThorsSerializer 用于 JSON 的 C++ 序列化库 MIT make
yaml-cpp
YAS Y et A nother S erialization 是一个无第三方依赖的 C++11 库。支持二进制、文本、JSON 格式存档 Boost 仅头文件

二进制序列化
库名称 功能描述 许可协议 配置方式
binn 旨在实现紧凑、快速且易用的二进制序列化库,本身即为同名格式的实现
blobify 基于C++17的库,仅通过结构体定义即可推断序列化布局 Boost 仅头文件;cmake
bson-cxx BSON 格式的C++11实现 scons
fast_ber 基于C++11的高性能序列化库,采用BER/DER编码规则。编码布局通过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建模的高级终端界面库,使用 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++14/17及后续标准的现代原生测试框架,支持单元测试、TDD和BDD Boost cmake
cppunit 著名JUnit测试框架的C++移植版本 LGPL-2.1 make
CUTE 简化的C++单元测试框架(无需依赖静态初始化注册),已集成至 Cevelop 支持TDD MIT 仅头文件
doctest 最轻量级功能齐全的C++单头文件测试框架,支持单元测试和TDD MIT 仅头文件;cmake
ELFspy 通过伪造和监控实现隔离测试 - 仅限Linux平台 GPL-2.0 make
faker-cxx 用于生成测试数据的现代C++20伪造数据库 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 支持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 公共领域 cmake

差异/补丁
库名称 功能描述 许可协议 配置方式
diff_match_patch 为字符串创建和应用补丁(需要Qt环境) Apache 2.0 qmake

格式
库名称 功能描述 许可协议 配置方式
coformat 用于增强 std::format 的配套 C++ 库,支持文本着色与样式设置 公共领域 仅头文件
fmt 开源格式化库,为 C 标准输入输出和 C++ iostream 提供快速安全的替代方案。C++20 std::format 系列功能的原型实现 许可协议 cmake, conan

解析
库名称 功能描述 许可证 配置方式
BNFlite 轻量级语法解析器库 MIT 仅头文件
Boost.Spirit 基于C++17的解析与输出生成库套件,采用 领域特定嵌入式语言 (DSEL)通过表达式模板和模板元编程实现。该库支持完全使用C++编写目标语法。( 源码 )( 文档 BSL-1.0 cmake
CTRE 支持编译时/运行时匹配/搜索/捕获的快速 编译时正则表达式 Apache-2.0 仅头文件, cmake, vcpkg
lexy C++17解析器组合库,通过便捷的C++领域特定语言指定解析规则,兼具手写解析器的灵活性与控制力。支持UTF-8/16/32编码。( 文档 BSL-1.0 cmake
PEGTL 解析表达式语法模板库 是基于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条款 meson

Web

库名称 功能描述 许可协议 配置方式
Chromium Embedded
cpp-jwt
Drogon 基于 C++14/17 的 HTTP Web 应用框架,支持 Linux/macOS/Unix/Windows 平台
ffead-cpp 面向企业级应用开发的 C++ 框架,兼容 HTTP1/HTTP2/HTTP3 协议,支持多种服务器后端 Apache 2.0 cmake
libhttpserver 基于 libmicrohttpd 构建的高性能 RESTful Web 服务器库,提供简洁 API 用于创建 C++ HTTP 服务 LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden 使用 HTML/CSS/JS 构建跨平台 C++ 桌面应用 GUI 的 SDK( 文档 )( 源码 许可协议 npm
oatpp 面向物联网和高性能 Web 服务的轻量级零依赖跨平台 Web 框架
QtWebApp 受 Java Servlet 启发的 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