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 S 简易 E L 无损 A 音频 MIT cmake
SoLoud 轻量便携的游戏音频引擎 zlib
Soundtouch 用于改变音频流或音频文件速度、音高及播放率的开源跨平台音频处理库 ( 源码 ) LGPL-2.1 make
Tonic C++中简易高效的音频合成库 Unlicense
Verovio 快速轻量的音乐符号雕刻库 ( 源码 ) LGPL cmake, qmake
Wav2Letter++ 完全使用C++编写的高效语音识别工具包,采用ArrayFire张量库和flashlight机器学习库 BSD许可证 cmake

光盘
库名称 功能描述 许可协议 构建配置
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 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 仅头文件

通信

库名称 描述 许可证 配置
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 多种实用工具,例如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 F 可编程 P 高速 N 枢纽 N 网络。高性能全异步RPC服务框架。同时支持HTTP、WebSocket、TCP及可靠UDP协议。支持超高负载服务器开发,提供对应客户端SDK。 未知 make
gRPC 一个现代的开源高性能RPC框架,可在任何环境中运行。( 源码 ) ( 文档 ) Apache-2.0 bazel, cmake, vcpkg
gsoap 用于XML数据绑定的C/C++开发工具包,快速WSDL/SOAP/XML Web服务,WS-Security,JSON/XML-RPC RESTful服务 GPLv2
hmbdc 一个轻量级且高性能的C++17消息发布/订阅中间件框架/库 仅头文件
HTTPP 基于Boost构建的简易C++14生产级HTTP服务器,以及基于libcurl构建的客户端。 BSD 2条款"简化版" cmake, make
IXWebSocket 无依赖的开源 WebSocket + HTTP 库,支持 SSL 及每条消息的 deflate 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协议)。 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" header-only; 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 支持 HTTP/2 ORM WebSocket 的 C++20 Web 框架 MIT cmake
PcapPlusPlus 跨平台C++网络嗅探及数据包解析与构造框架。为多种流行数据包处理引擎提供C++封装,包括libpcap、Npcap、WinPcap、DPDK、AF_XDP和PF_RING。( 源码 ) Unlicense conan, homebrew, cmake, vcpkg
POCO 网络功能:加密、HTTP;Zip文件处理( 文档
rest_rpc 一个基于C++11的高性能、跨平台、易用RPC框架。 MIT cmake
restbed 一个跨平台功能丰富的框架,为C++14应用程序提供异步RESTful功能(通过HTTP实现安全通信)。 许可证 cmake
restc-cpp 通过C++访问JSON API。HTTP客户端,原生C++类与JSON序列化/反序列化,通过boost::asio协程实现异步I/O。基于C++14标准。 MIT许可证 cmake构建系统
restful_mapper 用于在C++中消费RESTful JSON API的ORM cmake, make
seastar 基于 C++14/C++17 的高性能服务端应用程序框架。 Apache 2.0 cmake 等
Silicon Silicon C++14 Web框架:快速且健壮的Web API MIT cmake
sockpp 一个简单、现代的C++套接字库 BSD 3-Clause "New" or "Revised" 许可证 cmake
stream-client 基于Boost的轻量级客户端套接字/连接器/套接字池/解析器 Apache 2.0 仅头文件;cmake
tacopie C++11 TCP 库 MIT cmake
TAO CORBA
taox11 基于C++11的CORBA实现 MIT
Unicomm 异步网络通信,高层级TCP通信框架
uvw 一个基于 C++17 的 libuv (跨平台异步 I/O)封装库 MIT 仅头文件;cmake
WNetWrap 基于C++的WinInet封装库 MIT许可证
wvstreams 一个包含UniConf和便捷D-Bus API的C++网络库 GPL
zeromq 快速消息队列

并发

库名称 描述 许可证 配置
AdaptiveCpp 提供适用于NVIDIA、AMD、Intel CPU和GPU的SYCL及C++并行STL异构计算编译器与运行时系统 BSD-2-Clause cmake
Asyncpp 一个异步 C++ 库,提供多种并发操作 MIT cmake
BlockingCollection C++11 线程安全、多生产者、多消费者阻塞队列、堆栈和优先级队列类 GPL-3.0 仅头文件
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 或商业许可 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++同步库:轮询锁、读写锁、维护锁、工作队列 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 header-only; cmake, make
thread_pool 现代、快速、轻量级的线程池 MIT cmake
Thrust 基于CUDA、TBB或OpenMP的类STL并行算法与数据结构 Apache v2.0, Boost v1.0. cmake
TimerAlarm 基于线程的定时器与警报系统。 BSD-3-Clause header-only; cmake, make
VexCL 一个用于OpenCL、CUDA、OpenMP的C++向量表达式模板库 MIT cmake
ViennaCL 支持OpenMP、CUDA和OpenCL后端的线性代数与算法库。( 源码 ) ( 文档 ) 自定义 cmake
Xenium 一个提供多种并发数据结构和回收方案的 C++17 库。 MIT header-only; cmake

配置

库名称 功能描述 许可证 配置方式
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 用于处理结构化配置文件( "*.cfg" )的轻量级跨平台 C/C++ 库 ( 源码 ) ( 文档 ) LGPL 2.1 autotools, cmake, make
libconfini 使用 C 语言编写的跨平台 INI 解析器 ( 文档 ) GPL-3.0 autotools, make
uconfig 轻量级 C++17 配置库 Apache 2.0 仅头文件;cmake

命令行
库名称 功能描述 许可证 配置方式
Argh! 极简参数处理器 BSD 3-Clause 仅头文件;cmake, vcpkg
argparse (hbristow) 轻量级C++命令行参数解析类,接口设计类似Python同名类 BSD
argparse (morrisfranken) 优雅解析命令行参数的轻量级库 Apache 2 仅头文件;cmake
argparse (p-ranav) 面向C++17的命令行参数解析器 MIT 仅头文件;cmake, vcpkg
args 简易C++参数解析库 MIT 仅头文件;cmake, conan, meson, vcpkg
Boost.Program_options 支持通过命令行、配置文件和环境变量等常规方式获取程序选项(名称-值对)的库 BSL-1.0
CLI11 功能丰富且接口直观简洁的C++11命令行解析器 BSD-3-Clause 仅头文件;cmake, meson, vcpkg
clipp 面向现代C++的强大表达式参数解析 MIT 仅头文件;cmake, vcpkg
cmd_line_parser 面向C++17的命令行解析器 MIT 仅头文件;cmake
cmdlime 支持子命令、验证器,可选择GNU/POSIX/X11命令行选项格式的C++17声明式命令行解析库 MS-PL cmake
cxxopts 支持标准GNU风格选项语法的轻量级C++11/C++17命令行参数解析器 MIT 仅头文件;bazel, cmake
fire-hpp 通过函数签名创建功能完整的命令行界面 BSL-1.0 仅头文件;cmake
flags 简洁可扩展的C++17参数解析器 Unlicense 仅头文件;cmake
gflags 实现命令行标志处理的库,内置对字符串等标准类型的支持,支持在使用的源文件中定义标志 BSD cmake
structopt 通过定义结构体解析命令行参数 MIT 仅头文件;cmake
tclap 简洁灵活的面向对象命令行参数解析模板库 MIT cmake

CSS
库名称 功能描述 许可证 配置方式
mycss CSS解析器

HOCON
库名称 功能描述 许可证 配置方式
cpp-hocon 由Puppet开发的HOCON格式的C++实现

JSON
库名称 描述 许可证 配置
ArduinoJson 适用于Arduino、物联网及嵌入式C++的C++98/11/14/17 JSON库 MIT cmake
Boost.JSON C++11/17 中的 JSON 解析、序列化与文档对象模型 BSL-1.0
cajun-jsonapi 一个用于JSON的C++ API,重点在于提供直观简洁的接口,尽可能贴近标准C++的语法风格。 make
DAW JSON Link 一个 C++17 库,提供带类型检查的静态 C++ 绑定,支持直接解析到用户数据结构而无需库分配、推/拉模式、分配器支持、constexpr BSL 1.0 cmake
Glaze 最快的JSON库之一(C++23),支持直接内存序列化。同时支持BEVE和CSV格式。 MIT cmake, conan, build2, vcpkg
jansson 支持UTF-8的JSON数据编码、解码及操作的C语言库 MIT cmake, make
jeayeson 非常规范的 C++14 JSON 库 BSD-3 仅头文件
jios JSON输入输出流 MIT cmake
JOST
json 适用于C++11的Niels Lohmann 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库,提供JSON解析和序列化功能。 MIT cmake
JsonBox 一个用于轻松快速读写JSON的C++库。 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的序列化/反序列化,底层使用 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

Containers

库名称 描述 许可证 配置
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元组(固定大小元素集合)( 源码 ) BSL-1.0
Boost.Variant 实现C++17之前的 variant (一种安全、通用、基于栈的可辨识 union 容器)( 源码 ) BSL-1.0
C++ 分配器 符合标准库规范的固定大小静态与基于栈的内存分配器 + 另一个允许自定义边界分配的规范分配器 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 对随机访问容器中"swap-and-pop"/"move-and-pop"惯用法的扩展和优化,用于在擦除后顺序不重要时提升随机访问容器的擦除性能。涵盖单元素、范围及 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 实现的高性能容器和数据结构,包括 红黑树 区间树 和区间映射。 MIT 仅头文件;cmake

密码学

库名称 功能描述 许可协议 构建方式
Botan 密码学工具包 ( 源码 ) BSD 2-Clause "Simplified" make
crypto++ 免费的C++密码学方案类库 ( 源码 ) Boost make
gnutls 实现SSL、TLS和DTLS协议及相关技术的安全通信库 ( 源码 ) LGPL-2.1 make
openssl 健壮、商业级、全功能的通用密码学与安全通信工具包 ( 源码 ) Apache-2.0 make
TomCrypt 功能全面、模块化且可移植的密码学工具包,提供大量知名分组密码、单向哈希函数、链式模式、伪随机数生成器、公钥密码体系及其他相关算法 ( 源码 ) public domain cmake, make

数据库

库名称 描述 许可证 配置
Boost::MySQL MySQL客户端库 BSL-1.0
cpp-redis C++11轻量级Redis客户端:异步、线程安全、无依赖、流水线操作、跨平台。( 文档 ) MIT cmake
DTL 使ODBC记录集看起来就像STL容器 ( 源码 ) ( 文档 )
EasyQtSql 基于Qt的轻量级C++11库,用于快速简便地进行SQL查询 MIT 仅头文件;qmake
Galera Galera集群是用于MySQL/MariaDB的同步多主复制库(Galera)及写集复制(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客户端(前端)API Zlib cmake
QTL 一个友好轻量的C++数据库库,支持MySQL、SQLite和ODBC。 Apache-2.0 make
QUINCE QU 查询 IN C ++ E 表达式 (ORM+EDSL) Boost
QxOrm 一个面向C++/Qt的 对象 关系 映射 (ORM)数据库库,支持大多数常见数据库、序列化(JSON、二进制、XML);独立的 多线程HTTP网页服务器 GPLv3 或 专有许可
redis-cpp 用于执行Redis命令的轻量级C++17客户端库。 MIT header-only; cmake
redis-plus-plus 基于 C++ 11 编写的 Redis 客户端,支持 Redis Sentinel、Redis Cluster、流水线、事务、发布订阅、连接池及类 STL 接口 Apache-2.0 cmake
SOCI 基于插件架构的数据库库,可将SQL查询嵌入常规C++代码;支持的数据库后端包括: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++的 E 嵌入式 D 领域 S 特定 L 语言(EDSL),基于SQLite所理解的SQL语法。 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 面向对象的C++11实时操作系统,适用于微控制器(ARM、STM32)( 源码 ) ( 文档 ) MPL-2.0 cmake
ETL E mbedded T emplate L ibrary - 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 量化金融库 - 面向量化金融领域的免费/开源函数库 modified 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
抽象侵入式容器 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 Framework(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++ 核心 G uidelines S upport L ibrary 实现,由 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
历史记录 现代C++17撤销/重做框架 非许可协议
hspp 一个实验性库,旨在将 Haskell 风格编程引入 C++。 Apache-2.0 header-only
IP-DOS (商标) IdeaFarm (商标) 搭载式分布式操作系统:面向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条款"新版"或"修订版" 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 仅头文件
OnPosix 在POSIX平台上提供多种抽象功能(如线程、网络、日志、进程间通信等)的C++库。
Reason XML、xpath、正则表达式、线程、套接字、HTTP、SQL、日期时间、流、编码与解码、文件系统、压缩 GPL
SaferCPlusPlus 针对不安全C++原语(包括指针、 int std::vector )的安全兼容替代方案。 Boost
智能枚举 to_string from_string 及更多枚举相关功能 BSL-1.0 cmake
units 基于C++14构建的编译期量纲分析与单位转换库,零依赖 MIT 仅头文件
yaal Y 又一个 A 抽象 A L —— 算法、集合、任意精度计算、通用领域特定语言语法驱动解析器等 CC BY-ND-NC 4.0 cmake
Yato 一个现代化的 C++(14/17) 跨平台 STL 风格且 STL 兼容的库,实现了容器、范围、迭代器、类型特征及其他工具;角色系统;类型安全配置接口。 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++封装接口。该库广泛应用于移动嵌入式系统,所有具备定位功能的Android应用间接都是 gpsd 的客户端。( 文档 ) ( 源码 ) BSD 2条款许可 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版
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(实验性)等多种输出设备的2D图形库 LGPL
dfpsr 包含桌面GUI工具集的2D、3D和等距软件渲染器,依赖极简,专为长期维护设计,无需3D加速驱动即可运行 zlib
gegl Ge neric G raphics L ibrary (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等。 Skia 支持多种后端:软件光栅化、(PDF)输出、OpenGL、SVG等 New BSD
TXLib 适用于Win32平台的轻量级2D图形库(C++实现)
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)3D游戏引擎,采用C/C++编写。G3D被广泛应用于商业游戏、科研论文、模拟器和大学课程。它支持实时与离线的硬件渲染、光线追踪、模型加载、线性代数运算以及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 M 数学库(GLM)是一个基于 GLSL 规范的C++图形软件数学库 快乐兔许可证 /
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 O pen-source 3D E ngine(前身为亚马逊的Lumberyard)是一个基于C++的多平台3D引擎,用于构建AAA级游戏、影院级3D世界和高保真模拟。包含物理模拟、脚本引擎、网络功能及 更多特性 。( 文档 Apache 2.0 cmake
Ogre3D OGRE是一个面向对象的图形渲染引擎——一个多用途可视化库,适用于科学可视化、游戏、仿真、虚拟现实及其他图形项目。它具有跨平台性和高度稳健性,并配有完善的文档资料。 MIT cmake, vcpkg
Open CASCADE 用于三维CAD/CAM/CAE应用程序的软件开发工具包( 源代码 LGPL-2.1 cmake
OpenGL 用于开发3D应用程序的3D语言、图形和SDK。 Khronos (MIT)
OpenSceneGraph OpenSceneGraph 是一个开源的高性能 3D 图形工具包,被应用开发者用于视觉仿真、游戏、虚拟现实、科学可视化和建模等领域。( 源码 ) ( 文档 ) 自定义,
GNU LGPL
cmake, vcpkg
Visionaray 一个C++光线追踪模板库。 MIT cmake
VTK Visualization Toolkit (VTK) 是一款用于处理和显示科学数据的开源软件。它配备了先进的3D渲染工具、一套用于3D交互的控件以及广泛的2D绘图功能。 BSD-3 cmake, vcpkg
Vulkan 一种底层API,移除了前代图形API中的许多抽象层。这有助于实现最佳性能,但副作用是向开发者暴露了更多复杂性。幸运的是,现有多个优秀教程可帮助跨越这一障碍并快速进入高效开发。 Khronos (MIT) make, vcpkg

图像

库名称 功能描述 许可协议 配置方式
Adobe/boost GIL 专注于二维图像算法的高层通用库,输入输出功能非常有限 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分支而来 版权声明 Mercurial
SAIL 支持静态图像、动画、多页图像的读写及元数据与ICC配置文件处理。具备格式转换能力,致力于简洁与高效 MIT cmake
stb 面向C/C++游戏开发的系列库,包含图像加载/保存/缩放、字体文本光栅化、类型安全容器、ogg vorbis解码器、实时DXT压缩器、Perlin噪声生成器、领域专用语言词法分析器、快速sprintf等组件 MIT, 自定义协议 仅头文件
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 基于极限编程方法开发的跨平台开源工具库,为开发者提供全面的图像分析软件工具套件。采用经过验证的空间导向架构,支持二维、三维或更高维度科学图像的处理、分割与配准 Apache 2.0 cmake
opencv
OTB

国际化

库名称 功能描述 许可协议 配置方式
gettext GNU 国际化库 GPL make
ICU I nternational C omponents for U nicode 是一套成熟且广泛使用的 C/C++ 库集,为软件应用提供 Unicode 和全球化支持。( 源码 ) icu4c/LICENSE make
spirit-po 基于 boost::spirit 的小型库,可解析 po 文件并提供类似 GNU libintl 的接口 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++风格流的C++98谷歌日志库 许可协议 bazel, cmake, vcpkg
libassert 功能完备的断言库,为断言失败提供高质量诊断信息 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 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++普通基础(内置)类型更大 范围和精度 的整数、有理数、浮点数和复数类型 BSL-1.0
cln 支持任意精度各类数值高效计算的函数库 GPL
CNL C ompositional N umeric L ibrary - 提供固定精度数值类型 BSL-1.0 cmake, conan
fpm 基于C++11的 f ixed- p oint m ath库,在整数上实现标准库浮点功能。适用于目标平台缺少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 高效 E 建模与 M 网络 O 优化的 N 库,专注于组合优化、图与网络的通用数据结构和算法实现( 文档 许可证
NGraph 简易C++(网络)图库
OGDF O 开放 G 图算法与 D 数据结构 F 框架——专注于自动图形绘制的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 - 线性代数工具
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 Sp 稀疏 E 特征值 C 计算 T 工具包作为 R 重构版 A RPACK,是基于 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

(注:由于源文本中仅包含HTML标签和空白的span元素,没有需要翻译的自然语言内容,因此输出保持原样。若后续有需要翻译的文本内容,将严格遵循不翻译标签/属性/代码块/C++术语的原则进行处理。)
数值计算
库名称 功能描述 许可协议 配置方式
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和hex格式 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 header-only; 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建模的高级终端界面库,使用 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 ++ U nit T esting E asier(无需依赖静态初始化注册),已集成至 Cevelop 用于TDD开发 MIT 仅头文件
doctest 最轻量级功能齐全的C++单头文件测试框架,支持单元测试和TDD MIT 仅头文件;cmake
ELFspy 通过伪造和监控实现隔离测试 - 仅限Linux系统 GPL-2.0 make
faker-cxx 用于生成测试数据的现代C++20伪造数据库 MIT cmake
Google Test 谷歌测试与模拟框架( 源码 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实现 public domain 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 跨平台、功能全面的开源索引与搜索引擎/API ( 源码 ) ( 文档 ) LGPL v2.1 cmake
Step20 基于Ukkonen在线算法构建 后缀树 ,以及Manber算法构建 后缀数组 MIT header-only
xapian 具备索引功能的开源搜索引擎 ( 源码 ) ( 文档 ) GPL v2+ make

模板引擎
库名称 功能描述 许可协议 配置方式
inja 面向 C++17 的模板引擎 MIT 仅头文件;支持 cmake、conan、vcpkg 等
Jinja2C++ Jinja2 模板的 C++14/17 实现 MPL-2.0 支持 cmake、conan

版本控制

库名称 功能描述 许可证 配置方式
coo-semver 用于语义化版本号操作的C++库
LibGit2 版本控制系统Git的核心库

视频

库名称 功能描述 许可协议 配置方式
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 支持H.264编码和解码的多平台、多架构开源库( 源代码 BSD-2条款 meson

网页

库名称 功能描述 许可协议 构建配置
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用于创建HTTP服务 LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden 用于构建跨平台C++桌面应用的SDK,采用HTML/CSS/JS图形界面( 文档 )( 源码 许可说明 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 异步框架 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