此页面的目的是构建开源 C++ 库的比较列表,使得人们在需要特定功能的实现时,不必浪费时间在网上(DuckDuckGo、谷歌、必应等)搜索。
若你知道可能对其他人有用的库,请在此添加到它的链接。能包含进来的库没有限制,但是必须能便捷地下载库的源码。
以“原态”提供此页面——希望这有用,但不提供任何担保。过时、误导或错误的链接可能出现于此。若你注意到这些错误,则改正它会很有意义。
 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| 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 | 
基于事件、高层、点对点库,允许用户直接发送和接收对象。 | 
European Union Public License 1.1 | 
cmake | 
| brpc | 
百度广泛使用的工业级 RPC 框架,百万以上实例和数千种服务。(源码) (文档) | 
Apache 2.0 | 
cmake | 
| C++ REST SDK | 
异步 HTTP 客户端及监听器、异步 Stream、URI、JSON | 
MIT | 
cmake | 
| cpp-httplib | 
C++11 仅单个头文件的跨平台 HTTP/HTTPS 库 | 
MIT | 
仅头文件; cmake | 
| cpp-netlib | 
cpp-netlib:C++ 网络库 | 
BSL-1.0 | 
cmake | 
| cpr | 
现代 C++ HTTP 请求库 | 
MIT | 
cmake | 
| Crow | 
C++ 微型 web 框架(受 Python Flask 启发) | 
BSD-3-Clause | 
cmake | 
| curlpp | 
libcURL(CURL 库)的 C++ 包装。(源码) | 
 | 
cmake, vcpkg | 
| DumaisLib | 
多种工具,如:WebServer, JSON, WebSocket 服务器,REST 框架等(用于在你的 C++ 应用中创建 REST API 的库) | 
MIT | 
Makefile | 
| EasyHttp | 
跨平台的 HTTP 客户端库,专注于可用性和速度,支持 http 响应缓存及更多 | 
MIT | 
cmake | 
| eCAL | 
高性能进程间通信 | 
Apache-2.0 | 
cmake | 
| fineftp-server | 
FTP 服务器库,支持 Windows 和 Unix | 
MIT | 
cmake | 
| gRPC | 
现代开源高性能 RPC 框架,可运行于任何环境。(源码) (文档) | 
Apache-2.0 | 
bazel, cmake, vcpkg | 
| gsoap | 
XML 数据绑定、快速 WSDL/SOAP/XML 网络服务、WS 安全、 JSON/XML-RPC RESTful 服务的 C/C++ 开发工具套 | 
GPLv2 | 
 | 
| hmbdc | 
轻便高性能 C++17 消息发布/订阅中间件框架/库 | 
 | 
仅头文件 | 
| HTTPP | 
简单、C++14、生产就绪的构建在 Boost 上的 HTTP 服务器,及构建在 libcurl 上的客户端。 | 
BSD 2-Clause "Simplified" License | 
cmake, make | 
| IXWebSocket | 
无依赖的开源 WebSocket + HTTP 库,支持 SSL 和逐条消息 deflate 的 WebSocket 扩展。 | 
BSD 3-Clause "New" or "Revised" License | 
cmake, make | 
| KCP | 
快速可靠的 ARQ 协议,帮助应用减少网络延迟。 | 
MIT | 
cmake | 
| libashttp | 
异步 HTTP 客户端库 | 
GNU Lesser General Public License 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 FREE SOFTWARE LICENSE AGREEMENT | 
cmake | 
| libtins | 
网络包装制作及嗅探库 (源码) (文档) | 
BSD-2 | 
cmake, vcpkg | 
| LiteNetLibPP | 
用于游戏的轻便可靠 UDP 库 | 
MIT | 
cmake | 
| mailio | 
MIME 和电子邮件库 | 
BSD 2-Clause "Simplified" | 
cmake | 
| nanomsg | 
快速消息队列,zeromq 接任者 | 
 | 
 | 
| netif | 
C++14 库,用于在 Windows、Linux 和 FreeBSD 上获取网络地址 | 
BSD 3-Clause "New" or "Revised" License | 
cmake | 
| nghttp2 | 
HTTP/2 C 库及工具(服务器、客户端、代理和评测工具) | 
MIT | 
cmake, configure | 
| ngrest | 
快速而简易的利用 JSON 的 RESTful Web 服务框架 | 
Apache-2.0 | 
cmake | 
| nng | 
快速消息队列,nanomsg 继任者 | 
 | 
 | 
