本页面的目标是构建一个全面的开源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++构建工具及包管理器。
|
库
音频
-
光盘
-
指纹识别
|
库名称
|
功能描述
|
许可证
|
构建配置
|
|
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
|
-
命令行
-
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
-
YAML
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
yaml-cpp
|
C++实现的YAML解析器与生成器
|
MIT
|
cmake
|
Containers
密码学
|
库名称
|
功能描述
|
许可协议
|
构建方式
|
|
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服务器框架
|
|
|
文件元数据
金融计算
|
库名称
|
功能描述
|
许可协议
|
构建配置
|
|
DataFrame
|
基于现代C++的DataFrame库,采用原生类型和连续内存存储,支持统计分析、金融计算和机器学习
|
BSD-3-Clause
|
cmake, make, conan
|
|
QuantLib
|
量化金融库 - 面向量化金融领域的免费/开源函数库
|
modified BSD
|
|
游戏引擎架构
通用多媒体
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
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+
-
Qt
-
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
|
-
格式
-
绘图
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
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
|
仅头文件
|
-
自动机理论
-
数字类库
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
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
|
计算几何库
|
|
|
-
图论
-
线性代数
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
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
|
|
-
机器学习
(注:由于源文本中仅包含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
|
元编程
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
|
物理与模拟
机器人技术
-
感知
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
GTSAM
|
传感器融合、SLAM、SFM、VO、计算机视觉 (
源码
)
|
BSD
|
cmake
|
|
opencv
|
计算机视觉与感知、标定、特征匹配 (
源码
) (
文档
)
|
BSD, Apache 2
|
cmake
|
序列化
-
二进制序列化
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
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读写库
|
|
|
排序
系统
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
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
|
-
差异/补丁
-
格式
-
解析
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
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
|
版本控制
视频
网页
另请参阅
外部链接