命名空间
变体
操作

开源 C++ 库列表

来自 cppreference.cn
< cpp‎ | 链接

此页面的目标是建立一个全面的开源 C++ 库列表,以便当需要特定功能的实现时,不必浪费时间在网络上搜索(DuckDuckGoGoogleBing 等)

如果您知道可能对其他人有用的库,请在此处添加链接。对可以包含的内容没有限制,除了库的源代码必须易于获取下载。

该页面“按原样”提供 - 希望有用,但不提供任何保证。 过时、误导性或错误的链接可能会出现在这里。如果您注意到其中之一,如果您修复错误,那将非常棒。

库:目录


目录

[编辑] 包管理器

包管理器 描述
build2 一个开源 (MIT)、跨平台构建工具链,旨在近似 Rust Cargo 在开发和打包 C/C++ 项目时的便利性,同时提供更深入和灵活的功能,尤其是在构建系统中。
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 一个跨平台音频引擎,专为游戏的需求而设计。(Src Apache-2.0 cmake, vcpkg
Aquila 一个用于 C++11 的开源和跨平台 DSP 库。 MIT cmake
Aubio 一个用于音频和音乐分析的 C/Python 库。(Src GPL-3.0 make
audioFlux 一个用于音频和音乐分析、特征提取的 C 库。 MIT
Essentia 一个用于音频和音乐分析、描述和合成 (MIR) 的开源库和工具(Src Affero GPLv3
FFTW 一个用于计算 DFT (SSE/SSE2/AVX/Altivec/ARM Neon) 的库。(Src GPL-2.0 cmake
FMOD 一个易于使用的跨平台音频引擎和音频内容创建工具,用于游戏。 非商业用途免费/商业用途 cmake
KFR 一个快速、现代、C++17、开源、跨平台的 DSP/DFT 框架,支持音频重采样、FIR/IIR 滤波器、双二阶滤波器、(SSE、AVX、AVX-512、ARM NEON)。(Src GPL-2.0 cmake
libsoundio 一个用于跨平台实时音频输入和输出的 C 库。(Src MIT cmake
Maximilian C++ 音频和音乐 DSP 库。 MIT cmake
Miniaudio 一个音频播放和捕获 C 库。(Src Unlicense 单源文件
ni-media 用于读取和写入音频文件的 C++ 库。 MIT cmake, vcpkg
OpenAL 一个跨平台音频 API。 BSD/LGPL/专有 cmake
PortAudio PortAudio 是一个免费、跨平台、开源的音频 I/O 库。(Src MIT cmake, vcpkg
rnnoise 用于音频降噪的循环神经网络。 BSD-3-Clause make
SELA SimplE Lossless Audio(简单无损音频)。 MIT cmake
SoLoud 易于使用的便携式游戏音频引擎。 zlib
Soundtouch SoundTouch 是一个开源跨平台音频处理库,用于更改音频流或音频文件的速度、音调和播放速率。(Src LGPL-2.1 make
Tonic C++ 中简单高效的音频合成。 Unlicense
Verovio 一个快速轻量级的音乐符号雕刻库。(Src LGPL cmake, qmake
Wav2Letter++ 一个完全用 C++ 编写的快速语音识别工具包,并使用 ArrayFire 张量库和 flashlight 机器学习库以获得最大效率。 Unlicense cmake

CD
描述 许可证 配置
libkcompactdisc 一个用于与 CD 交互的库 GPL v2.0 cmake

指纹识别
描述 许可证 配置
chromaprint Chromaprint 是一个音频指纹库,旨在识别几乎相同的音频。它以精度和鲁棒性换取搜索性能。Chromaprint 可以使用多个 FFT 库 - FFmpeg、FFTW3、KissFFT 或 vDSP。(Src MIT, LGPL 2.1 cmake
libmusicbrainz MusicBrainz 客户端库 (libmusicbrainz),也称为 mb_client,是一个面向希望在其应用程序中添加 MusicBrainz 查找功能的开发人员的开发库。该库支持 Windows、Linux 和 Mac OS X(Src LGPL-2.1 cmake
libofa MusicIP 的开源音频指纹 APL make

格式
描述 许可证 配置
AudioFile 一个简单的 C++ 库,用于读取和写入音频文件。 MIT cmake
audio_file 一个库,用于处理读取和写入多种常见格式的音频文件。(Src 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)的文件。(Src 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,FLAC、MPC、Speex、WavPack、TrueAudio、WAV、AIFF、MP4 和 ASF 文件中的 Ogg Vorbis 注释以及 ID3 标签和 Vorbis 注释。(Src LGPLMPL v1.1

[编辑] 基准测试

描述 许可证 配置
benchmark 一个用于基准测试代码片段的库,类似于单元测试 Apache 2.0 cmake
Celero 一个功能丰富的 C++ 基准测试编写库/框架。使用 C++11 支持 Windows、Linux 和 OSX。 Apache cmake
Criterion 一个用于现代 C++ 的微基准测试库 MIT 仅标头;cmake
gperftools “Google Performance Tools”包括一个高性能、多线程的 malloc 实现,以及用于基准测试堆分配和 CPU 利用率的工具。 BSD 3-Clause "New" 或 "Revised" configure
nanobench 一个简单、快速、准确的单标头微基准测试功能,适用于 C++11/14/17/20。(Src MIT 仅标头;cmake
picobench 一个微小的(微)微基准测试库 MIT 仅标头;cmake
plf::nanotimer 一个最低开销、跨平台的简单计时器类,用于基准测试。 zlib 仅标头

[编辑] 通信

描述 许可证 配置
ACE 异步网络、事件多路分用、消息传递(Src)(Doc 自定义 make
Apache Thrift Apache Thrift 软件框架,用于可扩展的跨语言服务开发,结合了软件堆栈和代码生成引擎,以构建可在 C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk、OCaml 和 Delphi 以及其他语言之间高效无缝工作的服务。(Src Apache-2.0 cmake, vcpkg
Boost.Asio 异步和同步网络、计时器、串行 I/O BSL-1.0
Boost.Beast 一个基于 Boost.Asio 构建的 HTTP 和 WebSocket 库 BSL-1.0
Breep 一个基于事件的、高级的、点对点库,允许用户直接发送和接收对象。 European Union Public License 1.1 cmake
brpc 一个工业级 RPC 框架,在百度内部广泛使用,拥有 1,000,000 多个实例和数千种服务。(Src)(Doc 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 & query 解析器 MIT cmake
cpr 一个现代 C++ HTTP 请求库 MIT cmake
Crow 一个 C++ 微型 Web 框架(灵感来自 Python Flask) BSD-3-Clause 仅标头;cmake
curlpp libcURL(CURL 库)的 C++ 封装器。(Src 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(快速可编程 Nexus 网络)。高性能全异步 RPC 服务框架。同时支持 HTTP、WebSocket、TCP 和可靠 UDP。支持超高负载服务器的开发,并提供相应的客户端 SDK。 未知 make
gRPC 一个现代开源高性能 RPC 框架,可以在任何环境中运行。(Src)(Doc Apache-2.0 bazel, cmake, vcpkg
gsoap 一个用于 XML 数据绑定、快速 WSDL/SOAP/XML Web 服务、WS-Security、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 和 per message deflate WebSocket 扩展。 BSD 3-Clause "New" 或 "Revised" cmake, make
KCP 一个快速可靠的 ARQ 协议,可帮助应用程序减少网络延迟。 MIT cmake
libashttp 一个异步 HTTP 客户端库 GNU Lesser General Public v3.0
libjson-rpc-cpp

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

MIT cmake, conan
libnavajo 一个 C++ 框架,包括快速多线程 http 服务器、HTML5 Websockets、SSL、X509 和 HTTP 身份验证、压缩、cookies 和高级会话管理、IPv4 和 IPv6 (CeCILL-C)。 CeCILL-C 自由软件许可协议 cmake
libtins 一个网络数据包制作和嗅探库(Src)(Doc BSD-2 cmake, vcpkg
LiteNetLibPP 一个用于游戏的轻量级可靠 UDP 库 MIT cmake
mailio MIME 和电子邮件库 BSD 2-Clause "Simplified" cmake
nanomsg 一个快速消息队列,zeromq 的继任者
netif 一个 C++14 库,用于获取 Windows、Linux、macOS 和 FreeBSD 上的网络地址。 BSD 3-Clause "New" 或 "Revised" 仅标头;cmake
nghttp2 HTTP/2 C 库和工具(服务器、客户端、代理和基准测试工具) MIT cmake, configure
ngrest 一个快速且易于使用的 JSON RESTful Web 服务框架 Apache 2.0 cmake
nng 一个快速消息队列,nanomsg 的继任者
Oat++ 一个 Web 框架:REST-API 和请求实现(Src)(Doc 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++ 封装器。(Src Unlicense conan, homebrew, cmake, vcpkg
POCO 网络:加密、HTTP;Zip 文件(Doc
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++ 套接字库 BSD 3-Clause "New" 或 "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 一个 C++ 网络库,包括 UniConf 和便捷的 D-Bus API GPL
zeromq 一个快速消息队列

[编辑] 并发

描述 许可证 配置
AdaptiveCpp 为来自 NVIDIA、AMD、Intel 的 CPU 和 GPU 提供 SYCL 和 C++ 并行 STL 卸载编译器和运行时系统 BSD-2-Clause cmake
Asyncpp 一个提供各种并发操作的异步 c++ 库 MIT cmake
BlockingCollection C++11 线程安全、多生产者、多消费者阻塞队列、堆栈和优先级队列类 GPL-3.0 仅标头
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、pipelines、timers、timed/periodic tasks 和并发数据结构。 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" 或 "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 一个小型跨平台框架,用于在 C++ 中使用 actor 和发布-订阅模型构建并发和事件驱动的应用程序。 BSD-3-Clause cmake, vcpkg, conan
stdgpu GPU 上高效的类 STL 数据结构 Apache 2.0 cmake
subprocess 用于运行子进程的 C++17/20 跨平台库 MIT cmake, teaport
Taskflow 现代 C++ 中的并行任务编程 TASKFLOW MIT 许可 cmake
task-thread-pool 适用于 C++11 及更高版本的快速轻量级线程池。 BSD-2-Clause 或 MIT 或 BSL-1.0 许可 cmake, vcpkg, 单头文件
ThreadPool 一个简单的轻量级线程池 BSD-3-Clause 仅头文件;cmake, make
thread_pool 一个现代、快速、轻量级的线程池 MIT cmake
Thrust 基于 CUDA、TBB 或 OpenMP 的类 STL 并行算法和数据结构 Apache v2.0, Boost v1.0 许可。 cmake
TimerAlarm 基于线程的定时器和闹钟。 BSD-3-Clause 仅头文件;cmake, make
VexCL 一个用于 OpenCL、CUDA、OpenMP 的 C++ 向量表达式模板库 MIT cmake
ViennaCL 具有 OpenMP、CUDA 和 OpenCL 后端的线性代数和算法。(源码) (文档 自定义 cmake
Xenium 一个 C++17 库,提供各种并发数据结构和回收方案。 MIT 仅标头;cmake

[编辑] 配置

描述 许可证 配置
Boost.Program_options 该库允许通过传统方法(例如命令行、配置文件和环境变量)从用户处获取程序选项,即(名称,值)对。 BSL-1.0
figcone 通过声明结构体来读取 JSON、YAML、TOML、XML 或 INI 配置 MS-PL 许可 cmake
gconfmm 流行的 GUI 库 GTK 的跨平台(官方)C++ 接口,包括类型安全的 callbacks,以及可通过继承轻松扩展的全面 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 Pupplet 开发的 HOCON 格式的 C++ 实现。

JSON
描述 许可证 配置
ArduinoJson 适用于 Arduino、IoT 和嵌入式 C++ 的 C++98/11/14/17 JSON 库 MIT cmake
Boost.JSON C++11/17 中的 JSON 解析、序列化和 DOM BSL-1.0
cajun-jsonapi 一个用于 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 一个用于编码、解码和操作 JSON 数据的 C 库,支持 UTF-8 MIT cmake, make
jeayeson 一个非常理智的 C++14 JSON 库 BSD-3 许可 仅标头
jios JSON 输入输出流 MIT cmake
JOST
json Niels Lohmann JSON for C++11,具有直观的语法 MIT 仅头文件;bazel, cmake, meson
Jsonifier 一些 C++20 类,用于极快的 JSON 解析/序列化 MIT cmake
JSON Voorhees 适用于 C++11 的 Killer 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++ 结构体和从 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++ Allocators 用于固定大小静态和基于堆栈内存的 STL 兼容分配器 + 另一个允许自定义边界分配的兼容分配器 BSD-3-Clause cmake, make
cpp-btree B 树容器更好地利用 CPU 缓存:btree_mapbtree_setbtree_multimapbtree_multiset。(源码 Apache-2.0 仅标头;cmake
DataFrame 用于统计、金融和 ML 分析的 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 对于随机访问容器的“交换并弹出”/“移动并弹出”惯用语的扩展和优化,以提高 random_access 容器的擦除性能,当擦除后的顺序不重要时。涵盖单个、范围和 std::erase_if 样式的擦除。兼容 C++98/11/14/等等。 (Src) zlib
plf::queue std::queue 容器适配器的即插即用替代容器,在队列上下文中具有比 std::dequestd::list 更好的性能。兼容 C++98/11/14/等等。 (Src) zlib
plf::stack std::stack 容器适配器的即插即用替代容器,在堆栈上下文中具有比 std::vectorstd::deque 更好的性能。兼容 C++98/11/14/等等。 (Src) 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 一个密码学工具包。 (Src) BSD 2-Clause "Simplified" make
crypto++ 一个免费的 C++ 密码学方案类库。 (Src) Boost make
gnutls 一个实现 SSL、TLS 和 DTLS 协议及其相关技术的安全通信库。 (Src) LGPL-2.1 make
openssl 一个健壮的、商业级的、全功能的通用密码学和安全通信工具包。 (Src) Apache-2.0 make
TomCrypt 一个相当全面、模块化和可移植的密码学工具包,为开发人员提供了大量的知名已发布分组密码、单向散列函数、链接模式、伪随机数生成器、公钥密码学和大量其他例程。 (Src) 公有领域 cmake, make

[编辑] 数据库

描述 许可证 配置
Boost::MySQL MySQL 客户端库 BSL-1.0
cpp-redis C++11 轻量级 Redis 客户端:异步、线程安全、无依赖、管道化、多平台。 (Doc) MIT cmake
DTL 使 ODBC 记录集看起来就像 STL 容器一样 (Src) (Doc)
EasyQtSql 一个轻量级的 C++11(基于 Qt)库,用于快速简便的 SQL 查询 MIT 仅头文件;qmake
Galera Galera 集群是同步多主复制库 (Galera) 和用于 MySQL/MariaDB 的写入集复制 (WSREP) API (Src) GPLv2 cmake, scons
LevelDB Google 开发的 C++ 库,用于处理十亿级规模的键值数据持久性存储。 (Doc) BSD-3 许可 cmake
libpqxx PostgreSQL 的 C++ 连接器 (Src) BSD-3 许可 cmake, make
lmdb++ LMDB 嵌入式 B+ 树数据库库的 C++11 封装器。 Unlicense make
mongocxx MongoDB 的官方 C++11 驱动程序库 (Doc)。它为 CRUD 操作、索引和聚合提供优化的 API。支持 BSON 并具有连接池和身份验证机制,它为构建利用 MongoDB 的 C++ 应用程序提供高性能和可扩展的解决方案。 Apache 2.0 cmake
mysql++ MySQL 数据库和工具
nanodbc 本机 C ODBC API 的小型、跨平台、C++14 封装器 MIT cmake
ODB 一个用于 C++ 的开源、跨平台和跨数据库对象关系映射 (ORM) 系统。ODB 支持 MySQL、SQLite、PostgreSQL、Oracle 和 Microsoft SQL Server 关系数据库,以及 C++98/03 和 C++11 语言标准。 GPL2 和/或 NCUEL
OTL 一个基于 C++ 模板的数据库库,用于 Oracle DB、ODBC 和 DB2-CLI。( Src)
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、管道、事务、发布/订阅、连接池和类似 STL 的接口 Apache-2.0 cmake
SOCI 一个基于插件的数据库库,将 SQL 查询嵌入到常规 C++ 代码中;支持的后端包括:DB2、Firebird、MySQL、ODBC(通用后端)、Oracle、PostgreSQL、SQLite3。 (Src) (Doc) Boost cmake
SQLAPI++ 一个中间件 C++ 数据库库,支持多种 SQL 数据库系统:Oracle、SQL Server、DB2、Sybase、MySQL、PostgreSQL、SQLite、Informix、InterBase / Firebird、SQLBase、SQL Anywhere、ODBC、MariaDB。 (Src) (Doc) 自定义 make
SQLiteCpp 一个精简且易于使用的 C++ SQLite3 封装器。 MIT cmake, meson, vcpkg
SQLite ORM 一个用于 SQL 的嵌入式 领域特定语言 (EDSL),正如 SQLite 所理解的那样,用于现代 C++。 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,创建脚本、可嵌入脚本和运行时代码生成。 (Src) Custom / LGPL cmake
ExprTk 一个简单易用、易于集成且极其高效的运行时数学表达式解析器和求值引擎。ExprTk 支持多种形式的函数式、逻辑和向量处理语义,并且非常容易扩展。
Jinx 一种专为视频游戏设计的脚本语言。 MIT cmake
spidermonkey.dev Mozilla 的 JavaScript 和 WebAssembly 引擎。
muparser 一个用 C++ 编写的可扩展高性能数学表达式解析器库。 BSD-2-Clause cmake
PythonQt Qt 框架的动态 Python 绑定。它提供了一种将 Python 脚本语言嵌入到 C++ Qt 应用程序中的简便方法。 LGPL 2.1 许可
lua 一种主要为嵌入式使用而设计的轻量级多范式脚本语言。C 库。 MIT make
sol2 一个绑定到 Lua 的现代 C++ 库。 MIT 仅标头;cmake
v8pp 将 C++ 函数和类绑定到 V8 JavaScript 引擎中。 BSL-1.0 仅标头;cmake

[编辑] 嵌入式/实时

描述 许可证 配置
distortos 用于微控制器(ARM、STM32)的面向对象的 C++11 RTOS (Src) (Doc) MPL-2.0 cmake
ETL 嵌入式 模板 - C++03,为低资源(嵌入式)平台量身定制的可移植模板库 (Src) MIT
QP/C++ RTOS 内核:基于活动对象和状态机的实时嵌入式框架 GPLv3
µcuREST 用于微控制器的 C++11 REST/JSON 服务器框架

[编辑] 文件元数据

描述 许可证 配置
exempi
exiv2
libkexiv2
rarian

[编辑] 金融计算

描述 许可证 配置
DataFrame 一个用于统计、金融和 ML 分析的 C++ DataFrame -- 在现代 C++ 中使用原生类型和连续内存存储 BSD-3-Clause cmake, make, conan
QuantLib 一个量化金融库 - 一个用于量化金融的免费/开源库 修改的 BSD

[编辑] 游戏引擎架构

描述 许可证 配置
Anax 一个开源 C++ 实体系统 MIT cmake
Anura 一个功能齐全的游戏引擎,以及 Frogatto & Friends 背后的技术。 Custom Open Source 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 简单 DirectMedia :一个跨平台(Windows、macOS、Linux、iOS、Android 等)的底层访问音频、键盘、鼠标、操纵杆和图形硬件的库,通过该平台的图形 API (OpenGL/Direct3D/Metal/Vulkan) (Doc) (Src) zlib cmake
SFML 简单 快速 多媒体 ;多平台(Windows、Linux、macOS 以及即将推出的 Android 和 iOS);提供了一个简单的接口,以简化游戏和多媒体应用程序的开发。它由五个模块组成:系统、窗口、图形(基于 OpenGL)、音频和网络。 zlib/png cmake
SIGIL 声音输入图形 集成 ;一个简单的、跨平台的、极简主义的库,用于文本、形状、输入、音频和 2D 图像。支持的平台:Windows、Linux 和 Raspberry Pi 许可证 cmake

[编辑] 通用

描述 许可证 配置
Abseil 来自 Google 的开源 C++ 库代码集合,旨在增强 C++ 标准库。 (Doc) (Src) Apache-2.0 cmake
Abstract Intrusive Containers 比 Boost.Intrusive 更灵活,但不兼容 STL。
Au 一个兼容 C++14 的物理单位库,无依赖项,强调安全性、可访问性和性能。 (Doc) Apache 2.0 仅标头
BDE 来自 Bloomberg L.P. 的 Bloomberg 开发环境核心库。 Apache
Better Enums 具有 constexpr 支持的反射枚举(枚举到字符串、迭代等)。 BSD-2 仅头文件,cmake, make
bitfield.h 位字段结构工具,比基础语言工具更便携/灵活。
Boost 大量通用库的集合 BSL-1.0
CAF C++ Actor Framework (CAF) 是一个开源 C++11 Actor 模型实现,具有轻量级和快速的 Actor 实现、消息模式匹配、网络透明消息传递等功能 BSD
Cinder 一个社区开发的、免费和开源的库,用于在 C++ 中进行专业质量的创意编码。 (Doc) (Src) Modified 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 组件库,设计时考虑了实用性和效率。( Doc) Apache-2.0 cmake, vcpkg
GSL C++ 核心指南支持库实现,由 Bjarne Stroustrup、Herb Sutter 和 Co 在 C++ 核心指南 中推荐 MIT cmake, vcpkg
gsl-lite ISO C++ 指南支持库 (GSL) 的一个版本,适用于 C++98、C++11 及更高版本 MIT 仅标头
GUL14 来自 DESY 的 C++14 通用实用程序库:常用的实用程序函数和类型,包括字符串实用程序、统计和数值函数、容器、调试方法等。( Src) 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" 或 "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 库类型的 C++98/11 实现,例如 std::span, std::expected 等)。 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 客户端。 (Doc) (Src) BSD 2 条款 scons

[编辑] 图形用户界面

描述 许可证 配置
Brisk 跨平台 C++20 模块化 GUI 框架,具有反应式功能和可扩展的 GPU 加速渲染。 (Src), (Doc) 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 编程。 (Src), (Doc) BSL-1.0 cmake, vcpkg
nanogui 一个用于 OpenGL 3.x 或更高版本的极简主义跨平台小部件库 (Doc)
OWLNext OWL 的现代更新,用于在 Windows 上使用标准 C++ 编写 GUI 应用程序
Slint 一个声明式 GUI 工具包,用于为桌面、嵌入式和微控制器构建原生用户界面。 (Src), (Doc) GPL 3、免版税或商业 cmake
tiny file dialogs 一组 C/C++ 跨平台文件对话框(无需初始化,无需主循环,6 个模态函数调用) 仅标头
U++ 一个跨平台(Windows、GNU/Linux、macOS)的快速应用程序开发框架,带有捆绑的 IDE。兼容 C++17。( Doc) (Src) BSD-3-Clause make
WxWidgets 一个免费和开源的跨平台(Windows、GNU/Linux、macOS)C++ 框架,用于使用原生控件编写高级 GUI 应用程序。 (Doc) 修改的 LGPL cmake, make
xtd 一个现代 C++17/20 框架,用于在 Windows、macOS、Linux、iOS 和 Android 上创建控制台、GUI 和单元测试应用程序。 (Src) (Doc) MIT cmake

CopperSpice
描述 许可证 配置
CopperSpice 一组用于开发跨平台软件应用程序的 C++ 库。它使用现代惯用的 C++,并与 STL 无缝集成。CopperSpice 源自 Qt 框架。 (Doc) (Src) LGPL-2.1 cmake
CsSignal 一个独立的、支持线程的 C++ 信号/槽库 LGPL-2.1 cmake
CsString 一个独立的、支持 Unicode 的 C++ 字符串库 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++ 的第三方软件包集合,例如 TerminalCtrlMessageCtrl 等。 BSD-3-Clause

[编辑] 图形

描述 许可证 配置
bgfx 一个强大的跨平台(Windows、Mac、Linux、iOS、Android、Web)2D/3D 图形渲染库,支持着色器,并具有以下渲染后端:DX、OpenGL、Metal、WebGL、Vulkan 等。 (文档) BSD-2 make
cairomm cairo 图形库的 C++ 封装器,它是一个 2D 库,支持多种输出设备:X Window、Quartz、Win32、图像缓冲区、PostScript、PDF、SVG、OpenGL(实验性)。 LGPL
dfpsr 一个 2D、3D 和等距软件渲染器,带有桌面 GUI 工具包,依赖性极小,专为长期维护而设计,并且可以在没有任何 3D 加速驱动程序的情况下运行 zlib
gegl (GEGL) 是一个基于数据流的图像处理框架,提供浮点处理和非破坏性图像处理功能。 (源码) LGPL
io2d P0267 的参考实现,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 等。 New BSD 许可证
TXLib TX Library 是一个用 C++ 编写的适用于 Win32 的小型 2D 图形库。
ULIS 一个跨平台的 C++14 库,用于通用数字图像处理、2D 软件光栅化器、无限制的图像格式(u8u16u32floatdouble)、自定义位序内存布局、所有 Photoshop 像素混合模式 + 11 种附加模式、颜色模型(RGB、HSL、HSV、CMYK、...)、颜色管理管道、颜色空间支持(icm 配置文件和设备无关)、使用多线程优化的算法、使用 SIMD 扩展(SSE2)优化的算法、用于优化的图像池和缓存、动画图像序列的内存存储。 自定义许可证(仅限非商业用途免费) 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 Mathematics (GLM) 是一个 C++ 数学库,用于基于 GLSL 规范的图形软件。 The Happy Bunny 许可证 /
MIT
仅头文件;cmake, vcpkg
Godot 一个功能齐全的跨平台 2D 和 3D 游戏引擎,用 C++17 编写,带有一个用自身编写的 GUI 编辑器和一个受 python 启发的脚本语言。 MIT scons
hlsl++ 一个 C++ 数学库,用于使用 HLSL 语法进行渲染。支持 SSE 和 NEON MIT 仅标头
Horde3D 一个小型开源 3D 渲染引擎。它旨在创建一个图形引擎,该引擎能够提供下一代游戏中期望的惊人视觉效果,同时保持轻量级和尽可能简洁。 EPL 许可证
Irrlicht Irrlicht Engine 是一个用 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 擎 (前身为 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 Visualization Toolkit (VTK) 是一个开源软件,用于操作和显示科学数据。它配备了用于 3D 渲染的先进工具、用于 3D 交互的小部件套件以及广泛的 2D 绘图功能。 BSD-3 许可 cmake, vcpkg
Vulkan 一个底层 API,它移除了上一代图形 API 中发现的许多抽象。这非常适合提供最大性能,但副作用是向开发人员暴露了更多的复杂性。幸运的是,存在一些优秀的教程来帮助消除这个障碍并快速提高效率。 Khronos (MIT) 许可证 make, vcpkg

[编辑] 图像

描述 许可证 配置
Adobe/boost GIL 一个高级通用库,专注于对 2D 图像进行操作的算法。I/O 选项非常有限。 BSL-1.0
agge Anti-Grain Evolution。一个用于 C++ 中的速度和质量的 2D 图形引擎 MIT cmake
FreeImage 一个开源库项目,适用于希望支持流行的图形图像格式(如 PNG、BMP、JPEG、TIFF 等)的开发人员 GPLv2, GPLv3, FIPL 许可证
FreeImageRe Open-Source 库 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 一码 (ICU) 是一组成熟、广泛使用的 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 是一个模仿 Apache log4j 的 C++ 日志框架。 (源码) Apache cmake
lwlog 一个极其快速的同步和异步 C++17 日志库 MIT cmake
Pantheios 一个诊断日志 API 库,提供类型安全、效率、通用性和可扩展性的组合 BSD 风格许可证
plog 一个可移植且简单的 C++ 日志库,代码少于 1000 行 MPL-2.0
Quill 一个跨平台、C++14 异步 低延迟 日志库 MIT cmake
spdlog 一个超快速 C++ 日志库 MIT 仅头文件; cmake, conan

[编辑] 错误处理

描述 许可证 配置
Boost.LEAF 一个轻量级的 C++11 错误处理库:单头文件格式,无依赖项,无动态内存分配,可以与或不与异常处理一起使用,多线程就绪。 (源码) 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 bignum C++ 接口 一个 C++ 便捷类接口,提供重载函数和运算符。GMP 是一个免费的 C 库,用于任意精度算术,操作有符号整数、有理数和浮点数。 GNU LGPL v3 和 GNU GPL v2 许可证
libmpdec++ 一个跨平台 C 库(带有 C++ 封装器),用于正确舍入的任意精度十进制浮点算术。 BSD-2-Clause make, nmake
NTL 一个用于进行数论的库。NTL 是一个高性能、可移植的 C++ 库,提供数据结构和算法,用于操作有符号、任意长度的整数,以及整数和有限域上的向量、矩阵和多项式。 LGPLv2.1+ 许可证
PCGrand PCG 是一系列简单、快速、节省空间且统计性能良好的随机数生成算法。与许多通用 RNG 不同,它们也很难预测。 Apache
stats++ 高级、全面的统计软件:数据收集和预处理、统计、机器学习和优化,带有开源 C++ 源代码。
StatsLib 一个统计分布函数的模板库。 Apache-2.0 仅标头

自动机理论
描述 许可证 配置
yasmine 一个 C++11 UML 状态机框架 (文档) (源码) 许可证

数字类库
描述 许可证 配置
BigNumber 一个用于创建和计算任意长度整数的 C++ 类 Apache 2.0 cmake
Boost.Multiprecision Multiprecision 库在 C++ 中提供整数、有理数、浮点数和复数类型,这些类型比 C++ 普通的基本(内置)类型具有更大的范围和精度 BSL-1.0
cln CLN 是一个用于高效计算任意精度各种数字的库。 GPL
CNL Compositional Numeric Library - 固定精度数值类型( - 固定精度数值类型) 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(又名 Generic Geometry Library,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 Library for Efficient Modeling and Optimization in Networks 实现了通用的数据结构和算法,专注于组合优化、图和网络。(文档 许可证
NGraph 一个简单的 C++ (网络) 图库
OGDF Open Graph algorithms and Data structures Framework - 是一个 C++ 库,用于图算法,特别是用于自动图绘制。 GPL v2 或 v3

线性代数
描述 许可证 配置
Armadillo 一个 C++ 模板库,用于线性代数和科学计算,具有 OpenBLAS、Intel MKL、LAPACK、ATLAS、ARPACK、SuperLU 和 FFTW 的封装器。 适用于 ML、模式识别、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 一套数据结构和例程,用于并行求解偏微分方程建模的科学应用。 它通过 CUDA 或 OpenCL 支持 MPI 和 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 一个络库
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 一个高性能 C++ 库,用于创建、修改和解析 PDF 文件 Apache-2.0 cmake, conan, vcpkg

[编辑] 物理和模拟

描述 许可证 配置
Bullet 一个用于游戏、视觉效果、机器人和强化学习的物理模拟引擎
HELICS 一个协同仿真框架,用于同步不同类型模拟器之间的时间和交换数据 BSD 3-Clause "New" 或 "Revised" cmake
ProjectCHRONO 一个开源多物理场仿真引擎
ReactPhysics3D 一个 C++ 物理引擎库,用于 3D 模拟和游戏

[编辑] 机器人技术

感知
描述 许可证 配置
GTSAM 传感器融合、SLAM、SFM、VO、计算机视觉(源码 BSD cmake
opencv 计算机视觉和感知、校准、特征匹配(源码) (文档 BSD, Apache 2 cmake

[编辑] 序列化

描述 许可证 配置
Boost.Serialization BSL-1.0
C++ XML 对象
cereal 一个 C++11 序列化库 BSD
cista 一个简单、高性能、零拷贝的 C++ 序列化和反射库。(源码 MIT cmake
cppcodec 一个 C++11 库,用于使用一致、灵活的 API 编码/解码 base64、base32 和十六进制 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::map, std::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 一个 C++11 高性能序列化库,使用 BER/DER 编码规则。 编码布局由 ASN.1 模式定义。
UBjsonCpp 一个基于 C++14 的高性能 UBJson 读写库

[编辑] 排序

描述 许可证 配置
Cpp-sort 一个简单包中各种排序算法的集合。 MIT
Indiesort 一个函数模板,允许 std::sort(和其他随机访问排序函数)与非随机访问容器一起使用。 它还提高了在随机访问容器和数组中对大型对象进行排序的性能 zlib
Timsort 一个稳定的排序函数模板,其性能优于基于快速排序的算法,包括 std::sort,对于反向或半排序数据。 MIT

[编辑] 系统

描述 许可证 配置
Infoware 一个 C++ 库,用于提取系统和硬件信息,无需访问命令行。 知识共享许可协议 v1.0 cmake

[编辑] 终端

描述 许可证 配置
cli 一个跨平台库,用于在现代 C++ 中创建交互式命令行界面。 BSL-1.0 仅头文件;cmake, make, nmake, vcpkg
cwidget 一个用于 C++ 的高级终端界面库,以 GTK+ 和 Qt 为模型,但使用 curses 作为其显示层 GPL v2.0 make
replxx readline 和 libedit 的替代品,支持 UTF-8、语法高亮和提示。

[编辑] 测试

描述 许可证 配置
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" 或 "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 的字符集编码转换库。 iconv 的 Windows 实现基于 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 库,用于解析和输出生成,实现为入式言 (DSEL),使用表达式模板和模板元编程。 Spirit 库使目标语法能够完全以 C++ 编写。(源码) (文档 BSL-1.0 cmake
CTRE 快速达式,支持在编译时或运行时进行匹配/搜索/捕获。 Apache-2.0 仅头文件, cmake, vcpkg
lexy 一个 C++17 解析器组合器库,允许您通过方便的 C++ DSL 指定解析器来编写解析器,并具有手写解析器的所有灵活性和控制力。 支持 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, etc.
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 一个framework for Enterprise Application Development in C++ 框架,兼容 HTTP1/HTTP2/HTTP3,支持多个服务器后端 Apache 2.0 cmake
libhttpserver 一个 C++ 库,用于构建高性能 RESTful Web 服务器。构建于 libmicrohttpd 之上,为开发者提供一个简单的 API 以在 C++ 中创建 HTTP 服务。 LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden 一个用于构建跨平台 C++ 桌面应用程序的 SDK,带有 HTML/CSS/JS GUI。 (文档) (源码) 许可证 npm
oatpp 一个强大、便携、轻量级且零依赖的 Web 框架,用于 IoT 和高性能 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 应用程序的 Widgets 和构建模块,内置安全性、PDF 渲染、2D 和 3D 绘图、ORM、图表绘制、身份验证框架。 (文档) (源码) GNU GPL 或商业

[编辑] 另请参阅

C 文档 for Non-ANSI/ISO 库

[编辑] 外部链接

1.  C++ 单元测试框架列表 — 位于维基百科
2.  精选的(超棒的)仅头文件 C++ 库列表 — 位于 GitHub
3.  精选的(超棒的)C++ 和 C 库列表 — 位于 GitHub
4.  Boost C++ 库 — 位于 Boost.org
5.  庞大的 C++ 开源游戏和框架列表 — 位于 GitHub.io