| Oat++ | 
Web 框架: REST-API 和 Request 实现 (源码) (文档) | 
Apache 2.0 | 
cmake | 
| omniORB | 
最快速、完整而可移植的 CORBA ORB 在 C++ 中的实现 | 
 | 
 | 
| OpenDDS | 
数据分发服务 DDS (Data Distribution Service) 实现 | 
 | 
 | 
| Paho MQTT | 
现代 MQTT C++ 客户端,来自 Eclipse | 
 | 
cmake | 
| paozhu | 
C++20 Web 框架,支持 HTTP/2 ORM WebSocket | 
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 协程的异步 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" or "Revised" License | 
cmake | 
| Simple C++ REST library | 
在你的 C++ 应用中创建 REST API 的非常简单且自成文档的库 | 
 | 
 | 
| stream-client | 
轻量的、基于 Boost 的客户端 socket/connector/socket pool/resolver | 
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 offloading 编译器 | 
BSD-2-Clause | 
cmake | 
| Asyncpp | 
一个异步 c++ 库,提供多种并发操作 | 
MIT | 
cmake | 
| BlockingCollection | 
C++11 线程安全、MPMC 阻塞队列、栈和优先级队列类 | 
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++ 友好的标准 消息传递接口 (MPI) | 
BSL-1.0 | 
 | 
| Boost.Thread | 
支持带有共享数据的多线程执行,并提供用于线程间同步数据的方法。 | 
BSL-1.0 | 
 | 
| concurrencpp | 
C++ 的现代并发库。支持任务、执行器、定时器和 C++20 协程。 | 
MIT | 
cmake | 
| Cpp-Taskflow | 
带任务依赖的快速 C++ 并行编程 | 
 | 
 | 
| dispenso | 
C++ 的高性能并发。parallel_for, 未来 (future), 管线, 定时器, 定时/周期性任务, 以及并发数据结构。 | 
MIT | 
cmake | 
| Highway | 
提供性能可移植、长度无关的 SIMD/vector 指令。支持: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. (文档) | 
Apache-2.0 | 
cmake | 
| hipSYCL | 
 | 
BSD-2-Clause License | 
cmake | 
| HPX | 
任何规模的并行和分布式应用的通用 C++ 运行时系统(文档) | 
BSL-1.0 | 
cmake, vcpkg | 
| Intel TBB | 
Intel® TBB 是一个用于共享内存并行编程和异构计算的跨平台 C++ 库。该库提供:通用并行算法,并发容器,规模可扩展的内存分配器,任务窃取任务调度器,以及低级同步原语。(源码) (文档) | 
Apache-2.0 或商用 | 
cmake, make | 
| KOKKOS | 
C++ 中的编程模型,用于书写高性能可移植的 HPC 应用,使用 CUDA, HIP, SYCL, HPX, OpenMP 和 C++ 线程为后端 (文档) | 
自定义 | 
cmake, make | 
| libopenmpi | 
Open MPI 项目是一种开源消息传递接口(MPI)实现 | 
3-clause BSD | 
 | 
| libsimdpp | 
可移植的零开销 C++ 低级 SIMD 库。 | 
Boost | 
header-only; cmake | 
| MPL | 
C++-17 友好的标准消息传递接口(MPI) | 
BSD 3-Clause "New" or "Revised" | 
仅头文件; cmake | 
| MutexGear | 
仅使用互斥体的同步(轮子、读写锁、工作队列)C/C++11 库 | 
The MutexGear Library | 
configure, msvc, make | 
| OpenMP | 
用于并行编程的 OpenMP API 规范 | 
 | 
 | 
