本页面的目标是构建一个全面的开源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++构建工具与包管理器。
|
库
音频
-
CD
-
指纹识别
|
库名称
|
功能描述
|
许可协议
|
构建配置
|
|
chromaprint
|
Chromaprint是专为识别近似相同音频设计的音频指纹库。该库通过牺牲精度和鲁棒性来提升搜索性能。Chromaprint支持多种FFT库——FFmpeg、FFTW3、KissFFT或vDSP。(
源码
)
|
MIT, LGPL 2.1
|
cmake
|
|
libmusicbrainz
|
MusicBrainz客户端库(libmusicbrainz),亦称mb_client,是面向开发者的开发库,旨在为应用程序添加MusicBrainz查询功能。该库支持Windows、Linux和Mac OS X系统(
源码
)
|
LGPL-2.1
|
cmake
|
|
libofa
|
MusicIP开发的开源音频指纹库
|
APL
|
make
|
-
格式
|
库名称
|
描述
|
许可证
|
配置方式
|
|
AudioFile
|
用于读写音频文件的简易C++库
|
MIT
|
cmake
|
|
audio_file
|
支持多种常见格式音频文件读写的库 (
源码
)
|
LGPL-2.1
|
make
|
|
dr_libs
|
适用于C和C++的单文件音频解码库(支持FLAC、MP3、WAV格式)
|
Unlicense
|
|
|
flac
|
FLAC代表
免
费
无
损
音
频
编
解码器,采用FLAC压缩的音频质量无损。作为最快且支持最广的无损音频编解码器,FLAC具有非专有、无专利限制的特点。
|
开源协议
, BSD, GPL
|
|
|
LAME
|
高质量的MPEG音频第三层(MP3)编码器
|
LGPL
|
|
|
libsndfile
|
通过统一标准库接口读写采样音频文件(如WAV、AIFF)的C库(含C++封装)(
源码
)
|
LGPL-2.1
|
cmake, make, vcpkg
|
|
minimp3
|
极简MP3解码器
|
CC0-1.0
|
仅头文件
|
|
Opus
|
完全开放、免版税、多功能的音频编解码器
|
BSD
|
cmake
|
|
Vorbis
|
Ogg Vorbis是完全开放、非专有、免专利费与版税的通用压缩音频格式
|
BSD
|
cmake
|
-
标签化
|
库名称
|
功能描述
|
许可协议
|
配置选项
|
|
id3lib
|
一款开源跨平台库,支持读写和操作ID3v1与ID3v2标签,并能获取MP3文件头部基础信息(如比特率)。但我们目前推荐迁移至
taglib
:)
|
LGPL v2
|
|
|
taglib
|
TagLib音频元数据库支持读写多种主流音频格式的元数据:包括MP3文件的ID3v1、ID3v2标签,Ogg Vorbis注释,以及FLAC、MPC、Speex、WavPack、TrueAudio、WAV、AIFF、MP4和ASF文件中的Vorbis注释与ID3标签。(
源码
)
|
LGPL
与
MPL v1.1
|
|
性能基准测试
|
库名称
|
功能描述
|
开源协议
|
配置方式
|
|
benchmark
|
用于对代码片段进行基准测试的库,类似单元测试
|
Apache 2.0
|
cmake
|
|
Celero
|
功能丰富的C++基准测试编写库/框架。基于C++11支持Windows、Linux和OSX系统
|
Apache
|
cmake
|
|
Criterion
|
面向现代C++的微基准测试库
|
MIT
|
仅头文件;cmake
|
|
gperftools
|
'Google性能工具集'包含高性能多线程malloc实现,以及用于基准测试堆分配和CPU使用率的工具
|
BSD 3-Clause "New" or "Revised"
|
configure
|
|
nanobench
|
为C++11/14/17/20提供的简单、快速、精确的单头文件微基准测试功能(
源码
)
|
MIT
|
仅头文件;cmake
|
|
picobench
|
极简微基准测试库
|
MIT
|
仅头文件;cmake
|
|
plf::nanotimer
|
用于基准测试的最低开销、跨平台简单计时器类
|
zlib
|
仅头文件
|
通信
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
ACE
|
异步网络通信、事件多路分离、消息传递 (
源码
) (
文档
)
|
自定义
|
make
|
|
Apache Thrift
|
用于可扩展跨语言服务开发的软件框架,结合软件栈与代码生成引擎,构建在C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk、OCaml和Delphi等语言间高效无缝协作的服务 (
源码
)
|
Apache-2.0
|
cmake, vcpkg
|
|
Boost.Asio
|
异步与同步网络通信、定时器、串行I/O
|
BSL-1.0
|
|
|
Boost.Beast
|
基于Boost.Asio构建的HTTP与WebSocket库
|
BSL-1.0
|
|
|
Breep
|
基于事件的高层对等网络库,支持直接收发对象
|
欧盟公共许可证1.1
|
cmake
|
|
brpc
|
百度内部使用的工业级RPC框架,部署超百万实例,支持上千种服务 (
源码
) (
文档
)
|
Apache 2.0
|
cmake
|
|
C++ REST SDK
|
异步HTTP客户端与监听器、异步流、URI、JSON处理
|
MIT
|
cmake
|
|
cpp-httplib
|
C++11单文件头文件跨平台HTTP/HTTPS库
|
MIT
|
仅头文件;cmake
|
|
cpp-netlib
|
C++网络库
|
BSL-1.0
|
cmake
|
|
cppsimpleuri
|
现代C++ URI与查询解析器
|
MIT
|
cmake
|
|
cpr
|
现代C++ HTTP请求库
|
MIT
|
cmake
|
|
Crow
|
受Python Flask启发的C++微服务Web框架
|
BSD-3-Clause
|
仅头文件;cmake
|
|
curlpp
|
libcURL的C++封装库 (
源码
)
|
|
cmake, vcpkg
|
|
DumaisLib
|
多功能工具库:Web服务器、JSON处理、WebSocket服务器、REST框架(用于在C++应用中创建REST API)
|
MIT
|
make
|
|
EasyHttp
|
跨平台HTTP客户端库,注重易用性与速度,支持HTTP响应缓存等功能
|
MIT
|
cmake
|
|
eCAL
|
高性能进程间通信库
|
Apache 2.0
|
cmake
|
|
fineftp-server
|
适用于Windows与Unix的FTP服务器库
|
MIT
|
cmake
|
|
FPNN
|
快
速
可
编程
联
络
网
络。高性能全异步RPC服务框架,同时支持HTTP、WebSocket、TCP和可靠UDP,支持超高负载服务器开发并提供对应客户端SDK
|
未知
|
make
|
|
gRPC
|
现代开源高性能RPC框架,可在任意环境中运行 (
源码
) (
文档
)
|
Apache-2.0
|
bazel, cmake, vcpkg
|
|
gsoap
|
用于XML数据绑定、快速WSDL/SOAP/XML Web服务、WS安全、JSON/XML-RPC RESTful服务的C/C++开发工具包
|
GPLv2
|
|
|
hmbdc
|
轻量级高性能C++17消息发布/订阅中间件框架/库
|
|
仅头文件
|
|
HTTPP
|
基于Boost构建的简单C++14生产级HTTP服务器,以及基于libcurl的客户端
|
BSD 2-Clause "Simplified"
|
cmake, make
|
|
IXWebSocket
|
无依赖的开源WebSocket+HTTP库,支持SSL及每消息压缩的WebSocket扩展
|
BSD 3-Clause "New" or "Revised"
|
cmake, make
|
|
KCP
|
快速可靠的ARQ协议,帮助应用降低网络延迟
|
MIT
|
cmake
|
|
libashttp
|
异步HTTP客户端库
|
GNU宽松通用公共许可证v3.0
|
|
|
libjson-rpc-cpp
|
为C++提供跨平台JSON-RPC(远程过程调用)支持的框架,完全兼容JSON-RPC 2.0和1.0规范
|
MIT
|
cmake, conan
|
|
libnavajo
|
C++框架,包含快速多线程HTTP服务器、HTML5 WebSocket、SSL、X509与HTTP认证、压缩、Cookie及高级会话管理,支持IPv4与IPv6
|
CeCILL-C免费软件许可协议
|
cmake
|
|
libtins
|
网络数据包构造与嗅探库 (
源码
) (
文档
)
|
BSD-2
|
cmake, vcpkg
|
|
LiteNetLibPP
|
轻量级可靠UDP游戏网络库
|
MIT
|
cmake
|
|
mailio
|
MIME与电子邮件库
|
BSD 2-Clause "Simplified"
|
cmake
|
|
nanomsg
|
快速消息队列,zeromq后继者
|
|
|
|
netif
|
用于在Windows、Linux、macOS和FreeBSD上获取网络地址的C++14库
|
BSD 3-Clause "New" or "Revised"
|
仅头文件;cmake
|
|
nghttp2
|
HTTP/2 C库及工具(服务器、客户端、代理与性能测试工具)
|
MIT
|
cmake, configure
|
|
ngrest
|
快速易用的JSON RESTful Web服务框架
|
Apache 2.0
|
cmake
|
|
nng
|
快速消息队列,nanomsg后继者
|
|
|
<tr
并发
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
AdaptiveCpp
|
为NVIDIA、AMD、Intel的CPU和GPU提供SYCL及C++并行STL卸载编译器和运行时系统
|
BSD-2-Clause
|
cmake
|
|
Asyncpp
|
异步C++库,提供多种并发操作
|
MIT
|
cmake
|
|
BlockingCollection
|
C++11线程安全的多生产者多消费者阻塞队列、栈和优先级队列类
|
GPL-3.0
|
仅头文件
|
|
Boost.Atomic
|
提供原子数据类型及操作,以及通过原子变量协调多线程所需的内存排序约束
|
BSL-1.0
|
|
|
Boost.Compute
|
基于OpenCL的GPU/并行计算C++库
|
BSL-1.0
|
cmake
|
|
Boost.Context
|
C++11库,在单线程上提供协作式多任务抽象
|
BSL-1.0
|
|
|
Boost.Interprocess
|
简化进程间通信和同步机制的使用,提供共享内存、内存映射文件、信号量、互斥锁、条件变量、可升级互斥类型、命名同步对象、文件锁、消息队列等
|
BSL-1.0
|
|
|
Boost.Lockfree
|
提供无阻塞(即无锁)并发数据结构:队列、栈和环形缓冲区(spsc_queue)
|
BSL-1.0
|
|
|
Boost.MPI
|
标准
消息传递接口
的C++友好封装
|
BSL-1.0
|
|
|
Boost.Thread
|
支持多线程执行与数据共享,提供线程间数据同步机制
|
BSL-1.0
|
|
|
concurrencpp
|
现代C++并发库,支持任务、执行器、定时器和C++20协程
|
MIT
|
cmake
|
|
dispenso
|
高性能C++并发库,支持并行循环、Future、流水线、定时器、定时/周期性任务及并发数据结构
|
MIT
|
cmake
|
|
Highway
|
提供性能可移植、长度无关的SIMD/向量内联函数,支持SSE3、SSE4、AVX*、NEON、SVE*、WASM SIMD、RISC-V、POWER(
文档
)
|
Apache-2.0
|
cmake
|
|
HPX
|
通用C++运行时系统,适用于任意规模的并行和分布式应用(
文档
)
|
BSL-1.0
|
cmake, vcpkg
|
|
Intel TBB
|
跨平台C++共享内存并行编程和异构计算库,提供通用并行算法、并发容器、可扩展内存分配器、工作窃取任务调度器和底层同步原语(
源码
)(
文档
)
|
Apache-2.0
或商业许可
|
cmake, make
|
|
KOKKOS
|
高性能计算应用性能可移植编程模型,后端支持CUDA、HIP、SYCL、HPX、OpenMP和C++线程(
文档
)
|
自定义
|
cmake, make
|
|
libopenmpi
|
开源消息传递接口实现
|
3条款BSD
|
|
|
libsimdpp
|
跨平台零开销C++底层SIMD库
|
Boost
|
仅头文件;cmake
|
|
MPL
|
标准
消息传递接口
的C++17友好封装
|
BSD 3条款"新版"或"修订版"
|
仅头文件;cmake
|
|
MutexGear
|
纯互斥锁同步C/C++库:轮盘锁、读写锁、维护锁、工作队列
|
MutexGear库许可
|
configure, msvc, make
|
|
OpenMP
|
并行编程OpenMP API规范
|
|
|
|
PoCL
|
基于LLVM的可移植开源OpenCL标准实现(
源码
)(
文档
)
|
MIT
|
cmake
|
|
RaftLib
|
C++17流式并发执行体,支持并行数据流计算
|
Apache-2.0
|
cmake
|
|
SObjectizer
|
轻量跨平台C++并发与事件驱动框架,采用执行体和发布-订阅模型
|
BSD-3-Clause
|
cmake, vcpkg, conan
|
|
stdgpu
|
GPU高效STL风格数据结构
|
Apache 2.0
|
cmake
|
|
subprocess
|
C++17/20跨平台子进程运行库
|
MIT
|
cmake, teaport
|
|
Taskflow
|
现代C++并行任务编程
|
TASKFLOW MIT
|
cmake
|
|
task-thread-pool
|
C++11及以上版本的快速轻量级线程池
|
BSD-2-Clause 或 MIT 或 BSL-1.0
|
cmake, vcpkg, 单头文件
|
|
ThreadPool
|
简单轻量级线程池
|
BSD-3-Clause
|
仅头文件;cmake, make
|
|
thread_pool
|
现代快速轻量级线程池
|
MIT
|
cmake
|
|
Thrust
|
基于CUDA、TBB或OpenMP的STL风格并行算法与数据结构
|
Apache v2.0, Boost v1.0</
|
配置
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Boost.Program_options
|
该库支持通过命令行、配置文件和環境变量等常规方式获取程序配置参数(即(名称,值)对)
|
BSL-1.0
|
|
|
figcone
|
通过声明结构体读取 JSON、YAML、TOML、XML 或 INI 配置文件
|
MS-PL
|
cmake
|
|
gconfmm
|
流行 GUI 库 GTK 的跨平台(官方)C++ 接口,包含类型安全回调机制和可通过继承轻松扩展的完整组件集。
gtkmm
使用 STL,包括
string
字符串、容器和迭代器,支持 UTF8 编码。(
源码
)(
文档
)
|
LGPLv2.1
|
autotools, meson, make
|
|
libconfig
|
轻量级跨平台 C/C++ 结构化配置文件处理库(
"*.cfg"
)(
源码
)(
文档
)
|
LGPL 2.1
|
autotools, cmake, make
|
|
libconfini
|
使用 C 语言编写的跨平台 INI 解析器(
文档
)
|
GPL-3.0
|
autotools, make
|
|
uconfig
|
轻量级 C++17 配置库
|
Apache 2.0
|
仅头文件;cmake
|
-
命令行
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
Argh!
|
极简参数处理器
|
BSD 3-Clause
|
仅头文件;cmake, vcpkg
|
|
argparse (hbristow)
|
轻量级命令行参数解析类,接口设计类似Python同名类
|
BSD
|
|
|
argparse (morrisfranken)
|
优雅解析命令行参数的轻量级库
|
Apache 2
|
仅头文件;cmake
|
|
argparse (p-ranav)
|
面向C++17的命令行参数解析器
|
MIT
|
仅头文件;cmake, vcpkg
|
|
args
|
简洁的C++参数解析库
|
MIT
|
仅头文件;cmake, conan, meson, vcpkg
|
|
Boost.Program_options
|
支持通过命令行、配置文件和环境变量等常规方式获取程序选项(名称-值对)的库
|
BSL-1.0
|
|
|
CLI11
|
C++11命令行解析器,提供丰富功能集与简洁直观的接口
|
BSD-3-Clause
|
仅头文件;cmake, meson, vcpkg
|
|
clipp
|
面向现代C++的强大且富有表现力的参数解析库
|
MIT
|
仅头文件;cmake, vcpkg
|
|
cmd_line_parser
|
面向C++17的命令行解析器
|
MIT
|
仅头文件;cmake
|
|
cmdlime
|
C++17命令行解析库,提供简洁声明式接口,支持子命令、验证器,可选择GNU/POSIX/X11命令行选项格式
|
MS-PL
|
cmake
|
|
cxxopts
|
轻量级C++11/C++17命令行参数解析器,支持标准GNU风格选项语法
|
MIT
|
仅头文件;bazel, cmake
|
|
fire-hpp
|
基于函数签名创建功能完整的命令行界面
|
BSL-1.0
|
仅头文件;cmake
|
|
flags
|
简洁可扩展的C++17参数解析器
|
Unlicense
|
仅头文件;cmake
|
|
gflags
|
实现命令行标志处理的库,内置对字符串等标准类型的支持,支持在使用的源文件中定义标志
|
BSD
|
cmake
|
|
structopt
|
通过定义结构体解析命令行参数
|
MIT
|
仅头文件;cmake
|
|
tclap
|
简洁的C++模板库,提供简单灵活的面相对象接口来解析命令行参数
|
MIT
|
cmake
|
-
CSS
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
mycss
|
CSS解析器
|
|
|
-
HOCON
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
cpp-hocon
|
Pupplet开发的HOCON格式的C++实现
|
|
|
-
JSON
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
ArduinoJson
|
适用于Arduino、物联网及嵌入式C++的C++98/11/14/17 JSON库
|
MIT
|
cmake
|
|
Boost.JSON
|
C++11/17标准的JSON解析、序列化及DOM操作库
|
BSL-1.0
|
|
|
cajun-jsonapi
|
提供直观简洁接口的C++ JSON API,最大程度模拟标准C++语法
|
|
make
|
|
DAW JSON Link
|
C++17静态绑定库,支持类型检查、直接解析到用户数据结构、无库内存分配、推拉模式、分配器支持和常量表达式
|
BSL 1.0
|
cmake
|
|
Glaze
|
最快的C++23 JSON库之一,支持直接内存序列化,同时兼容BEVE和CSV格式
|
MIT
|
cmake, conan, build2, vcpkg
|
|
jansson
|
支持UTF-8编码的C语言JSON数据编码、解码及操作库
|
MIT
|
cmake, make
|
|
jeayeson
|
设计合理的C++14 JSON库
|
BSD-3
|
仅头文件
|
|
jios
|
JSON输入输出流库
|
MIT
|
cmake
|
|
JOST
|
|
|
|
|
json
|
Niels Lohmann开发的C++11 JSON库,具备直观语法特性
|
MIT
|
仅头文件;bazel, cmake, meson
|
|
Jsonifier
|
用于极速JSON解析/序列化的C++20类库
|
MIT
|
cmake
|
|
JSON Voorhees
|
C++11高效JSON处理库(
文档
)
|
Apache-2.0
|
cmake
|
|
JSON++
|
|
|
|
|
json11
|
轻量级C++11 JSON库,提供解析与序列化功能
|
MIT
|
cmake
|
|
JsonBox
|
便捷高效的C++ JSON读写库
|
MIT
|
cmake
|
|
jsoncons
|
支持JSON及类JSON数据格式的库,包含JSON指针、JSON补丁、JSON路径、CSV、MessagePack、CBOR、BSON、UBJSON
|
自定义
|
仅头文件
|
|
jsoncpp
|
支持JSON值操作(含序列化与反序列化)并保留注释的库
|
MIT
|
cmake, conan, vcpkg
|
|
libjson
|
|
|
|
|
minijson
|
无DOM且免内存分配的C++ JSON解析与序列化库
|
自定义
|
cmake
|
|
Neyson
|
轻量级C++11 JSON库
|
BSD-3-Clause
|
cmake
|
|
nosjob
|
用于生成和使用JSON数据的C++98库
|
MIT
|
make
|
|
qjson
|
|
|
|
|
rapidjson
|
支持SAX/DOM风格API的快速C++ JSON解析器/生成器,兼容UTF-8/16/32,可选SIMD加速(
文档
)
|
自定义
|
仅头文件;cmake, vcpkg
|
|
simdjson
|
利用现代微架构和SIMD并行化技术实现每秒千兆字节级JSON解析(
文档
)(
视频
)
|
Apache-2.0
|
cmake, vcpkg
|
|
struct_mapping
|
实现JSON与C++结构体双向映射
|
MIT
|
cmake
|
|
swxJson
|
当前最便捷的C++ JSON库,单函数调用即可读写任意层级复杂结构,性能约为RapidJSON的一半
|
MIT
|
make
|
|
ThorsSerializer
|
JSON/BSON/YAML输入输出流库
|
MIT
|
make
|
|
ujson
|
基于C++11的轻量级UTF-8 JSON库
|
cmake
|
|
|
yyjson
|
ANSI C编写的高性能JSON库
|
MIT
|
cmake
|
-
TOML
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
toml++
|
适用于C++17及后续版本的TOML解析器与序列化器
|
|
|
|
toml11
|
基于C++11的TOML解析库
|
|
|
-
XML
-
YAML
|
库名称
|
功能描述
|
许可证
|
构建配置
|
|
yaml-cpp
|
C++实现的YAML解析器与生成器
|
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的写集复制(WSREP)API (
源码
)
|
GPLv2
|
cmake, scons
|
|
LevelDB
|
Google开发的C++库,处理十亿级别键值数据持久化存储 (
文档
)
|
BSD-3
|
cmake
|
|
libpqxx
|
PostgreSQL的C++连接器 (
源码
)
|
BSD-3
|
cmake, make
|
|
lmdb++
|
LMDB嵌入式B+树数据库库的C++11封装
|
Unlicense
|
make
|
|
mongocxx
|
MongoDB官方C++11驱动库 (
文档
)。提供CRUD操作、索引和聚合的优化API。支持BSON,具备连接池和认证机制,为构建基于MongoDB的C++应用提供高性能可扩展解决方案
|
Apache 2.0
|
cmake
|
|
mysql++
|
MySQL数据库及工具集
|
|
|
|
nanodbc
|
轻量级跨平台C++14原生ODBC API封装
|
MIT
|
cmake
|
|
ODB
|
开源跨平台跨数据库C++对象关系映射系统。支持MySQL、SQLite、PostgreSQL、Oracle和SQL Server关系数据库,兼容C++98/03和C++11标准
|
GPL2 和/或 NCUEL
|
|
|
OTL
|
基于C++模板的数据库库,支持Oracle DB、ODBC和DB2-CLI (
源码
)
|
|
|
|
Pgfe
|
现代C++实现的PostgreSQL客户端前端API
|
Zlib
|
cmake
|
|
QTL
|
友好的轻量级C++数据库库,支持MySQL、SQLite和ODBC
|
Apache-2.0
|
make
|
|
QUINCE
|
QU
eries
IN
C
++
E
xpressions (ORM+EDSL)
|
Boost
|
|
|
QxOrm
|
C++/Qt对象关系映射数据库库,支持主流数据库,序列化(JSON、二进制、XML);独立多线程HTTP网络服务器
|
GPLv3 或 专有协议
|
|
|
redis-cpp
|
轻量级C++17 Redis命令执行客户端库
|
MIT
|
仅头文件;cmake
|
|
redis-plus-plus
|
C++11编写的Redis客户端,支持Redis哨兵、集群、流水线、事务、发布订阅、连接池及STL风格接口
|
Apache-2.0
|
cmake
|
|
SOCI
|
基于插件的数据库库,支持在常规C++代码中嵌入SQL查询;支持后端包括:DB2、Firebird、MySQL、ODBC、Oracle、PostgreSQL、SQLite3 (
源码
) (
文档
)
|
Boost
|
cmake
|
|
SQLAPI++
|
支持多SQL数据库系统的C++中间件数据库库:Oracle、SQL Server、DB2、Sybase、MySQL、PostgreSQL、SQLite、Informix、InterBase/Firebird、SQLBase、SQL Anywhere、ODBC、MariaDB (
源码
) (
文档
)
|
自定义
|
make
|
|
SQLiteCPP
|
精简易用的C++ SQLite3封装库
|
MIT
|
cmake, meson, vcpkg
|
|
SQLite ORM
|
现代C++的SQLite嵌入式领域特定语言实现
|
AGPL-3.0, MIT
|
仅头文件;cmake, vcpkg
|
|
sqlpp11
|
类型安全的嵌入式领域特定语言,用于C++中的SQL查询与结果处理
|
BSD-2
|
cmake
|
|
taoPQ
|
轻量级C++17 PostgreSQL客户端库
|
Boost
|
cmake
|
嵌入式语言绑定
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
AngelScript
|
类C++的脚本语言
|
ZLib
|
|
|
ChaiScript
|
易于使用的C++嵌入式脚本语言
|
BSD-3-Clause
|
|
|
cling
|
基于Clang和LLVM构建的交互式C++解释器,支持快速应用开发、脚本编写、嵌入式脚本和运行时代码生成 (
源码
)
|
自定义
/ LGPL
|
cmake
|
|
ExprTk
|
简单易用、易于集成且高效的运行时数学表达式解析与求值引擎。支持多种函数式、逻辑和向量处理语义,扩展性强
|
|
|
|
Jinx
|
专为电子游戏设计的脚本语言
|
MIT
|
cmake
|
|
spidermonkey.dev
|
Mozilla的JavaScript与WebAssembly引擎
|
|
|
|
muparser
|
用C++编写的高性能可扩展数学表达式解析库
|
BSD-2-Clause
|
cmake
|
|
PythonQt
|
为Qt框架提供的动态Python绑定,可轻松将Python脚本语言嵌入C++ Qt应用程序
|
LGPL 2.1
|
|
|
lua
|
轻量级多范式脚本语言,主要设计用于嵌入式场景。C语言库
|
MIT
|
make
|
|
sol2
|
现代化的C++与Lua绑定库
|
MIT
|
仅头文件; cmake
|
|
v8pp
|
将C++函数和类绑定到V8 JavaScript引擎
|
BSL-1.0
|
仅头文件; cmake
|
嵌入式/实时系统
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
distortos
|
面向微控制器(ARM, STM32)的面向对象C++11实时操作系统 (
源码
) (
文档
)
|
MPL-2.0
|
cmake
|
|
ETL
|
嵌
入式
模
板
库
- C++03,专为低资源(嵌入式)平台设计的可移植模板库 (
源码
)
|
MIT
|
|
|
QP/C++
|
实时操作系统内核:基于活动对象和状态机的实时嵌入式框架
|
GPLv3
|
|
|
µcuREST
|
面向微控制器的C++11 REST/JSON服务器框架
|
|
|
文件元数据
金融计算
|
库名称
|
功能描述
|
许可协议
|
构建配置
|
|
DataFrame
|
基于现代C++的DataFrame库,采用原生类型和连续内存存储,支持统计分析、金融计算和机器学习
|
BSD-3-Clause
|
cmake, make, conan
|
|
QuantLib
|
量化金融库 - 面向量化金融领域的免费/开源函数库
|
修改版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
|
通用
GPS
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
gpsd
|
一套开源、跨平台(支持Linux/Unix/BSD系列系统,包括Android和OS X)的GPS工具集,包含用于GPS设备、AIS无线电及其他导航传感器的转换器和复制守护进程。
gpsd
主要采用C和Python编写,同时提供C++封装接口。该组件已广泛应用于移动嵌入式系统,所有具备定位功能的Android应用本质上都是
gpsd
的间接客户端。(
文档
)(
源码
)
|
BSD 2-clause
|
scons
|
图形用户界面
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Brisk
|
跨平台 C++20 模块化 GUI 框架,具备响应式能力,支持可扩展的 GPU 加速渲染。(
源码
), (
文档
)
|
GPL2+/专有许可
|
cmake, vcpkg
|
|
Dear ImGui
|
轻量级 C++ GUI 库,依赖极少,可移植且与渲染后端无关,专为支持 3D 渲染管线的应用程序优化设计
|
MIT
|
vcpkg
|
|
FLTK
|
跨平台 C++ GUI 工具包(支持 Linux、Windows、macOS),提供现代化 GUI 功能,并通过 OpenGL/GLUT 支持 3D 图形。设计小巧且模块化,包含界面构建器
|
LGPL 2.0 版
|
|
|
nana
|
采用现代 C++ 风格的跨平台 GUI 编程 (
源码
), (
文档
)
|
BSL-1.0
|
cmake, vcpkg
|
|
nanogui
|
面向 OpenGL 3.x 及以上版本的极简跨平台控件库 (
文档
)
|
|
|
|
OWLNext
|
OWL
的现代化升级版本,用于在 Windows 平台使用标准 C++ 编写 GUI 应用程序
|
|
|
|
Slint
|
声明式 GUI 工具包,用于为桌面端、嵌入式设备和微控制器构建原生用户界面。(
源码
), (
文档
)
|
GPL 3、
免版税
或商业许可
|
cmake
|
|
tiny file dialogs
|
一套 C/C++ 跨平台文件对话框(无需初始化,无需主循环,仅需 6 个模态函数调用)
|
|
仅头文件
|
|
U++
|
跨平台(Windows、GNU/Linux、macOS)快速应用开发框架,内置集成开发环境。兼容 C++17 标准。(
文档
) (
源码
)
|
BSD-3-Clause
|
make
|
|
WxWidgets
|
免费开源的跨平台(Windows、GNU/Linux、macOS)C++ 框架,使用原生控件编写高级 GUI 应用程序。(
文档
)
|
修改版 LGPL
|
cmake, make
|
|
xtd
|
现代 C++17/20 框架,用于在 Windows、macOS、Linux、iOS 和 Android 平台创建控制台、GUI 及单元测试应用程序。(
源码
) (
文档
)
|
MIT
|
cmake
|
-
CopperSpice
|
库名称
|
功能描述
|
许可协议
|
构建配置
|
|
CopperSpice
|
用于开发跨平台软件应用程序的C++库集合。采用现代地道的C++语法,与STL无缝集成。该库派生自Qt框架。(
文档
) (
源码
)
|
LGPL-2.1
|
cmake
|
|
CsSignal
|
独立的C++线程感知信号/槽库
|
LGPL-2.1
|
cmake
|
|
CsString
|
独立的C++ Unicode字符串处理库
|
LGPL-2.1
|
cmake
|
|
libGuarded
|
独立的C++多线程库,用于管理共享数据访问
|
LGPL-2.1
|
cmake
|
-
GTK+
-
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(实验性)
|
LGPL
|
|
|
dfpsr
|
集成桌面GUI工具组的2D、3D及等距投影软件渲染器,依赖极简,专为长期维护设计,无需3D加速驱动即可运行
|
zlib
|
|
|
gegl
|
通用图形库(GEGL)是基于数据流的图像处理框架,提供浮点处理与非破坏性图像处理能力(
源码
)
|
LGPL
|
|
|
io2d
|
P0267
提案(为ISO C++提出的
2D图形API
)的参考实现
|
BSL-1.0
|
cmake
|
|
nanovg
|
基于OpenGL的抗锯齿2D矢量图形库,适用于UI与可视化,提供DX11/Metal/bgfx移植版本
|
zlib
|
|
|
nux
|
OpenGL工具组
|
LGPL v3
|
|
|
pangomm
|
Pango
字体布局库的官方C++接口(
源码
)
|
LGPL v2.1
|
make
|
|
Skia
|
基于C++的开源2D图形库。
Skia图形引擎
被用于Google Chrome、Chrome OS、Mozilla Firefox、Android、LibreOffice、Flutter等。支持多种后端:软件光栅化、(PDF)输出、OpenGL、SVG等
|
New BSD
|
|
|
TXLib
|
面向Win32平台的轻量级C++ 2D图形库
|
|
|
|
ULIS
|
跨平台C++14通用数字图像处理库,2D软件光栅化器,支持无限图像格式(
u8
、
u16
、
u32
、
float
、
double
),自定义位序内存布局,完整Photoshop像素混合模式+11种扩展模式,色彩模型(RGB、HSL、HSV、CMYK等),色彩管理流水线,色彩空间支持(icm配置文件和设备无关),多线程优化算法,SIMD扩展优化算法(SSE2),图像池与缓存优化,动画序列内存存储
|
自定义协议(仅限非商业用途免费)
|
cmake
|
图形 (3D)
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
assimp
|
三维模型加载
|
BSD-3
|
cmake, vcpkg
|
|
bgfx
|
跨平台、图形API无关的“自带引擎/框架”式渲染库
|
BSD-2
|
make, vcpkg
|
|
Diligent Engine
|
现代跨平台底层3D图形库
|
Apache-2.0
|
cmake
|
|
Epoxy
|
GLEW的现代继任者。抽象了不同类型GL上下文之间的差异,使其有时比GLEW更易用。自2015年起被GTK+项目采用
|
MIT
|
meson, vcpkg
|
|
G3D
|
G3D创新引擎是全功能、开源、跨平台(Windows、Linux、Mac OS)的C/C++ 3D游戏引擎。被商业游戏、研究论文、模拟器和大学课程采用。支持实时和离线硬件渲染、光线追踪、模型加载、线性代数及GPU通用计算。支持3DS、OBJ、MP4、PNG、JPG、MD3等多种格式,包含原生OpenGL可换肤GUI。(
源码
)(
文档
)
|
BSD-2
|
|
|
GLAD
|
可定制、轻量级的OpenGL函数加载库
|
|
|
|
GLEW
|
OpenGL函数加载器(
源码
)
|
EXTGL/BSD/MIT
|
make, vcpkg
|
|
GLFW
|
OpenGL窗口管理器(
源码
)(
文档
)
|
zlib/libpng
|
cmake, vcpkg
|
|
GLM
|
Open
GL
数
学库(GLM)是基于
GLSL
规范的C++图形软件数学库
|
The Happy Bunny /
MIT
|
仅头文件;cmake, vcpkg
|
|
Godot
|
功能完整的跨平台2D和3D游戏引擎,采用C++17编写,包含基于自身开发的GUI编辑器及类Python脚本语言
|
MIT
|
scons
|
|
hlsl++
|
使用HLSL语法的C++渲染数学库。支持SSE和NEON
|
MIT
|
仅头文件
|
|
Horde3D
|
轻量级开源3D渲染引擎。致力于创建兼具次世代游戏惊艳视觉效果与极致简洁的图形引擎
|
EPL
|
|
|
Irrlicht
|
采用C++编写的开源实时3D引擎。跨平台支持D3D、OpenGL及自研软件渲染器
|
zlib/libpng
|
make, vcpkg
|
|
klein
|
面向图形与动画的C++11/14/17 SSE优化投影几何代数库
|
MIT
|
cmake, vcpkg
|
|
Magnum
|
面向游戏和数据可视化的轻量级模块化C++11/C++14图形中间件(
源码
)
|
自定义
|
cmake
|
|
O3DE
|
开
源
3D
引
擎(前身为亚马逊Lumberyard)是用于开发3A游戏、电影级3D世界和高保真模拟的C++跨平台3D引擎。包含物理模拟、脚本引擎、网络功能及
更多特性
。(
文档
)
|
Apache 2.0
|
cmake
|
|
Ogre3D
|
面向对象的图形渲染引擎——适用于科学可视化、游戏、仿真、虚拟现实等图形项目的多功能可视化库。具备跨平台性、鲁棒性和完善文档
|
MIT
|
cmake, vcpkg
|
|
Open CASCADE
|
3D CAD/CAM/CAE应用开发套件(
源码
)
|
LGPL-2.1
|
cmake
|
|
OpenGL
|
用于开发3D应用程序的3D语言、图形接口和开发套件
|
Khronos (MIT)
|
|
|
OpenSceneGraph
|
开源高性能3D图形工具包,广泛应用于视觉仿真、游戏、虚拟现实、科学可视化与建模等领域(
源码
)(
文档
)
|
自定义,
GNU LGPL
|
cmake, vcpkg
|
|
Visionaray
|
C++光线追踪模板库
|
MIT
|
cmake
|
|
VTK
|
用于处理和显示科学数据的开源软件。提供最先进的3D渲染工具、3D交互控件套件及广泛的2D绘图功能
|
BSD-3
|
cmake, vcpkg
|
|
Vulkan
|
底层API,消除了前代图形API中的许多抽象层。虽能提供极致性能,但增加了开发复杂度。现有优质教程可帮助快速掌握
|
Khronos (MIT)
|
make, vcpkg
|
图像处理
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Adobe/boost GIL
|
专注于二维图像算法的高级通用库,输入输出功能支持有限
|
BSL-1.0
|
|
|
agge
|
Anti-Grain Evolution。专注于速度与质量的C++二维图形引擎
|
MIT
|
cmake
|
|
FreeImage
|
支持PNG、BMP、JPEG、TIFF等流行图形格式的开源库项目
|
GPLv2, GPLv3, FIPL
|
|
|
FreeImageRe
|
FreeImage v3.18的分支版本,支持更新图像编解码器并优化使用体验,保留所有原始格式和插件
|
GPLv2, GPLv3, FIPL
|
cmake
|
|
GraphicsMagick
|
支持88种主流格式的图像读取、写入和处理,2002年从ImageMagick分支而来
|
Copyright
|
Mercurial
|
|
SAIL
|
支持静态图像、动画、多页图像及其元数据、ICC配置文件的读写与格式转换,注重简洁性与速度
|
MIT
|
cmake
|
|
stb
|
面向C/C++游戏开发的系列库,包含图像加载/保存/缩放、字体文本光栅化、类型安全容器、ogg vorbis解码器、实时DXT压缩器、Perlin噪声生成器、领域专用语言词法分析器、快速sprintf等组件
|
MIT,
Custom
|
仅头文件
|
|
ThorVG
|
轻量级跨平台矢量图形库,用于渲染矢量场景与动画(支持SVG和Lottie),可跨软件平台和应用可视化图形内容(
源码
)
|
MIT
|
conan, meson, msys2, vcpkg
|
-
格式
-
绘图
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
Matplot++
|
基于
gnuplot
的 C++ 数据可视化图形库。
Matplot++
可集成以下库:OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3。(
文档
)
|
MIT
|
cmake
|
|
plotutils
|
GNU
plotutils
软件包包含
libplot
库,这是一个用于导出多种矢量/位图格式二维矢量图形的 C/C++ 库。
libplot
支持二维矢量图形动画,并采用类 Postscript 的 API 实现文件导出与图形动画。
|
GPL
|
|
|
sciplot
|
基于
gnuplot
的现代 C++ 科学绘图库,支持导出 PDF, SVG, PNG, EPS 等格式。
|
MIT
|
仅头文件;cmake, vcpkg
|
图像处理
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
dlib
|
|
|
|
|
Halide
|
用于高性能图像和张量处理的C++嵌入式领域特定语言
|
MIT
|
cmake, vcpkg
|
|
ITK - Insight Toolkit
|
ITK是一个开源跨平台库,为开发者提供全面的图像分析软件工具套件。该库采用极限编程方法开发,基于经过验证的空间导向架构,支持二维、三维或更高维度科学图像的处理、分割和配准。
|
Apache 2.0
|
cmake
|
|
opencv
|
|
|
|
|
OTB
|
|
|
|
国际化
|
库名称
|
功能描述
|
许可协议
|
构建配置
|
|
gettext
|
GNU国际化库
|
GPL
|
make
|
|
ICU
|
U
nicode
国际化组件
是一组成熟且广泛使用的C/C++库,为软件应用程序提供Unicode和全球化支持。(
源码
)
|
icu4c/LICENSE
|
make
|
|
spirit-po
|
轻量级库,用于解析po文件并提供类似GNU libintl的接口。基于boost::spirit实现
|
BSL-1.0
|
仅头文件
|
|
uni-algo
|
C/C++ Unicode算法实现
|
MIT/Unlicense
|
cmake, conan, vcpkg
|
日志记录
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
Backward
|
在程序崩溃时打印带颜色和源码片段的Python风格堆栈跟踪信息
|
MIT
|
仅头文件;cmake, conan
|
|
Boost.Log
|
跨平台日志库,简单易用、可扩展且高性能
|
BSL-1.0
|
|
|
clutchlog
|
单头文件日志系统,专注于多功能调试而非服务事件存储
|
BSD
|
cmake
|
|
cpptrace
|
适用于C++11及更高版本的简单、便携、自包含堆栈跟踪库。包含信号安全堆栈跟踪、异常堆栈跟踪、源码片段等功能
|
MIT
|
cmake, conan, vcpkg
|
|
glog
|
基于C++风格流的Google C++98日志库
|
License
|
bazel, cmake, vcpkg
|
|
libassert
|
功能完备的C++断言库,为断言失败提供高质量诊断信息
|
MIT
|
cmake, conan, vcpkg
|
|
Log4cplus
|
跨平台C++17日志API(仿照Java log4j API),提供线程安全、灵活且可任意粒度控制的日志管理和配置
|
BSD (双条款) 或 Apache 2.0
|
Autotools, cmake, Visual Studio
|
|
Log4cpp
|
用于向文件、系统日志、IDSA和其他目标进行灵活日志记录的C++类库
|
LGPL
|
|
|
log4cxx
|
Apache log4cxx是基于Apache log4j模式的C++日志框架(
源码
)
|
Apache
|
cmake
|
|
lwlog
|
极速同步/异步C++17日志库
|
MIT
|
cmake
|
|
Pantheios
|
诊断日志API库,兼具类型安全、高效性、泛型化和可扩展性
|
BSD风格
|
|
|
plog
|
不足1000行代码的轻量级便携C++日志库
|
MPL-2.0
|
|
|
Quill
|
跨平台C++14异步
低延迟
日志库
|
MIT
|
cmake
|
|
spdlog
|
超高速C++日志库
|
MIT
|
仅头文件;cmake, conan
|
错误处理
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Boost.LEAF
|
适用于C++11的轻量级错误处理库:单头文件格式,无依赖项,无动态内存分配,可配合异常处理机制使用或独立使用,支持多线程。(
源码
)
|
BSL-1.0
|
仅头文件,cmake
|
数学
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
alglib
|
ALGLIB 是一个跨平台(Windows/POSIX/Linux)数值分析与数据处理库。主要功能包括:数据分析、优化与非线性求解器、插值、线性代数与线性求解器、快速傅里叶变换等。
|
免费(GPL/个人/学术)与商业许可
|
|
|
ArrayFire
|
跨平台(Windows/OSX/Linux)通用高性能计算库(支持CPU/GPU/OpenCL/CUDA/GPGPU)。涵盖领域包括:向量算法、图像处理、计算机视觉、信号处理、线性代数、统计学等。(
源码
)
|
自定义许可
|
|
|
Boost.Math
|
包含数学领域的多个功能模块:浮点数工具、数学常数、统计分布与函数、统计学、向量泛函-范数、特殊函数、求根与最小化算法、多项式与有理函数、插值、积分与微分、滤波器、复数函数、四元数、八元数、整数工具(最大公约数与最小公倍数)、级数、有理数与连分数。
|
BSL-1.0
|
|
|
Boost.Random
|
提供多种随机数生成器与分布类型,可生成具有均匀分布等实用特性的随机数。
|
BSL-1.0
|
|
|
Boost.SafeNumerics
|
C++14标准,提供保证正确的整数运算,可直接替换内置整数类型。
|
BSL-1.0
|
仅头文件
|
|
cpp-measures
|
用于处理物理量纲的C++11库
|
MPL-2.0
|
仅头文件
|
|
G+Smo
|
用于等几何分析的跨平台库(
文档
)
|
MPL-2.0
|
cmake
|
|
GNU MP bignum C++ interface
|
提供重载函数与操作符的C++便捷类接口。
GMP
是用于任意精度算术运算的免费C库,支持有符号整数、有理数和浮点数运算。
|
GNU LGPL v3 与 GNU GPL v2
|
|
|
libmpdec++
|
跨平台C库(含C++封装),提供正确舍入的任意精度十进制浮点运算。
|
BSD-2-Clause
|
make, nmake
|
|
NTL
|
数论计算库。高性能、可移植的C++库,提供数据结构与算法用于处理有符号任意长度整数,以及整数域和有限域上的向量、矩阵和多项式运算。
|
LGPLv2.1+
|
|
|
PCGrand
|
PCG是一系列简单快速、空间效率高、统计特性优良的随机数生成算法。与许多通用RNG不同,它们还具有难以预测的特性。
|
Apache
|
|
|
stats++
|
高级综合统计软件:包含数据采集与预处理、统计学、机器学习和优化功能,提供开放的C++源代码。
|
|
|
|
StatsLib
|
统计分布函数的模板库。
|
Apache-2.0
|
仅头文件
|
-
自动机理论
-
数字类库
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
BigNumber
|
用于创建和计算任意长度整数的C++类
|
Apache 2.0
|
cmake
|
|
Boost.Multiprecision
|
该多精度库提供C++中的整数、有理数、浮点数和复数类型,具有比C++普通基本(内置)类型更广的
数值范围和更高精度
|
BSL-1.0
|
|
|
cln
|
支持任意精度各类数值高效计算的函数库
|
GPL
|
|
|
CNL
|
组
合式
数
值
库
- 提供固定精度数值类型
|
BSL-1.0
|
cmake, conan
|
|
fpm
|
C++11
定
点
数
数学库,在整数上实现标准库浮点功能。适用于目标平台缺少FPU或需要确定性计算的场景
|
MIT
|
仅头文件;cmake
|
|
Universal Numbers
|
C++17/20模板库,提供原生算术类型(整数/十进制/定点数/浮点数/Posit/对数/区间)的插件式替代方案
|
MIT
|
cmake, vcpkg, conan
|
-
计算几何学
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Boost.Geometry
|
Boost.Geometry(又称通用几何库GGL),定义了解决几何问题的概念、基元与算法。该库包含基于概念、元函数和标签分发的维度无关、坐标系无关且可扩展的内核。支持的算法包括:面积、长度、周长、质心、凸包、交集(裁剪)、包含关系(点面判断)、距离、外包矩形、简化、变换等计算。该库支持高精度算术运算
|
BSL-1.0
|
|
|
CGAL
|
计算几何算法库
|
GPL-3.0 或商业许可
|
cmake
|
|
PCL
|
点云库
|
|
|
|
pmp-library
|
多边形网格处理库
|
|
|
|
Wykobi
|
计算几何库
|
|
|
-
图论
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Boost.Graph
|
|
BSL-1.0
|
|
|
CXXGraph
|
用于图表示、操作、划分及算法的C++17库
|
AGPL-3.0
|
仅头文件;cmake
|
|
GTpo
|
C++14有向图建模库,
QuickQanava项目
组成部分
|
BSD
|
qmake, cmake
|
|
LEMON
|
L
ibrary for
E
fficient
M
odeling and
O
ptimization in
N
etworks 实现了聚焦组合优化、图与网络的通用数据结构和算法(
文档
)
|
许可协议
|
|
|
NGraph
|
简洁的C++(网络)图库
|
|
|
|
OGDF
|
O
pen
G
raph algorithms and
D
ata structures
F
ramework - 专注于自动图形绘制的C++图算法库
|
GPL v2 或 v3
|
|
-
线性代数
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
Armadillo
|
用于线性代数和科学计算的C++模板库,封装了OpenBLAS、Intel MKL、LAPACK、ATLAS、ARPACK、SuperLU和FFTW。适用于机器学习、模式识别、数字信号处理、生物信息学、统计学、金融等领域。
|
Apache 2.0
|
|
|
Blasw
|
C++11 BLAS及部分LAPACK封装库
|
BSD-3-Clause
|
仅头文件;cmake
|
|
Blaze
|
|
|
|
|
Blitz++
|
提供高性能稠密数组和向量、随机数生成器以及小向量运算的C++模板类库
|
GPL-3.0, LGPL-3.0, 自定义许可
|
cmake
|
|
Boost.uBLAS
|
为稠密矩阵、压缩矩阵和稀疏矩阵提供BLAS 1/2/3级功能的C++模板类库,采用表达式模板技术
|
BSL-1.0
|
|
|
C++ Matrix
|
具备表达式模板算术运算符的高性能、高精度(如边界情况处理)矩阵数学库
|
BSD-3-Clause
|
cmake, make
|
|
DecompLib
|
用于将向量分解为一组正定加权基向量的C++11库
|
MIT
|
仅头文件
|
|
Dlib - linear algebra tools
|
|
|
|
|
Eigen
|
用于线性代数的C++模板库:矩阵、向量、数值求解器及相关算法
|
MPL2
|
cmake, conan
|
|
ETL
|
|
|
|
|
IT++
|
|
|
|
|
Matrix
|
适用于Linux和Windows的易用性科学计算库
|
MIT
|
cmake
|
|
NumCpp
|
实现Python NumPy功能的C++模板库
|
MIT
|
仅头文件;cmake, vcpkg, conan
|
|
PETSc
|
用于偏微分方程建模科学应用并行求解的数据结构和例程套件,支持MPI、通过CUDA或OpenCL的GPU加速以及混合MPI-GPU架构
|
|
|
|
Spectra
|
基于
Eigen
线性代数库(同为开源且仅头文件)重构的大规模特征值问题计算工具包(
源码
)
|
MPL-2.0
|
仅头文件;cmake, vcpkg
|
|
Tense
|
基于C++17表达式模板的快速矩阵与张量库
|
BSD-3-Clause
|
仅头文件;cmake
|
|
xtensor
|
用于多维数组表达式数值分析的C++库
|
BSD
|
|
-
机器学习
-
数值计算
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
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
|
仅头文件;cmake
|
|
bson-cxx
|
BSON
格式的C++11实现
|
|
scons
|
|
fast_ber
|
基于C++11的高性能序列化库,采用BER/DER编码规则。编码布局通过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++单元测试框架(无需依赖静态初始化注册),已集成至
Cevelop
支持TDD
|
MIT
|
仅头文件
|
|
doctest
|
最轻量级功能齐全的C++单头文件测试框架,支持单元测试和TDD
|
MIT
|
仅头文件;cmake
|
|
ELFspy
|
通过伪造和监控实现隔离测试 - 仅限Linux平台
|
GPL-2.0
|
make
|
|
faker-cxx
|
用于生成测试数据的现代C++20伪造数据库
|
MIT
|
cmake
|
|
Google Test
|
Google测试与模拟框架 (
源码
)
|
BSD 3-Clause "New" or "Revised"
|
bazel, cmake
|
|
lest
|
基于C++11的微型测试框架,支持单元测试、TDD和BDD(包含C++98变体)
|
Boost
|
仅头文件;cmake
|
|
liblittletest
|
可移植测试框架
|
LGPL-2.1
|
仅头文件
|
|
snitch
|
轻量级C++20测试框架
|
Boost
|
cmake
|
|
tunit
|
支持Windows、macOS、Linux、iOS和Android的现代C++17单元测试库
官网
|
MIT
|
cmake
|
文本
-
编码
|
库名称
|
功能描述
|
许可协议
|
构建配置
|
|
strsuite
|
用于管理不同编码字符串的 C++20 库
|
LGPL3.0
|
cmake
|
|
uchardet
|
字符串编码检测库,功能与 Python 中的
uchardet
函数基本一致
|
MOZILLA PUBLIC LICENSE v1.1
|
cmake
|
|
win-iconv
|
面向 Linux 和 Mac 的字符集编码转换库。Windows 平台的
iconv
实现基于 Win32 字符集转换 API
|
公共领域
|
cmake
|
-
差异/补丁
-
格式
-
解析
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
BNFlite
|
轻量级语法解析器库
|
MIT
|
仅头文件
|
|
Boost.Spirit
|
基于C++17的解析与输出生成库套件,采用
领域特定嵌入式语言
(DSEL)通过表达式模板和模板元编程实现。该库支持完全使用C++编写目标语法。(
源码
)(
文档
)
|
BSL-1.0
|
cmake
|
|
CTRE
|
支持编译时/运行时匹配/搜索/捕获的快速
编译时正则表达式
库
|
Apache-2.0
|
仅头文件, cmake, vcpkg
|
|
lexy
|
C++17解析器组合库,通过便捷的C++领域特定语言指定解析规则,兼具手写解析器的灵活性与控制力。支持UTF-8/16/32编码。(
文档
)
|
BSL-1.0
|
cmake
|
|
PEGTL
|
解析表达式语法模板库
是基于C++17的零依赖仅头文件解析器组合库,用于根据
解析表达式语法
(PEG)创建解析器
|
Boost
|
仅头文件
|
-
搜索
|
库名称
|
功能描述
|
许可协议
|
配置方式
|
|
clucene
|
CLucene 是跨平台、功能全面的开源索引与搜索引擎/API。(
源码
)(
文档
)
|
LGPL v2.1
|
cmake
|
|
Step20
|
基于 Ukkonen 在线算法构建
后缀树
,基于 Manber 算法构建
后缀数组
|
MIT
|
仅头文件
|
|
xapian
|
具备索引功能的开源搜索引擎(
源码
)(
文档
)
|
GPL v2+
|
make
|
-
模板引擎
|
库名称
|
功能描述
|
许可证
|
配置方式
|
|
inja
|
基于 C++17 的模板引擎
|
MIT
|
仅头文件;支持 cmake、conan、vcpkg 等
|
|
Jinja2C++
|
Jinja2 模板的 C++14/17 实现
|
MPL-2.0
|
支持 cmake、conan
|
版本控制
视频
Web
参见
外部链接