| PoCL | 
OpenCL 标准的可移植开源 (基于 LLVM) 实现。(源码) (文档) | 
MIT | 
cmake | 
| RaftLib | 
C++17 流式并发行为体(actor),可以进行并行数据流计算 | 
Apache-2.0 | 
cmake | 
| SObjectizer | 
通过行为体和发布/订阅模型,简化开发 C++ 并发和事件驱动应用的小型框架。 | 
BSD-3-Clause | 
cmake, vcpkg, conan | 
| stdgpu | 
高效的 STL 风格的 GPU 数据结构 | 
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, single header | 
| 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 | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| 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 | 
实现了命令行参数选项处理的库。它包含对 string 等标准类型的自建支持,并可以在所使用的的源文件中定义参数选项。 | 
BSD | 
cmake | 
| structopt | 
通过定义结构体来解析命令行参数。 | 
MIT | 
仅头文件; cmake | 
| tclap | 
一个用于命令行参数选项分析的简洁的模板化的 C++ 库。该库提供简洁而灵活的面向对象接口。 | 
MIT | 
cmake | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| 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++ 绑定的 C++17 库,可以不进行库分配就直接分析用户数据,支持推/拉模型、分配器支持和 constexpr | 
BSL 1.0 | 
cmake | 
| Glaze | 
最快的 JSON 库之一,(C++23) 利用直接内存序列化。还支持 BEVE 和 CSV。 | 
MIT | 
cmake, conan, build2, vcpkg | 
| jansson | 
Jansson 是编码、解码及操纵 JSON 数据的 C 库,支持 UTF-8。 | 
MIT | 
cmake, make | 
| jeayeson | 
非常健全的 C++14 JSON 库 | 
BSD-3 | 
仅头文件 | 
| jios | 
JSON 输入输出流 (JSON Input Output Streams) | 
MIT | 
cmake | 
| JOST | 
 | 
 | 
 | 
| json | 
Niels Lohmann 的 C++11 JSON,提供直观语法 | 
MIT | 
仅头文件; bazel, cmake, meson | 
| JSON Voorhees | 
C++ 的杀手 JSON (文档 | 
Apache-2.0 | 
cmake) | 
| JSON++ | 
 | 
 | 
 | 
| json-cpp | 
 | 
 | 
 | 
| json11 | 
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 | 
| jsonme-- | 
 | 
 | 
 | 
| 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 | 
每秒解析 GB 级别的 JSON,利用现代未加工和 SIMD 并行化的优势 (文档) (Kino) | 
Apache-2.0 | 
cmake, vcpkg | 
| struct_mapping | 
在 JSON 和 C++ 结构之间映射 | 
MIT | 
cmake | 
| ThorsSerializer | 
JSON/BSON/YAML 输入输出流 | 
MIT | 
make | 
| ujson | 
µjson 是小型的 C++11、UTF-8 JSON 库 | 
cmake | 
 | 
| yyjson | 
以 ANSI C 编写的高性能 JSON 库 | 
MIT | 
cmake | 
| zoolib | 
 | 
 | 
 | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| Boost.Bimap | 
双向映射库,提供 bimap<X,Y> 等关联容器,其中 X 和 Y 都可以用作键。(源码) | 
BSL-1.0 | 
 | 
| Boost.Container | 
实现多种周知容器的库,包括 STL 式容器,递归容器,以及新的有用容器:flat_map, flat_set, flat_multimap, flat_multiset, stable_vector, static_vector, small_vector, devector. (源码) | 
BSL-1.0 | 
仅头文件 | 
| Boost.Fusion | 
用于处理 元组 的异质集合的库。它提供一组容器(vector, list, set 和 map),以及对它们底层数据的变换表示方法,即 视图。 (源码) | 
BSL-1.0 | 
 | 
| Boost.Heap | 
一种 优先级队列 实现,提供比 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 | 
更好利用 CPU 缓存的 B-树容器:btree_map, btree_set, btree_multimap, btree_multiset。(源码) | 
Apache-2.0 | 
仅头文件; cmake | 
| DataFrame | 
用于统计、金融和机器学习分析的 C++ DataFrame —— 现代 C++ 中使用原生类型、连续内存存储,且无虚函数的 R 与 Pandas 数据框架。 | 
BSD-3-Clause | 
cmake, make, conan, vcpkg | 
| eggs::variant | 
Eggs.Variant 是 C++11/14 的泛型、线程安全的可区分联合体。值得注意的是它有很好的 constexpr 支持。 | 
BSL-1.0 | 
cmake | 
| Frozen | 
C++14 的 constexpr 基于完美散列的不可变集合、映射与算法。 | 
Apache-2.0 | 
仅头文件; cmake | 
| Immer | 
持久且不可变数据结构 | 
Boost | 
cmake | 
| plf::colony | 
无序的“类背包”容器,在高度修改场景中性能优于 std:: 容器,同时维护指向未被擦除元素的合法指针,无关乎插入或擦除。C++98/11/14/等 兼容。另见 P0447 (std::hive). (源码) | 
zlib | 
conan build2 | 
| plf::list | 
std::list 实现,为缓存友好牺牲范围切割,导致更快的插入、擦除和迭代。C++98/03/11/14/17/20/23/26/等 兼容。(源码) (文档) | 
zlib | 
— | 
| plf::reorderase | 
对随机访问容器扩展并优化的 "swap-and-pop"/"move-and-pop" 手法,以提高擦除后顺序不重要场合下随机访问容器的擦除性能。涵盖单元素,范围,和 std::erase_if 风格的擦除。C++98/11/14/等兼容。(源码) | 
zlib | 
 | 
| plf::queue | 
对 std::queue 容器适配器的就地替换容器,在队列上下文中具有比 std::deque 和 std::list 更好的性能。C++98/11/14/等兼容。(源码) | 
zlib | 
 | 
| plf::stack | 
std::stack 容器适配器的就地替换容器,在栈上下文中有优于 std::vector 和 std::deque 的性能。C++98/11/14/等兼容。(源码) | 
zlib | 
 | 
| ring_span | 
Guy Davidson 与 Arthur O'Dwyer 的 ring_span ——即环状缓冲区视图的简化实现。C++98- 兼容。 | 
BSL-1.0 | 
仅头文件; cmake | 
| strict_variant | 
实时/嵌入式友好(即 -fno-exceptions/-fno-rtti 兼容)的,决不空的 variant,目标 C++11。阻止许多不想要的隐式转换。 | 
BSL-1.0 | 
cmake | 
| TdhLists | 
 | 
 | 
 | 
| Ygg | 
高性能容器和数据结构,例如红黑树、区间树和区间映射的侵入式 C++11 实现。 | 
MIT | 
cmake | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| Boost::MySQL | 
MySQL 客户端库 | 
BSL-1.0 | 
 | 
| cpp-redis | 
C++11 轻量的 Redis 客户端:异步、线程安全、无依赖、管道化、多平台。(文档) | 
MIT | 
cmake | 
| DTL | 
使 ODBC 记录集看起来如 STL 容器一样 (源码) (文档) | 
 | 
 | 
| EasyQtSql | 
轻量 C++11 库(基于 Qt)快速便捷地进行 SQL 查询 | 
MIT | 
仅头文件; qmake | 
| Galera | 
Galera 集群是面向 MySQL/MariaDB 的同步多主库复制库 (Galera) 和 Write Set Replication (WSREP) API (源码) | 
GPLv2 | 
cmake, scons | 
| LevelDB | 
谷歌开发的、能够处理十亿级别规模 Key-Value 型数据持久性存储的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 DB 及其工具 | 
 | 
 | 
| 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. (源码) | 
 | 
 | 
| Pgfe | 
现代 C++ 的 PostgreSQL 客户端 (FrontEnd) API | 
Zlib License | 
cmake | 
| QTL | 
易用且轻型的 C++ 数据库支持库,支持 MySQL, SQLite 和 ODBC. | 
Apache-2.0 | 
make | 
| QUINCE | 
QUeries IN C++ Expressions (ORM+EDSL) | 
Boost | 
 | 
| QxOrm | 
C++/Qt 对象关系映射 (ORM) 数据库支持库,支持大多数常见数据库,序列化 (JSON, binary, XML); 独立的多线程 HTTP web server | 
GPLv3 或私有 | 
 | 
| redis-cpp | 
用于执行 Redis 命令的轻量级 C++17 客户端库。 | 
MIT | 
仅头文件; cmake | 
| redis-plus-plus | 
用 C++ 11 编写的 Redis 客户端, 支持 Redis Sentinel,Redis Cluster,管道,事务,发布订阅,连接池以及类似于 STL 的接口 | 
Apache-2.0 | 
cmake | 
| SOCI | 
基于插件的数据库支持库,在普通 C++ 代码中嵌入 SQL 查询;支持的后端有:DB2, Firebird, MySQL, ODBC (通用后端), Oracle, PostgreSQL, SQLite3. (源码) (文档) | 
Boost | 
cmake | 
| SQLAPI++ | 
C++ 数据库中间件库,支持多种 SQL 数据库系统: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 | 
SQL 的嵌入式领域特定语言 (EDSL), 支持 SQLite, 用于现代 C++. | 
AGPL-3.0, MIT | 
仅头文件; cmake, vcpkg | 
| sqlpp11 | 
C++ 类型安全的用于 SQL 查询和结果的嵌入式领域特定语言。 | 
BSD-2 | 
cmake | 
| taoPQ | 
轻量级 C++17 PostgreSQL 客户端库 | 
Boost | 
cmake | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| Abseil | 
Google 设计以补足 C++ 标准库的开源 C++ 库代码汇集。(文档) (源码) | 
Apache-2.0 | 
cmake | 
| Abstract Intrusive Containers | 
比 boost::intrusive 更灵活,但非 STL 兼容。 | 
 | 
 | 
| Au | 
C++14 兼容的物理单位库,无依赖,强调安全性、可访问性和性能。(文档) | 
Apache 2.0 | 
header-only | 
| BDE | 
来自 Bloomberg L.P. 的 Bloomberg Development Environment 核心库 | 
Apache | 
 | 
| Better Enums | 
反射性枚举(枚举到字符、迭代等),带 constexpr 支持。 | 
BSD-2 | 
仅头文件, cmake, make | 
| bitfield.h | 
位域结构设施,比基础语言设施更可移植/灵活。 | 
 | 
 | 
| Boost | 
大量通用库的汇集 | 
BSL-1.0 | 
 | 
| CAF | 
C++ Actor Framework (CAF) 是开源的 C++11 行动者模型实现,特性为轻量而快速的行动者实现、消息的模式匹配、网络不可见消息传递及更多 | 
BSD | 
 | 
| Cinder | 
社区开发的自由开源库,用于专业质量的 C++ 创造性编程。(文档) (源码) | 
Modified BSD License | 
CMake | 
| CommonPP | 
多用途库,强调在项目中得出度规。 | 
BSD | 
 | 
| composite_op.h | 
基础类数据成员自省,繁琐且常常不可重入,但有时有用。 | 
 | 
 | 
| cpp-mmf | 
对 POSIX 或 Windows 封装映射到内存文件的 C++98 库 | 
 | 
 | 
| cxxomfort | 
C++ 特性逆向移植( C++11 到 C++03 及 C++1y 提案到 C++11/C++03 )。 | 
 | 
 | 
| Dlib | 
网络、线程、图形用户界面、数据结构、线性代数、机器学习、 XML 及文本分析、数值优化、贝叶斯网络和大量其他任务 | 
Boost | 
 | 
| eventpp | 
C++ 事件库,提供回调、事件派发和事件队列。使用 eventpp,你可以轻易实现信号-插座机制,发布者-订阅者模式,或观察者模式。 | 
Apache 2.0 | 
 | 
| fcppt | 
Freundlich 的 C++ 工具套 (fcppt) 是聚焦于通过提供更好的类型和函数式编程改进 C++ 代码的库汇集。 | 
 | 
 | 
| Folly | 
Facebook 开源库。设计带有构思中的实践性和效率设计的 C++14 组件的跨平台库。(文档) | 
Apache-2.0 | 
cmake, vcpkg | 
| GSL | 
C++ 核心方针支持库的实现,为 Bjarne Stroustrup, Herb Sutter 和 Co 在《C++ 核心方针》中推荐 | 
MIT | 
cmake, vcpkg | 
| gsl-lite | 
C++98、C++11 及后续版本的 ISO C++ 方针支持库 (GSL) 的一个版本。 | 
MIT | 
仅头文件 | 
| GUL14 | 
来自 DESY 的 C++14 通用工具库: 常用工具函数和类型,包括字符串工具,统计和数值函数,容器,调试方法,等等。(源码) | 
LGPL-2.1 | 
meson, vcpkg | 
| History | 
现代 C++17 Undo/Redo 框架 | 
Unlicense | 
 | 
| hspp | 
实验性库,为 C++ 带来 Haskell 风格的编程 | 
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 | 
用于测量单位和其间转换,以及测量单位的字符串表示的运行时库 | 
BSD 3-Clause "New" or "Revised" License | 
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 | 
在 POSIX 平台上提供各种抽象(例如线程、网络化、日志、 IPC 等)的 C++ 库。 | 
 | 
 | 
| Reason | 
XML、xpath、正则表达式、线程、套接字、HTTP、SQL、日期时间、流、编码与解码、文件系统、压缩 | 
GPL | 
 | 
| SaferCPlusPlus | 
SaferCPlusPlus - 不安全的 C++ 原始工具的安全兼容替换品,包括指针、int 和 std::vector。 | 
Boost | 
 | 
| Smart Enum | 
给你的枚举 "to_string"、"from_string" 和更多。 | 
BSL-1.0 | 
cmake | 
| units | 
编译时的量纲分析及单位转换库,建立于 C++14 而无依赖。 | 
MIT | 
仅头文件 | 
| yaal | 
另一抽象层 - 算法、集合、任意精度计算、泛型 DSL 文法驱动分析器及更多 | 
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 | 
 | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| Dear ImGui | 
具有最小化依赖、可移植、渲染器中立的 C++ 轻量级 GUI 库,为启用 3D 管线的应用而优化 | 
MIT | 
 | 
| FLTK | 
跨平台 C++ GUI 工具包 (Linux, Windows, MacOS),提供现代 GUI 功能,并通过 OpenGL/GLUT 支持 3D 图形。小型和模块化设计。包含一个 UI 构建工具。 | 
LGPL ver.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++ 跨平台文件对话框(无初始化、无 main 循环、6 种模态的函数调用) | 
 | 
仅头文件 | 
| U++ | 
跨平台 (Windows, GNU/Linux, macOS) 带内置 IDE 的快速应用开发框架。C++17 兼容。(文档) (源码) | 
BSD-3-Clause | 
make | 
| WxWidgets | 
自由开源跨平台 (Windows, GNU/Linux, macOS) C++ 框架,用于编写使用本机控件的高级 GUI 应用。(文档) | 
修改的 LGPL | 
cmake, make | 
| xtd | 
用于在 Windows, macOS, Linux, iOS, and Android 上创建控制台、GUI 和单元测试应用的现代 C++17/20 框架。(源码) (文档) | 
MIT | 
cmake | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| bgfx | 
非常强大的跨平台图形渲染库,支持平台包括 Windows Mac Linux iOS Android Web,渲染后端包括 DX, OpenGL, Metal WebGL, Vulkan 等。(文档) | 
BSD-2 | 
make | 
| cairomm | 
cairo 图形库的 C++ 包装,cairo 是带有多种输出设备支持的 2D 库:X Window, Quartz, Win32, 图像缓冲区, PostScript, PDF, SVG, OpenGL (实验性). | 
LGPL | 
 | 
| dfpsr | 
2D, 3D 和单线图软件渲染器,带有桌面 GUI 工具包,最小化依赖,为长期维护而设计,可在没有 3D 加速驱动情况下运行 | 
zlib | 
 | 
| gegl | 
通用图形库 (GEGL) 是一种基于数据流的图像处理框架,支持浮点处理和非破坏性图像处理能力。(源码) | 
LGPL | 
 | 
| io2d | 
P0267 的参考实现,提案的 ISO C++ 2D 图形 API | 
BSL-1.0 | 
cmake | 
| nanovg | 
C 编写的基于 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 | 
TX 库是一个 C++ 编写的用于 Win32 的微型 2D 图形库。 | 
 | 
 | 
| ULIS | 
跨平台 C++14 库,用于通用数字图像处理,2D 软件光栅化,无限制的图像格式 (u8, u16, u32, float, double), 自定义位序内存布局, 全部 Photoshop 像素混合模式 + 11 个额外模式, 颜色模型 (RGB, HSL, HSV, CMYK, ...), 颜色管理管线, 颜色空间支持 (icm 配置文件和设备无关性), 利用多线程的优化算法, 利用 SIMD 扩展 (SSE2) 的优化算法, 用于优化的图像池和缓存, 动画图像序列的内存存储. | 
自定义 (仅对非商业目的免费) | 
cmake | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| assimp | 
3D 模型加载 | 
 | 
 | 
| bgfx | 
跨平台、不知图形 API 、“带来你自己的引擎/框架”风格的制图库。 | 
 | 
 | 
| Diligent Engine | 
现代跨平台低层 3D 图形库。 | 
 | 
 | 
| Epoxy | 
GLEM 的现代后继者。在 GL 环境的一些种类间抽象,这使得有时比使用 GLEW 更加单。自 2015 起为 GTK+ 项目所用。 | 
 | 
 | 
| G3D | 
G3D 创新引擎是一个 C/C++ 编写的全功能,开源,跨平台 (Windows, Linus, Mac OS) 3D 游戏引擎。G3D 已用于商业游戏, 研究论文, 模拟器, 以及大学课程中。它支持实时和离线硬件渲染,光线追踪,模型加载,线性代数,和 GPU 上的通用计算。支持 3DS, OBJ, MP4, PNG, JPG, MD3 和许多其他格式,包括一个原生 OpenGL 可换肤 GUI。 (源码) (文档) | 
BSD-2 license | 
 | 
| GLAD | 
可定制的轻量库,用于加载 OpenGL 功能 | 
 | 
 | 
| GLEW | 
OpenGL 功能加载 | 
 | 
 | 
| GLFW | 
OpenGL 窗口管理器 | 
 | 
 | 
| GLM | 
OpenGL 数学库 (GLM) 是 C++ 数学库,用于基于 GLSL 规范的图形软件。 | 
The Happy Bunny (MIT) | 
仅头文件; cmake, vcpkg | 
| Godot | 
C++17 的全功能多平台 2D 和 3D 游戏引擎,带有一个自身编写的 GUI 编辑器和一个受到 python 启发的脚本语言。 | 
MIT | 
scons | 
| hlsl++ | 
用于使用 HLSL 语法进行渲染的 C++ 数学库。支持 SSE 和 NEON | 
MIT | 
仅头文件 | 
| Horde3D | 
小型开源 3D 渲染引擎。努力创建一个提供下一代游戏所需的震撼性视觉效果的图形引擎,并保持轻量级和尽可能简洁。 | 
 | 
 | 
| Irrlicht | 
Irrlicht 引擎是一个 C++ 编写的开源实时 3D 引擎。它跨平台,使用 D3D, OpenGL 和其自己的软件渲染器。 | 
 | 
 | 
| klein | 
一个 C++11/14/17 的 SSE 优化的用于图形和动画的投影集合代数库 | 
 | 
 | 
| Magnum | 
游戏和数据可视化的轻量模块化的 C++11/C++14 图形中间件 | 
 | 
 | 
| O3DE | 
开源 3D 引擎 (之前为 Amazon 的 Lumberyard) 是一个 C++ 多平台 3D 引擎,用于构建 AAA 游戏,影院质量 3D 世界,和高真实度模拟。包括物理模拟,脚本引擎,网络,和更多功能。(文档) | 
Apache 2.0 | 
cmake | 
| Ogre3D | 
OGRE 是一种面向对象图形渲染引擎 - 多用途可视化库,适用于科学可视化,游戏,模拟,虚拟现实和其他图形项目。多平台且非常健壮,有良好的文档。 | 
MIT | 
cmake | 
| Open CASCADE | 
3D CAD/CAM/CAE 应用的 SDK | 
 | 
 | 
| OpenGL | 
用于开发 3D 应用的 3D 语言,图形和 SDK。 | 
 | 
 | 
| OpenSceneGraph | 
OpenSceneGraph 是一个开源高性能 3D 图形工具包,被可视化模拟,游戏,虚拟现实,科学可视化和建模等领域中的应用开发人员使用。 | 
 | 
 | 
| Visionaray | 
C++ 光束追踪模板库 | 
 | 
 | 
| VTK | 
可视化工具包 (VTK) 是一个用于操作并显示科学数据的开源软件。它带有最先进的 3D 渲染工具,用于 3D 交互的部件套件,和可扩展的 2D 制图能力。 | 
 | 
 | 
| Vulkan | 
一组底层 API,移除了上一代图形 API 中的许多抽象。这对提供最大性能很有好处,但其副作用是向开发者暴露了更多复杂性。幸运的是,有不少优秀的教程可以帮助清除这项障碍并快速获得生产力。 | 
 | 
 | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| Matplot++ | 
基于 gnuplot 的数据可视化 C++ 图形库。Matplot++ 可以获得以下库的优势:OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (文档) | 
MIT | 
cmake | 
| plotutils | 
GNU plotutils 包包含 libplot,一个用于导出 2D 向量图形为多种文件格式的 C/C++ 库,支持向量和位图。libplot 可以动画 2D 向量图形,并使用 Postscript 风格 API 进行文件导出和图形动画。 | 
GPL | 
 | 
| sciplot | 
一个基于 gnuplot 的现代 C++ 科学绘图库,可以导出为 PDF, SVG, PNG, EPS, 等文件格式。 | 
MIT | 
仅头文件; cmake, vcpkg | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| alglib | 
ALGLIB 是一个跨平台 (Windows/POSIX/Linux) 数值分析和数据处理库。ALGLIB 功能包括:数据分析,优化和非线性求解,插值,线性代数和线性求解,FFT 和许多其他功能。 | 
自由 (GPL/Personal/Academic) 和商用 | 
 | 
| ArrayFire | 
用于并行计算的跨平台 (Windows/OSX/Linux) 通用 HPC (CPU/GPU/OpenCL/CUDA/GPGPU) 库。ArrayFire 使用领域有:向量算法,图像处理,计算机视觉,信号处理,线性代数,统计,以及更多。(源码) | 
自定义 | 
 | 
| BigNumber | 
创建和计算任意长度整数的 C++ 类 | 
 | 
 | 
| Boost.Math | 
包括几项数学领域中的共线:浮点工具,数学常数,统计分布与函数,统计学,向量函数 - 范数,特殊函数,求根与最小化算法,多项式和关系函数,插值,积分与差分,滤波,复数函数,四元数,八元数,整数工具 (最大公约数与最小公倍数),数列,有理数和连续分数。 | 
BSL-1.0 | 
 | 
| Boost.Random | 
提供用于产生具有有用性质的随机数的多种生成器和分布函数,比如均匀分布。 | 
BSL-1.0 | 
 | 
| Boost.SafeNumerics | 
C++14,保证正确的整数算术,是内建整数类型的就地替换物。 | 
BSL-1.0 | 
仅头文件 | 
| C++ Matrix | 
高性能且精确(例如极端情况)的矩阵数学库,带表达式模板算术运算符 | 
 | 
 | 
| CasADi | 
Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code. | 
 | 
 | 
| cpp-measures | 
处理物理度量的 C++11 库 | 
MPL-2.0 | 
仅头文件 | 
| Exact floating-point arithmetic library | 
 | 
 | 
 | 
| 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 | 
数论库。NTL 是一个高性能,可移植 C++ 库,提供用于操作有符号任意长度整数,以及整数和无穷场的向量、矩阵和多项式的数据结构和算法。 | 
LGPLv2.1+ | 
 | 
| PCGrand | 
PCG 是一族简单快速的空间高效、统计良好的随机数生成算法。与许多通用 RNG 不同,它们难于被预测。 | 
Apache | 
 | 
| RPNX Uniform Smooth Noise | 
N 维均匀分布的平滑噪声函数,以 C++ 实现。 | 
 | 
 | 
| SEMT | 
Compile time symbolic differentiation | 
 | 
 | 
| stats++ | 
先进、广泛的统计软件:数据收集及预处理、统计、机器学习及优化,拥有开放的 C++ 源码。 | 
 | 
 | 
| StatsLib | 
统计分布函数的模板库。 | 
Apache-2.0 | 
仅头文件 | 
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| Armadillo | 
用于线性代数和科学计算的 C++ 模板库,提供对 OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU 和 FFTW 的包装。可用于机器学习,模式识别,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 - linear algebra tools | 
 | 
 | 
 | 
| Eigen | 
用于线性代数的 C++ 模板库:矩阵、向量、数值求解和相关算法。 | 
MPL2 | 
cmake, conan | 
| ETL | 
 | 
 | 
 | 
| IT++ | 
 | 
 | 
 | 
| Matrix | 
C++ 的易用科学计算库,支持 Linux 和 Windows。 | 
MIT | 
cmake | 
| NumCpp | 
实现 Python NumPy 包的 C++ 模板库 | 
MIT | 
仅头文件; cmake, vcpkg, conan | 
| PETSc | 
用于偏微分方程建模的科学应用的并行求解的数据结构和例程套件。支持 MPI,基于 CUDA 或 OpenCL 支持 GPU 计算,也支持混合 MPI-GPU 计算。 | 
 | 
 | 
| Spectra | 
稀疏特征值计算工具包-重新设计的 ARPACK,是一个开源 C++ 类库,用于大规模特征值问题,建立在 Eigen 线性代数库(也是开源仅头文件库)之上。(源码) | 
MPL-2.0 | 
仅头文件; cmake, vcpkg | 
| Tense | 
快速 C++17 表达式模板矩阵和张量库 | 
BSD-3-Clause | 
仅头文件; cmake | 
| xtensor | 
用于数值分析的 C++ 库,提供多维数组表达式。 | 
BSD | 
 |