Skip to content

精彩的 C++(或 C)框架、库、资源和闪亮事物的精选列表。灵感来自于很棒的东西。A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

License

Notifications You must be signed in to change notification settings

yuanzhongqiao/awesome-cpp-cn

 
 

Repository files navigation

很棒的 C++惊人的 追踪精彩列表

精彩的 C++(或 C)框架、库、资源和闪亮事物的精选列表。灵感来自于很棒的东西。

标准库

C++标准库——包括STL容器、STL算法、STL函数等。

构架

C++ 通用框架和库。

  • Abseil-cpp - Abseil C++ 通用库。[阿帕奇2]
  • Apache C++ 标准库- STDCXX,算法、容器、迭代器和其他基本组件的集合。[已退休] [Apache2]
  • APR - Apache 便携式运行时。另一个跨平台实用函数库。[阿帕奇2]
  • ASL - Adob​​e Source Libraries 提供经过同行评审的可移植 C++ 源库。[麻省理工学院]
  • Boost ⚡ - 通用 C++ 库的大型集合。[提升]网站
  • BDE - 来自 Bloomberg Labs 的 BDE 开发环境。[阿帕奇2]
  • C++ 工作流程⚡ - C++ 并行计算和异步网络引擎。[阿帕奇2]
  • CGraph - 基于 C++ 的跨平台 DAG 框架,无需任何第三方。[麻省理工学院]
  • Cinder - 一个社区开发的免费开源库,用于专业品质的创意编码。[BSD]
  • Coost - C++11 中的小型 boost 库。[麻省理工学院]
  • Cxxomfort - 一个小型的、仅包含头文件的库,可将各种设施从最新的 C++ 标准向后移植到 C++03 及更高版本。[麻省理工学院]
  • Dlib ⚡ - 用于使用 C++ 制作现实世界机器学习和数据分析应用程序的工具包。[提升]网站
  • EASTL - 电子艺术标准模板库。[BSD]
  • ETL - 嵌入式模板库。[麻省理工学院]
  • ffead-cpp - 企业应用程序开发框架。[阿帕奇2]
  • Folly - Facebook 开发和使用的开源 C++ 库。[阿帕奇2]
  • FunctionPlus - C++ 函数式编程库。编写简洁易读的 C++ 代码。[麻省理工学院]
  • GLib - GLib 为用 C 编写的库和应用程序提供核心应用程序构建块。 [LGPL]
  • itlib - 类似 std 的单头 C++ 库的集合 [MIT]
  • JUCE - 用于开发跨平台软件的包罗万象的 C++ 类库。[核心模块:ISC,其余:GPL2/GPL3/专有]网站
  • Kigs 框架- 一个免费开源的 C++ 模块化多用途跨平台 RAD 框架。[麻省理工学院]网站
  • libPhenom -libPhenom 是一个事件框架,用于用 C 语言构建高性能和高可扩展性系统。 [Apache2]
  • LibSourcey - 用于实时视频流和高性能网络应用程序的 C++11 事件 IO。[LGPL]
  • LibU - 用 C 编写的多平台实用程序库。 [BSD]
  • libxutils - 简单而强大的跨平台 C 库,提供数据结构、算法等。[麻省理工学院]
  • Loki - 一个 C++ 设计库,包含常见设计模式和习惯用法的灵活实现。[麻省理工学院]
  • MiLi - 最小的仅包含头文件的 C++ 库。[促进]
  • OpenFrameworks - 用于 C++ 创意编码的跨平台开源工具包。[麻省理工学院]网站
  • Qt ⚡ - 跨平台应用程序和 UI 框架。[GPL/LGPL/专有]网站
  • Reason - 一个跨平台框架,旨在为需要 C++ 性能和强度的开发人员带来 Java、.Net 或 Python 的易用性。[GPL2]
  • ROOT - 一组 OO 框架,具有以非常有效的方式处理和分析大量数据所需的所有功能。用于欧洲核子研究中心。[LGPL]
  • Seastar - 一种先进的开源 C++ 框架,适用于现代硬件上的高性能服务器应用程序。[Apache-2.0 许可证] seastar.io
  • STLport - STL 的示例版本。[自由的]
  • STXXL - 用于超大型数据集的标准模板库。[促进]
  • tbox - 类似 glib 的多平台 c 库。[Apache2]网站
  • Ultimate++ - 一个C++跨平台快速应用程序开发框架。[BSD]
  • Windows 模板库- 用于开发 Windows 应用程序和 UI 组件的 C++ 库。[民众]
  • Yomm2 - 快速、正交、开放的多种方法。取代Yomm11 [Boost]

人工智能

  • ANNetGPGPU - 基于 GPU (CUDA) 的人工神经网络库。[LGPL]
  • btsk - 游戏行为树入门套件。[zlib]
  • Evolving Objects - 一个基于模板的 ANSI-C++ 进化计算库,可帮助您快速编写自己的随机优化算法。[LGPL]
  • frugally-deep - 用于在 C++ 中使用 Keras 模型的仅标头库。[麻省理工学院]
  • Genann - C 语言的简单神经网络库。 [zlib]
  • MXNet - 轻量级、便携式、灵活的分布式/移动深度学习,具有动态、突变感知数据流调度程序;适用于 Python、R、Julia、Scala、Go、Javascript 等。网站
  • PyTorch - Python 中的张量和动态神经网络,具有强大的 GPU 加速功能。网站
  • flashlight - Flashlight 是一个快速、灵活的机器学习库,完全用 C++ 编写。[BSD]
  • Recast/Detour - (3D) 导航网格生成器和探路器,主要用于游戏。[zlib]
  • TensorFlow - 使用数据流图进行数值计算的开源软件库。[阿帕奇]
  • oneDNN - 用于深度学习应用程序的开源跨平台性能库。[阿帕奇]网站
  • CNTK - 微软认知工具包(CNTK),一个开源深度学习工具包。[促进]
  • tiny-dnn - C++11 中的仅标头、无依赖的深度学习框架。[BSD]
  • Veles - 用于快速深度学习应用程序开发的分布式平台。[阿帕奇]
  • Kaldi - 语音识别工具包。[阿帕奇]

异步事件循环

  • Asio - 用于网络和低级 I/O 编程的跨平台 C++ 库,使用现代 C++ 方法为开发人员提供一致的异步模型。[提升]网站
  • Boost.Asio - 用于网络和低级 I/O 编程的跨平台 C++ 库。[提升]网站
  • C++ Actor 框架- C++ 中 Actor 模型的开源实现。[BSD-3-条款]网站
  • Ichor - 一个事件队列,专注于线程安全并提供依赖注入。[麻省理工学院]
  • libev - 一个功能齐全、高性能的事件循环,在 libevent 之后松散建模,但没有其限制和错误。[BSD 和 GPL]
  • libevent - 事件通知库。[BSD]
  • libhv - 跨平台事件循环库。[BSD]
  • libuv - 跨平台异步 I/O。[BSD]
  • Promise-cpp - 实现 Promise/A+ 标准的仅标头库。【抗996】
  • uvw -libuv 的 C++ 包装器。[麻省理工学院]

声音的

音频、声音、音乐、数字化语音库

  • Amplitude Audio SDK - 专为满足游戏需求而设计的跨平台音频引擎。[Apache-2.0]网站
  • Aubio - 用于音频和音乐分析的库。[GPL-3.0]网站
  • AudioFile - 一个简单的 C++ 库,用于读取和写入音频文件。[麻省理工学院]
  • audioFlux - 用于音频和音乐分析、特征提取的 AC 库。[麻省理工学院]
  • dr_libs - 用于 C 和 C++ 的单文件音频解码库。[无执照]
  • FMOD - 易于使用的跨平台音频引擎和游戏音频内容创建工具。[非商业/商业免费]
  • KFR - 快速、现代的 C++ DSP 框架、FFT、FIR/IIR 滤波器、采样率转换。[GPL/专有]
  • LAME - LAME 是一种高品质 MPEG 音频第三层 (MP3) 编码器。[LGPL]
  • libsndfile - 带有 C++ 包装器的 C 库,用于通过一个标准库接口读取和写入包含采样声音的文件。[LGPL-2.1]网站
  • libsoundio - 用于跨平台实时音频输入和输出的 C 库。[麻省理工学院]网站
  • Maximilian - C++ 音频和音乐 DSP 库。[麻省理工学院]
  • OpenAL - 开放音频库 - 跨平台音频 API。[BSD/LGPL/专有]
  • miniaudio - 单文件音频播放和捕获库。[无许可证]网站
  • ni-media - 用于读取和写入音频文件的 C++ 库。[麻省理工学院]
  • Opus - 完全开放、免版税、高度通用的音频编解码器。[BSD]
  • PortAudio - PortAudio 是一个免费、跨平台、开源的音频 I/O 库。[麻省理工学院]
  • rnnoise - 用于降低音频噪声的循环神经网络。[BSD-3 条款]
  • SELA - 简单无损音频。[麻省理工学院]
  • SoLoud - 简单、便携式的游戏音频引擎。[zlib]
  • Speex - 言论自由的免费编解码器。已被 Opus 废弃。[BSD]
  • Tonic - C++ 中简单高效的音频合成。[无执照]
  • Vorbis - Ogg Vorbis 是一种完全开放、非专有、免专利和免版税的通用压缩音频格式。[BSD]
  • minimp3 - 公共领域、仅标头的 MP3 解码器,具有洁净室实现。[CC0]
  • Verovio - Verovio 是一个快速且轻量级的乐谱雕刻库。[LGPL]网站
  • Wav2Letter++ - 公共领域,一个完全用 C++ 编写的快速开源语音处理工具包,并使用 ArrayFire 张量库和 flashlight 机器学习库来实现最大效率。[BSD]

生物学

生物信息学、基因组学、生物技术

  • BioC++ - 用于生物信息学的 C++ 计算库。[BSD]
  • Chaste - 一个开源 C++ 库,用于对生理学和生物学开发的数学模型进行计算模拟。[BSD]
  • libsequence - 用于表示和分析群体遗传学数据的 C++ 库。[通用公共许可证]
  • SeqAn - 用于分析序列的算法和数据结构,重点关注生物数据。[BSD/3 子句]
  • Vcflib - 用于解析和操作 VCF 文件的 C++ 库。[麻省理工学院]
  • Wham - 通过直接对 BAM 文件应用关联测试来生成基因组中的结构变异 (SV)。[麻省理工学院]

BT

  • jech/dht - C 语言的 BitTorrent DHT 库。 [MIT]
  • libtorrent(又名 libtorrent-rasterbar) - 一个高效的功能完整的 C++ bittorrent 实现。[BSD]
  • LibTorrent(又名 libtorrent-rakshasa)- BitTorrent 库。[通用公共许可证]
  • libutp - uTorrent 传输协议库。[麻省理工学院]

化学

化学、量子化学、固态化学/物理、地球化学、生物化学

  • d-SEAMS - C++ 和 Lua 与 Nix 的分子动力学轨迹分析引擎。它是分子模拟延迟结构阐明分析的缩写。[GPL]网站
  • gromacs - 消息传递并行分子动力学实现。[GPL]网站
  • Reaktoro - C++ 和 Python 中的计算框架,用于对化学反应系统进行建模。[LGPL]网站
  • LAMMPS - 经典的分子动力学代码,重点关注材料建模。它是大规模原子/分子大规模并行模拟器的缩写。[GPL]网站
  • MADNESS - 用于科学模拟的多分辨率自适应数值环境。[GPL]网站
  • MPQC - 大规模并行量子化学程序 MPQC 使用与时间无关的薛定谔方程根据第一原理计算原子和分子的属性。[GPL]网站
  • ORCA - 一个从头算起的量子化学程序包,包含现代电子结构方法。[学术]网站
  • Psi - 从头计算化学包。[GPL]网站

命令行界面

控制台/终端用户界面、命令行界面

  • 啊!- 一个极简的、无挫折的、只有标头的参数处理程序。[BSD]
  • argparse - 现代 C++ 的参数解析器。[麻省理工学院]
  • Taywee/args - 一个简单的仅标头 C++ 参数解析器库。[麻省理工学院]
  • Boost.Program_options - 通过命令行和配置文件等常规方法获取程序选项的库。[提升]网站
  • Clara - 一个简单易用、可组合的命令行解析器,适用于 C++ 11 及更高版本。[促进]
  • cli - 用于交互式命令行界面(思科风格)的跨平台头文件 C++14 库。[促进]
  • CLI11 - 仅标头的单文件或多文件 C++11 库,用于简单和高级的 CLI 解析。[BSD]
  • Clipp - 易于使用、强大且富有表现力的命令行参数处理,用于包含在单个头文件中的 C++11/14/17。[麻省理工学院]
  • jarro2783/cxxopts - 轻量级 C++ 命令行选项解析器。[麻省理工学院]
  • docopt.cpp - 从文档字符串生成选项解析器的库。[麻省理工学院/提升]
  • FINAL CUT - 用于使用基于文本的小部件创建终端应用程序的库。[LGPL]
  • gflags - C++ 的命令行标志模块。[BSD]
  • Indicators - 现代 C++ 的活动指示器。[麻省理工学院]
  • linenoise - readline 和 libedit 的一个小型独立替代品。[BSD-2 条款]
  • linenoise-ng - 适用于 Linux、Windows 和 MacOS 的小型便携式 GNU readline 替代品,能够处理 UTF-8 字符。[BSD]
  • Lyra - 一个简单易用、可组合的命令行解析器,适用于 C++ 11 及更高版本。[促进]
  • Ncurses - 终端用户界面。[麻省理工学院]
  • oof - 方便、高性能的 RGB 颜色和位置控制,用于控制台输出。[麻省理工学院]
  • PDCurses - 公共领域的诅咒库,提供源代码和预编译库。[公共区域]
  • popl - 适用于 C++ 11 及更高版本的单头模板化命令行参数和 ini 文件解析器。[麻省理工学院]
  • replxx - readline 和 libedit 的替代品,支持 UTF-8、语法突出显示、提示,适用于 Unix 和 Windows。[BSD]
  • tabulate - 现代 C++ 的表格制作器。[麻省理工学院]
  • TCLAP - 一个成熟、稳定且功能丰富的库,用于定义和访问 ANSI C++ 中的命令行参数。[麻省理工学院]
  • termbox - 用于编写基于文本的用户界面的 AC 库。[麻省理工学院]
  • cpp-terminal - 用于编写多平台终端应用程序的小型头文件 C++ 库。[麻省理工学院]
  • FTXUI - C++ 功能终端用户界面。[麻省理工学院]
  • imtui - 立即模式基于文本的用户界面。[麻省理工学院]

压缩

压缩和归档库

  • bit7z - 一个 C++ 静态库,为 7-zip 共享库提供干净且简单的接口。[MPL2]
  • Brotli - Brotli 压缩格式。由谷歌开发。[麻省理工学院]
  • bzip2 - 免费提供、无专利、高质量的数据压缩器。[BSD]
  • bzip3 - BZip2 更好、更强的精神继承者。[LGPL]
  • FiniteStateEntropy - 新一代熵编解码器:有限状态熵和 Huff0。
  • heatshrink - 用于嵌入式/实时系统的数据压缩库 [ISC]
  • PhysicsFS - 一个提供对各种档案的抽象访问的库。它旨在用于视频游戏,其设计在某种程度上受到了 Quake 3 的文件子系统的启发。[zlib]
  • KArchive - 用于创建、读取、写入和操作文件存档(如 zip 和 tar)的库。它还通过 QIODevice 的子类使用 gzip 等格式提供透明的数据压缩和解压缩。[LGPL]
  • libarchive - 多格式存档和压缩库。[新BSD]网站
  • LZ4 - 极快的压缩算法。[BSD]网站
  • LZFSE - LZFSE 压缩库和命令行工具。由苹果公司开发。
  • LZHAM - 无损数据压缩库,压缩率与 LZMA 类似,但解压缩速度更快。[BSD]
  • LZMA ⚡ - 7z 格式的默认通用压缩方法。[公共领域]网站
  • LZMAT - 一个极快的实时无损数据压缩库。[通用公共许可证]
  • miniz - 单个 C 源文件 Deflate/Inflate 压缩库,具有 zlib 兼容的 API、ZIP 存档读取/写入、PNG 写入。[麻省理工学院]
  • Minizip - Zlib 具有最新的错误修复,支持 PKWARE 磁盘跨越、AES 加密和 IO 缓冲。[zlib]
  • minizip-ng - zlib 发行版中流行的 zip 操作库的分支。[zlib]
  • smaz - 小字符串压缩库。[BSD]
  • Snappy - 快速压缩器/解压缩器。[BSD]
  • ZLib - 一个非常紧凑的数据流压缩库。[zlib]
  • zlib-ng - 用于“下一代”系统的 zlib。通过一些认真的优化进行直接替换。[zlib]
  • zstd - Zstandard - 快速实时压缩算法。由 Facebook 开发。[BSD]
  • ZZIPlib - 提供对 ZIP 档案的读取访问。[MPL/LGPL]

并发性

并发和多线程

  • alpaka - 用于并行内核加速的抽象库。[LGPLv3+]
  • ArrayFire - 通用 GPU 库。[BSD]
  • Async++ - C++11 的轻量级并发框架,受到 Microsoft PPL 库和 N3428 C++ 标准提案的启发。[麻省理工学院]
  • Boost.Compute - 用于 OpenCL 的 C++ GPU 计算库。[提升]网站
  • Bolt - 针对 GPU 优化的 C++ 模板库。[阿帕奇2]
  • Channel - 用于在线程之间共享数据的线程安全容器。[麻省理工学院]
  • ck - 并发原语、安全内存回收机制和非阻塞数据结构。[BSD]
  • 并发队列- 用于 C++11 的快速多生产者、多消费者无锁并发队列。[BSD,提升]
  • CUB - CUB 为 CUDA 编程模式的每一层提供最先进的、可重用的软件组件。[新BSD]
  • cuda-api-wrappers - 用于 CUDA GPU 编程运行时 API 的轻量级现代 C++ 包装器。[BSD]
  • cupla - 通过 Alpaka 在 OpenMP、线程、TBB 等上运行 CUDA/C++ 的 C++ API。[LGPLv3+]
  • C++React - C++11 的反应式编程库。[促进]
  • FiberTaskingLib - 基于任务的多线程库,支持具有任意依赖关系的任务图。[阿帕奇]
  • HPX - 通用 C++ 运行时系统,适用于任何规模的并行和分布式应用程序。[促进]
  • 英特尔游戏任务调度程序- 专为满足游戏开发人员的需求而设计的任务调度框架。[麻省理工学院]
  • 英特尔并行 STL - 适用于 C++11 及更高版本的英特尔® C++17 STL 实现。[阿帕奇2]
  • 英特尔 TBB - 英特尔® 线程构建模块。[阿帕奇2]
  • junction - C++ 中的并发数据结构库。[BSD]
  • Kokkos - 用于并行执行和内存抽象的性能可移植编程模型。[BSD]
  • libcds - 并发数据结构的 C++ 库。[BSD]
  • Libclsph - 基于 OpenCL 的 GPU 加速 SPH 流体模拟库。[麻省理工学院]
  • libdill - 在 C 中引入结构化并发。 [MIT]
  • libdispatch - Grand Central Dispatch (GCD),由 Apple Inc. 开发,是一种基于线程池模式的任务并行技术。libdispatch 是一个提供 GCD 服务实现的库。[Apache-2.0]网站
  • libmill - 在 C 中引入 Go 风格的并发性。 [MIT]
  • marl - Marl 是用 C++ 11 编写的混合线程/光纤任务调度程序。 [Apache-2.0]
  • Moderngpu -moderngpu 是一个用于 GPU 上通用计算的生产力库. 它是一个为 CUDA 编写的纯头文件 C++ 库。该库的独特价值在于其用于解决不规则并行问题的加速原语。[FreeBSD 和版权所有,Sean Baxter]
  • NCCL - 针对集体多 GPU 通信的优化原语。[BSD]
  • OpenCL - 异构系统并行编程的开放标准。
  • OpenMP - OpenMP API。
  • rotor - 事件循环友好的 C++ actor 微框架。[麻省理工学院]
  • SObjectizer - 在一个相当小的 C++ 框架中实现 Actor、发布-订阅和 CSP 模型。[BSD-3 条款]
  • Quantum - 一个强大的 C++ 协程调度程序框架,构建在Boost.Coroutine2之上。
  • RaftLib - RaftLib C++ 库,通过类似 C++ iostream 的运算符实现流/数据流并发。[阿帕奇2]
  • readerwriterqueue - 用于 C++ 的快速单生产者、单消费者无锁队列。[BSD]
  • stdgpu - GPU 上高效的类似 STL 的数据结构。[阿帕奇2]
  • 任务流- 通用并行和异构任务编程系统。(从 Cpp-Taskflow 重命名)[麻省理工学院]
  • Thrust - 类似于 C++ 标准模板库 (STL) 的并行算法库。[阿帕奇2]
  • transwarp - 用于任务并发的纯标头 C++ 库。[麻省理工学院]
  • VexCL - OpenCL/CUDA 的 C++ 向量表达模板库。[麻省理工学院]
  • STAPL - 一个 C++ 并行编程框架,设计用于共享和分布式内存并行计算机。[BSD]
  • concurrencpp - 一个通用并发库,包含任务、执行器、计时器和 C++20 协程来管理它们。

配置

配置文件、INI文件

  • inifile-cpp - 用于 C++ 的仅标头且易于使用的 Ini 文件解析器。[麻省理工学院]
  • inih - C 语言的简单 .INI 文件解析器,适用于嵌入式系统。[BSD-3 条款]
  • inih - 仅单标头的inih C++ 版本. [BSD-3 条款]
  • ini-cpp - 仅单头 C++ 版本,具有一些方便的读/写接口,从inih扩展。[BSD-3-条款]网站
  • iniparser - INI 文件解析器。[麻省理工学院]*
  • inipp - 简单的仅标头 C++ ini 解析器和生成器。[麻省理工学院]
  • libconfig - 用于处理结构化配置文件的 C、C++ 库。[LGPL-2.1]网站
  • libconfuse - C 的小型配置文件解析器库。 [ISC]
  • simpleini - 跨平台 C++ 库,提供简单的 API 来读取和写入 INI 样式的配置文件。[麻省理工学院]
  • toml++ - 适用于 C++17 及更高版本的仅标头 TOML 解析器和序列化器。[麻省理工学院]网站
  • toml11 - 仅依赖于 C++ 标准库的 C++11(或更高版本)仅标头 toml 解析器/编码器。[麻省理工学院]

集装箱

  • C++ B-tree - 一个模板库,基于 B-tree 数据结构实现有序内存容器。[阿帕奇2]
  • Dynamic_bitset - C++17 仅标头动态位集。[麻省理工学院]
  • Hashmaps - 用 C++ 实现开放寻址哈希表算法。[麻省理工学院]
  • Hopscotch 映射- 一种快速的仅标头哈希映射,它使用跳房子哈希来解决冲突。[麻省理工学院]
  • LSHBOX - 局部敏感哈希(LSH)的 C++ 工具箱,提供了几种流行的 LSH 算法,还支持 Python 和 MATLAB。[通用公共许可证]
  • parallel-hashmap - 一系列仅标头、非常快速且内存友好的 hashmap 和 btree 容器 [Apache2]网站
  • PGM-index - 一种数据结构,可以使用比传统索引少几个数量级的空间,在数十亿项的数组中进行快速查找、前驱、范围搜索和更新。[Apache2]网站
  • plf::colony - 一种无序的“bag”类型容器,在高修改场景中其性能优于 std 容器,同时无论插入/擦除如何都保持指向非擦除元素的永久指针。[zLib]网站
  • plf::list - 一个 std::list 实现,它删除了范围拼接以启用缓存友好的结构,从而显着提高性能。[zLib]网站
  • plf::stack - std::stack 容器适配器的替换容器,比堆栈上下文中的任何 std 容器具有更好的性能。[zLib]网站
  • ring_span lite - Arthur O'Dwyer 的 Ring_span 实现的简化实现,即 循环缓冲区视图。[麻省理工学院]
  • robin-hood-hashing - 基于 C++14 的 Robin hood 哈希的快速且内存高效的哈希表. [麻省理工学院]
  • robin-map - 使用 Robin hood 哈希的快速哈希映射和哈希集。[麻省理工学院]
  • Sparseppp - 用于 C++ 的快速、内存高效的哈希映射。[BSD 3 条款]
  • svector - 适用于 C++17 或更高版本的紧凑型 SVO 优化向量。[麻省理工学院]
  • unordered_dense - 基于 Robin-hood 向后移位删除的快速且密集存储的哈希图和哈希集。[麻省理工学院]

密码学

密码学和加密库

  • Bcrypt - 跨平台文件加密实用程序。加密文件可跨所有支持的操作系统和处理器移植。[BSD]
  • BeeCrypt - 一个便携式且快速的密码学库。[LGPLv2.1+]
  • Botan - C++ 的加密库。[BSD-2]
  • Crypto++ - 一个免费的加密方案 C++ 类库。[提升]网站
  • digestpp - C++11 仅标头消息摘要(哈希)库。[公共区域]
  • GnuPG - OpenPGP 标准的完整且免费的实现。[通用公共许可证]
  • GnuTLS - 一个实现 SSL、TLS 和 DTLS 协议的安全通信库。[LGPL2.1]
  • Libgcrypt - 最初基于 GnuPG 代码的通用加密库。[LGPLv2.1+]
  • LibreSSL - 2014 年从 OpenSSL 分叉出来的 SSL/TLS 协议的免费版本。 [?]
  • libsodium - P(ortable|ackageable) 基于 NaCl 的加密库,固执己见且易于使用. [国际标准委员会]
  • libHydrogen - 一个轻量级、安全、易于使用的加密库,适用于受限环境。[国际标准委员会]
  • LibTomCrypt - 一个相当全面、模块化和便携式的加密工具包。[WTFPL]
  • mbedTLS - 一个开源、可移植、易于使用、可读且灵活的 SSL 库,以前称为 PolarSSL。[Apache2]网站
  • Nettle - 一个低级加密库。[LGPL]
  • OpenSSL - 一个强大的、商业级的、功能齐全的开源加密库。[阿帕奇]网站
  • retter - 与密码学相关的哈希函数、密码、工具、库和材料的集合。
  • s2n - TLS/SSL 协议的实现。[阿帕奇]
  • sha1collisionDetection - 用于检测文件中 SHA-1 冲突的库和命令行工具。[麻省理工学院]
  • Tink - 一个多语言、跨平台库,提供安全、易于正确使用且难以误用的加密 API。[阿帕奇-2.0]
  • Tiny AES in C - C 语言中的小型便携式 AES128/192/256。 [公共领域]
  • Themis - 用于无痛数据安全的加密库,为移动和服务器平台提供对称和非对称加密、具有前向保密性的安全套接字。[阿帕奇2]
  • HEhub - 同态加密及其应用程序的库。[阿帕奇2]

CSV

用于解析逗号分隔值 (CSV) 文件的库

  • commata - 只是另一个仅标头的 C++17 CSV 解析器。[无执照]
  • csv2 - 适用于现代 C++ 的快速 CSV 解析器。[麻省理工学院]
  • Csv::Parser - 用 C++17 编写的编译时和运行时 CSV 解析器。[Zlib]
  • Fast C++ CSV Parser - 小型、易于使用且快速的仅标头库,用于读取 CSV 文件。[BSD-3 条款]
  • Glaze - 高性能、仅标头、具有反射支持的 CSV 库。[麻省理工学院]
  • lazycsv - 适用于现代 C++ 的快速、轻量级单头 csv 解析器。[麻省理工学院]
  • ssp - 一个仅标头的“csv”解析器,它快速且通用,具有现代 C++ API。[麻省理工学院]
  • Vince 的 CSV 解析器- 一个快速、独立、流式 C++17 CSV 解析器,具有可选的类型转换和统计信息。[麻省理工学院]

数据库

数据库库、SQL Server、ODBC 驱动程序和工具

  • ClickHouse - ClickHouse DBMS 的 C++ 客户端. [阿帕奇2]
  • DuckDB - 进程内 SQL OLAP 数据库管理系统。[麻省理工学院]
  • hiberlite - sqlite3 的 C++ 对象关系映射. [BSD]
  • Hiredis - Redis 数据库的简约 C 客户端库。[BSD]
  • Kvrocks - 一个分布式键值NoSQL数据库,使用RocksDB作为存储引擎,兼容Redis协议。[阿帕奇2]
  • LevelDB - Google 编写的快速键值存储库,提供从字符串键到字符串值的有序映射。[BSD]
  • libpqxx - PostgreSQL 的官方 C++ 客户端 API。[BSD-3 条款]
  • LMDB - 非常快速的嵌入式键/值存储,具有完整的 ACID 语义。[OpenLDAP]
  • LMDB++ - LMDB 嵌入式数据库库的 C++11 包装器。[公共区域]
  • MongoDB C Driver - 用于 C 的 MongoDB 客户端库。 [Apache2]
  • MongoDB C++ Driver - MongoDB 的 C++ 驱动程序。[阿帕奇2]
  • MongoDB Libbson - 一个 BSON 实用程序库。[阿帕奇2]
  • MySQL++ - MySQL C API 的 C++ 包装器。[LGPL]
  • nanodbc - 原生 C ODBC API 的小型 C++ 包装器。[麻省理工学院]
  • ODB - 用于 C++ 的开源、跨平台和跨数据库对象关系映射 (ORM) 系统。[GPLv2]
  • redis3m -hiredis的包装器,具有干净的 C++ 接口,支持哨兵和随时可用的模式。[阿帕奇2]
  • RocksDB - 嵌入式键值存储,用于来自 facebook 的快速存储。[BSD]
  • SimDB - 高性能、共享内存、无锁、跨平台、单文件、最小依赖、C++11 键值存储。[阿帕奇2]
  • SOCI - C++ 的数据库抽象层。[促进]
  • Speedb - 社区主导的项目:符合 RocksDB 的高性能可扩展嵌入式键值存储。[阿帕奇2]
  • SQLite - 一个完全嵌入式、功能齐全的关系数据库,大小只有 10 万,您可以将其直接包含到您的项目中。[公共区域]
  • SQLiteC++ - SQLiteC++ (SQLiteCpp) 是一个智能且易于使用的 C++ SQLite3 包装器。[麻省理工学院]
  • sqlite_modern_cpp - sqlite 库的仅标头 C++14 包装器。[麻省理工学院]
  • sqlite_orm - 用于现代 C++ 的 SQLite ORM 仅轻标头库. [AGPL + 付费 MIT]
  • sqlpp11 - 一种类型安全的嵌入式域特定语言,用于 C++ 中的 SQL 查询和结果。[BSD-2 条款]
  • TileDB - 快速密集和稀疏多维数组 DBMS。[麻省理工学院]网站
  • TinyORM - 现代 C++ ORM 库。[麻省理工学院]网站
  • UnQLite - 一个独立、无服务器、零配置、事务性 NoSQL 引擎。[BSD-2-条款]网站
  • upscaledb - 具有内置查询接口的嵌入式“类型化”键/值存储。[GPLv3]
  • TigerBeetleDB C++ 客户端(社区) - TigerBeetle 是一个财务会计数据库,专为任务关键安全性和性能而设计,为金融服务的未来提供动力。[BSL-1.0]
  • Velox - 一个 C++ 矢量化数据库加速库,旨在优化查询引擎和数据处理系统。[Apache-2.0]网站

数据可视化

数据可视化库

调试

调试库、内存泄漏和资源泄漏检测、单元测试

  • back-cpp - 一个漂亮的 C++ 堆栈跟踪漂亮打印机。[麻省理工学院]
  • benchmark - Google 提供了小型微基准支持库。[阿帕奇2]
  • Boost.Test - Boost 测试库。[提升]网站
  • check - Check 是 C 的单元测试框架。 [LGPL-2.1]网站
  • doctest - 最轻的功能丰富的 C++ 单头测试框架。[麻省理工学院]
  • Catch2 - 用于单元测试、TDD 和 BDD 的现代 C++ 原生测试框架。[促进]
  • Celero - C++ 基准测试框架。[阿帕奇2]
  • CppUTest - C/C++ 的单元测试和模拟框架。[BSD-3 条款]
  • 可爱- C++ 单元测试更容易。[LGPL3]
  • CMocka - C 单元测试框架,支持模拟对象。[阿帕奇2]
  • CppBenchmark - C++ 性能基准框架,具有纳秒测量精度。[麻省理工学院]
  • Cpptrace - 一个简单、可移植且独立的 C++ 堆栈跟踪库,支持 C++11 及更高版本。[麻省理工学院]
  • CppUnit - JUnit 的 C++ 端口。[LGPL2]
  • CTest - CMake 测试驱动程序。[BSD]
  • dbg-macro - C++ 的 dbg(…) 宏. [麻省理工学院]
  • DebugViewPP - 调试日志查看器。[促进]
  • Deleaker - 资源泄漏检测工具,包括内存、GDI 和句柄泄漏。
  • FakeIt - C++ 的简单模拟框架。[麻省理工学院]
  • fff - 用于创建假 C 函数的微框架。[麻省理工学院]
  • Google Mock - 用于编写和使用 C++ 模拟类的库。[BSD]
  • Google Test - Google C++ 测试框架。[BSD]
  • ig-debugheap - 多平台调试堆可用于跟踪内存错误。[BSD]
  • libtap - 用 C 编写测试。 [GPL2]
  • microprofile - 具有适用于多个平台的网络视图的分析器。[无执照]
  • MinUnit - 一个最小的 C 单元测试框架,独立于单个头文件中。[麻省理工学院]
  • Mockator - 用于 C++ Seams 和 Mock 对象的 Eclipse CDT 插件。
  • nanobench - 适用于 C++11/14/17/20 的简单、快速、准确的单标头微基准测试功能。[麻省理工学院]网站
  • Nanotimer - 一个简单的低开销跨平台计时器类,用于基准测试。[zLib]网站
  • Nonius - C++ 微基准测试框架。[抄送]
  • Remotery - 带 Web 查看器的单个 C 文件分析器。[阿帕奇2]
  • snitch - 轻量级 C++20 测试框架。[促进]
  • Touca - 您可以自行托管的开源回归测试系统。[Apache2]网站
  • UnitTest++ - C++ 的轻量级单元测试框架。[MIT/X 联盟许可证]
  • Unity - C 的简单单元测试。 [麻省理工学院]
  • utest.h - C 和 C++ 的单标头单元测试框架。[无执照]
  • μt - C++20 单头文件/单模块,无宏 μ(micro)/单元测试框架。[促进]
  • VLD——视觉检漏仪。适用于 Visual C++ 的免费、强大、开源内存泄漏检测系统。

文档

  • Doxy - 现代 C++ 的现代文档,使用 YAML 配置,输出 Markdown。[阿帕奇2.0]网站
  • doxygen ⚡ - 用于从带注释的 C++ 源生成文档的事实上的标准工具。[GPL2]网站
  • doxyrest - 从 Doxygen XML 到 Sphinx 的 reStructuredText 的编译器. [麻省理工学院]
  • hdoc - C++ 的现代文档工具。[AGPL/专有]网站
  • Natural Docs - Natural Docs 是一种适用于多种编程语言的开源文档生成器。[AGPL/专有]网站
  • Sphinx - Sphinx 可以轻松创建智能且美观的文档。[BSD-2-条款]网站

数字信号处理器

数字信号处理。

  • DSPFilters - 用于数字信号处理的有用 C++ 类的集合。[麻省理工学院]
  • FFTW - 用于计算一维或多维 DFT 的 AC 库。[通用公共许可证]
  • iir1 - IIR 实时 C++ 滤波器库。[麻省理工学院]
  • Kissfft - 一个快速傅里叶变换(FFT)库,试图保持简单、愚蠢。[BSD-3 条款]
  • pocketfft - 基于 FFTPack 的 FFT 实现,但有一些改进。[BSD-3 条款]
  • wavelib - 一维和二维小波变换的 C 实现。[BSD-3 条款]

字体

用于解析和操作字体文件的库。

  • Fontconfig - 字体配置和自定义库。[麻省理工学院]网站
  • FreeType - FreeType 是一个免费提供的软件库,用于渲染字体。[FTL 和 GPLv2]
  • otfcc - 用于解析和写入 OpenType 字体文件的 AC 库和实用程序。[阿帕奇-2.0]
  • harfbuzz - 文本整形引擎。[老麻省理工学院]
  • libschrift - 一个轻量级的 TrueType 字体渲染库。[国际标准委员会]

游戏引擎

  • Acid - 高速 C++17 Vulkan 游戏引擎。[麻省理工学院]
  • Allegro - 一个主要针对视频游戏和多媒体编程的跨平台库。[zlib]
  • Cocos2d-x - 用于构建 2d 游戏、交互式书籍、演示和其他图形应用程序的多平台框架。[麻省理工学院]
  • Corange - 用纯 C、SDL 和 OpenGL 编写的游戏引擎。[BSD]
  • Crown - Crown 是一个通用数据驱动游戏引擎,采用正统 C++ 从头开始​​编写,秉承简约和面向数据的设计理念。[麻省理工学院]
  • delta3d - 一个强大的模拟平台。[LGPL2]
  • EnTT - 游戏与现代 C++ 的结合。[麻省理工学院]
  • GamePlay - 一个跨平台的原生 C++ 游戏框架,用于创建 2D/3D 移动和桌面游戏。[阿帕奇2]
  • Godot - 一款功能齐全、开源、麻省理工学院许可的游戏引擎。[麻省理工学院]
  • Grit - 构建免费游戏引擎以实现开放世界 3D 游戏的社区项目。[麻省理工学院]
  • Halley - 用 C++14 编写的轻量级游戏引擎,具有“真正的”实体组件系统。[阿帕奇2.0]
  • JNGL - 适用于 Linux、Windows、macOS、Android、iOS、Xbox、Nintendo Switch 和 Web 的 2D 库。[zlib]网站
  • KlayGE - 一个跨平台开源游戏引擎,具有基于插件的架构。[GPLv2]网站
  • nCine - 一个跨平台 2D 游戏引擎,强调性能,用 C++11 编写,也可以选择用 Lua 编写脚本。[麻省理工学院]网站
  • o3de - 基于 Amazon Lumberyard 的开源、实时、多平台 3D 引擎。[Apache2]网站
  • OpenXRay - STALKER 游戏系列中使用的社区修改的 X-Ray 引擎。[修改版 BSD/仅限非商业]
  • Oxygine - 跨平台 2D C++ 游戏引擎。[麻省理工学院]
  • Panda3D - 游戏引擎,Python 和 C++ 程序的 3D 渲染和游戏开发框架。[修改BSD]网站
  • PixelGameEngine - olcPixelGameEngine 的官方发行版,javidx9 的 YouTube 视频和项目中使用的工具。[OLC3]
  • Polycode - C++ 创意代码的跨平台框架(带有 Lua 绑定)。[麻省理工学院]网站
  • quakeforge - 积极维护原始 Quake 引擎代码的分支,经过 20 多年的开发。[GPL-2.0]
  • raylib - 一个简单易用的库,可以享受视频游戏编程。[zlib/libpng]网站
  • Spring - 一个强大的免费跨平台 RTS 游戏引擎。[GPLv2/GPLv3]网站
  • Torque2D - 专为 2D 游戏开发而构建的开源跨平台 C++ 引擎。[麻省理工学院]网站
  • Torque3D - 专为 3D 游戏开发而构建的开源 C++ 引擎。[麻省理工学院]网站
  • toy 引擎- toy 是一个轻薄的模块化 C++ 游戏引擎,提供简单而富有表现力的 C++ 习惯用法,可以快速迭代地设计全功能的 2D 或 3D 游戏。
  • Urho3D - 用 C++ 实现的免费轻量级、跨平台 2D 和 3D 游戏引擎。深受 OGRE 和 Horde3D 的启发。[麻省理工学院]
  • ezEngine - 是一个用 C++ 编写的免费开源游戏引擎。它的理念是模块化和灵活,这样它就可以适应许多不同的用例。[麻省理工学院]网站

图形

  • CXXGraph - 用于表示和算法执行的免费 C++(17) 仅图形头库。[AGPL-3.0]
  • Graaf - 通用轻量级 C++20 图形库。[麻省理工学院]网站

图形用户界面

图形用户界面

  • Boden - 本机、移动、跨平台 GUI 框架。[GPL/LGPL/专有]网站
  • CEGUI - 灵活的跨平台 GUI 库。
  • Elements - 轻量级、细粒度、独立于分辨率的模块化 GUI 库。[麻省理工学院]
  • FLTK - 快速、轻便、跨平台 C++ GUI 工具包。[LGPL2]
  • FOX Toolkit - 一个开源、跨平台的小部件工具包。[LGPL]
  • GacUI - GPU 加速 C++ 用户界面,具有所见即所得开发工具、XML 支持、内置数据绑定和 MVVM 功能。[PL女士]
  • GTK+ - 用于创建图形用户界面的多平台工具包。[LGPL]
  • gtkmm - 流行的 GUI 库 GTK+ 的官方 C++ 接口。[LGPL]
  • imgui - 具有最小依赖性的立即模式图形用户界面。[麻省理工学院]
  • implot -imgui 的立即模式绘图小部件. [麻省理工学院]
  • iup - 用于构建图形用户界面的多平台工具包。[麻省理工学院]
  • libui - C 语言的简单且可移植(但并非不灵活)的 GUI 库,使用其支持的每个平台的本机 GUI 技术。[麻省理工学院]
  • MyGUI - 快速、灵活且简单的 GUI。[麻省理工学院]
  • nana - Nana 是一个用于现代 C++ 风格的 GUI 编程的跨平台库。[促进]
  • NanoGui - 适用于 OpenGL 3.x 或更高版本的简约跨平台小部件库。[BSD]
  • nuklear - 单头 ANSI C gui 库。[公共区域]
  • QCustomPlot - Qt 绘图小部件,没有进一步的依赖项。[GPLv3]
  • Qwt - 用于技术应用程序的 Qt 小部件。[基于 LGPL 拥有]
  • QwtPlot3D - 一个功能丰富的基于 Qt/OpenGL 的 C++ 编程库,本质上提供了一堆 3D 小部件。[zlib]
  • RmlUi - HTML/CSS 用户界面库的发展。libRocket 的分叉。[麻省理工学院]
  • Sciter - Sciter 是一个嵌入式 HTML/CSS/脚本引擎,旨在用作现代桌面应用程序的 UI 层。[免费/商业]
  • Slint - 适用于桌面和嵌入式的轻量级 GUI 工具包。[GPL/免费/专有]网站
  • TGUI - 跨平台现代 C++ GUI。[Zlib]网站
  • wxWidgets - 一个 C++ 库,允许开发人员使用单一代码库创建适用于 Windows、Mac OS X、Linux 和其他平台的应用程序。[拥有LGPL]
  • xtd - 现代 C++17/20 框架,用于在 Windows、macOS、Linux、iOS 和 android 上创建控制台(CLI)、表单(像 WinForms 的 GUI)和 tunit(像 Microsoft 单元测试框架这样的单元测试)应用程序。[麻省理工学院]
  • Yue - 用于创建本机跨平台 GUI 应用程序的库。[LGPLv2]

图形

  • assimp - 开放资产导入库(assimp)是一个跨平台的 3D 模型导入库,旨在为不同的 3D 资产文件格式提供通用的 API。[BSD-3-条款]网站
  • bgfx - 跨平台渲染库。[BSD]
  • Blend2D - 由 JIT 编译器提供支持的 2D 矢量图形引擎。[Zlib]网站
  • Cairo - 支持多种输出设备的 2D 图形库。[LGPL2 或 Mozilla MPL]
  • C-Turtle - 一个仅包含 C++11 头文件的海龟图形库,充当 CImg 包装器。[麻省理工学院]
  • Diligent Engine - 现代跨平台低级 3D 图形库。[阿帕奇2]
  • DirectXTK - 用于用 C++ 编写 DirectX 11.x 代码的帮助程序类的集合。[麻省理工学院]
  • GLFW - 一个简单的跨平台 OpenGL 处理库。[zlib/libpng]
  • GLFWPP - GLFW 的精简现代 C++17 仅标头包装器。[麻省理工学院]
  • Harfang 3D 3D 可视化库可用于 C++、Python、Lua 和 Go。基于BGFX。[GPLv3/LGPLv3/专有]网站
  • herebedragons - 使用各种引擎、框架或 API 实现的基本 3D 场景。[麻省理工学院]网站
  • Horde3D - 一个小型 3D 渲染和动画引擎。[英超]
  • Ion - 一组小型且高效的库,用于构建使用 3D 图形的跨平台客户端或服务器应用程序。[Apache2]网站
  • Irrlicht - 用 C++ 编写的高性能实时 3D 引擎。[zlib]
  • libigl - 简单的 C++ 几何处理库。[MPL2]
  • LLGL - 低级图形库 (LLGL) 是现代图形 API 的薄抽象层。[BSD-3 条款]
  • LunaSVG - C++ 中的独立 SVG 渲染库。[麻省理工学院]
  • magnum - 用于游戏和数据可视化的轻量级模块化 C++11/C++14 图形中间件。[麻省理工学院]网站
  • micro-gl - 实时、可嵌入、仅标头 C++11 CPU 矢量图形。无需 STD 库、无需 FPU 和 GPU。[定制]网站
  • NanoVG - OpenGL 之上的抗锯齿 2D 矢量绘图库,用于 UI 和可视化。[Zlib]
  • Ogre 3D ⚡ - 用 C++ 编写的面向场景、实时、灵活的 3D 渲染引擎(而不是游戏引擎)。[麻省理工学院]网站
  • OpenSceneGraph - 开源高性能 3D 图形工具包。[OSGPL]
  • OpenSubdiv - Pixar 的库,用于在 CPU 和 GPU 上评估和渲染细分曲面。[修改的Apache2]
  • OpenVDB - 用于存储、编辑和渲染体积数据集的库和工具。[MPL2]
  • Panda3D - Python 和 C++ 的 3D 渲染和游戏开发框架。[BSD]
  • Partio - 用于整理粒子数据的库,支持最常见的文件格式。[修改BSD]
  • Skia - 用于绘制文本、几何图形和图像的完整 2D 图形库。[BSD]网站
  • ThorVG - 一个独立于平台的便携式库,允许绘制基于矢量的场景和动画,包括 SVG 和 Lottie。[麻省理工学院]网站
  • TinySpline - 一个小型但功能强大的 ANSI C 库,用于插值、转换和查询任意 NURBS、B-Splines 和 Bézier 曲线。[麻省理工学院]
  • urho3d - 跨平台渲染和游戏引擎。[许多不同,主要是麻省理工学院]
  • Yocto/GL - 用于数据驱动的基于物理的图形的小型 C++ 库。[麻省理工学院]

图像处理

  • Boost.GIL - 通用图像库。[提升]网站
  • BitmapPlusPLus - 简单快速的仅标头位图 C++ 库。[麻省理工学院]
  • CImg - 一个用于图像处理的小型开源 C++ 工具包。[自己的 LGPL 或 GPL]
  • CxImage - 一个图像处理和转换库,用于加载、保存、显示、转换 BMP、JPEG、GIF、PNG、TIFF、MNG、ICO、PCX、TGA、WMF、WBMP、JBG、J2K 图像。[zlib]
  • Dlib ⚡ - 现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。[提升]网站
  • FreeImage - 一个开源库,支持流行的图形图像格式和当今多媒体应用程序所需的其他格式。[GPL2 或 GPL3]
  • GD - GD 图形库,在 PHP 中广泛用于图像加载/操作和缩略图生成。[自定义许可许可证,需要在用户文档中提及]网站
  • DCMTK - DICOM 工具包。
  • GDCM - 草根 DICOM 库。
  • ITK - 用于图像分析的开源跨平台系统。[ITK 4.0 的 Apache2]
  • Leptonica - Leptonica 是一个开源库,包含对图像处理和图像分析应用程序广泛有用的软件。[BSD-2-条款]网站
  • libavif - 用于编码和解码 .avif 文件的库。[BSD-2 条款]
  • libfacedetection - 用于图像中人脸检测的开源库。人脸检测速度可达1500FPS。[BSD]
  • libjpeg-turbo - 一种 JPEG 图像编解码器,使用 SIMD 指令来加速基线 JPEG 编码和解码。[IJG & BSD-3-Clause & zlib]网站
  • libjxl - JPEG XL 图像格式参考实现。[BSD-3 条款]
  • libspng - 简单、现代的 libpng 替代方案。[BSD-2]网站
  • libvips - 内存需求低的快速图像处理库。[LGPL]网站
  • LodePNG - C 和 C++ 中的 PNG 编码器和解码器。[Zlib]
  • Magick++ - C++ 的 ImageMagick 程序接口。[阿帕奇2]
  • MagickWnd - C 语言的 ImageMagick 程序接口。 [Apache2]
  • MozJPEG - 改进的 JPEG 编码器。[BSD/BSD-3-条款/ZLIB]
  • OpenCV ⚡ - 开源计算机视觉。[Apache2]网站
  • OpenEXR - 用于高动态范围成像的跨平台库。[修改后的BSDF]
  • OpenImageIO - 强大的图像和纹理整理库,支持多种常见的有损和 RAW 格式。[修改BSD]
  • SAIL - 易于使用的跨平台图像解码库,具有可插入图像编解码器。[麻省理工学院]
  • Simd - 使用 SIMD 的 C++ 图像处理库:SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX-512、VMX(Altivec) 和 VSX(Power7)、NEON for ARM。[麻省理工学院]
  • stb-image - STB 单头图像加载库。[公共区域]
  • tesseract-ocr - OCR 引擎。[阿帕奇2]
  • TinyEXIF - 用于 JPEG 的小型 ISO 兼容 C++ EXIF 和 XMP 解析库. [麻省理工学院]
  • Video++ - C++14 高性能视频和图像处理库。[麻省理工学院]
  • VIGRA - 用于图像分析的通用 C++ 计算机视觉库。[麻省理工学院X11]
  • VTK - 用于 3D 计算机图形、图像处理和可视化的开源、免费软件系统。[BSD]

国际化

  • gettext - GNU 'gettext'. [GPL2]
  • IBM ICU - 一组提供 Unicode 和全球化支持的 C/C++ 和 Java 库。[重症监护病房]
  • libiconv - 不同字符编码之间的编码转换库。[通用公共许可证]
  • simdutf - Unicode 例程(UTF8、UTF16、UTF32):使用 SSE2、AVX2、NEON、AVX-512 每秒处理数十亿个字符。[阿帕奇-2/麻省理工学院]
  • uni-algo - C/C++ 的 Unicode 算法实现。[无许可证或 MIT]
  • utf8.h - 用于 C 和 C++ 的单标头 utf8 字符串函数。[无执照]
  • utf8proc - 用于处理 UTF-8 Unicode 数据的干净 C 库。[麻省理工学院]

进程间通信

  • Apache Thrift - 高效的跨语言 IPC/RPC,可在 C++、Java、Python、PHP、C# 和许多其他语言之间工作。最初由 Facebook 开发。[阿帕奇2]
  • Boost.Interprocess - 仅标头的 Boost 库,支持内核级共享内存和内存映射文件,具有内置同步机制(信号量、互斥体等)。[提升]网站
  • Cap'n Proto - 快速数据交换格式和基于功能的 RPC 系统。[麻省理工学院]网站
  • eCAL - Pub/sub、客户端/服务器、C++/Python/C#、各种消息协议(protobuf、capnproto ..)。[Apache2]网站
  • gRPC - 一个高性能、开源、通用的 RPC 框架。[BSD]网站
  • Ice - 综合 RPC 框架,支持 C++、C#、Java、JavaScript、Python 等。[GPLv2]
  • Iceoryx - 适用于安全关键系统的真正零拷贝进程间通信框架,具有 C、Rust 绑定。运行在 Linux、QNX、Windows、Mac OS、FreeBSD 上。[Apache2]网站
  • libjson-rpc-cpp - 用于 C++ 服务器和客户端的 JSON-RPC 框架。[麻省理工学院]
  • nanomsg - 几个“可扩展性协议”的简单高性能实现。[麻省理工学院]网站
  • nng - nanomsg-next- Generation,一个轻量级无代理消息传递库。[麻省理工学院]网站
  • rpclib - 现代 C++ msgpack-RPC 服务器和客户端库。[麻省理工学院]
  • simple-rpc-cpp - C/C++ 函数的简单 RPC 包装生成器。[BSD]
  • SRPC - 一个轻量级的 RPC 系统,支持多种协议和 OpenTelemetry。[阿帕奇2]
  • WAMP - 提供 RPC 和 pub/sub 消息传递模式。(各种实现,各种语言)
  • xmlrpc-c - 基于 XML 和 HTTP 的轻量级 RPC 库。[BSD]

JSON

  • Boost.PropertyTree - 属性树解析器/生成器,可用于解析 XML/JSON/INI/Info 文件。[提升]网站
  • cJSON - ANSI C 中的超轻量级 JSON 解析器。 [MIT]
  • DAW JSON Link - 在 C++ 中快速、方便的 JSON 序列化和解析。[BSL-1.0]
  • freeze - C/C++ 的 JSON 解析器和生成器。[GPL 和 GPL2]
  • Glaze - 速度极快,在内存中,JSON 和现代 C++ 的接口库。[麻省理工学院]
  • Jansson - 用于编码、解码和操作 JSON 数据的 C 库。[麻省理工学院]
  • jbson - jbson 是一个用于在 C++14 中构建和迭代 BSON 数据和 JSON 文档的库. [促进]
  • JeayeSON - 一个非常健全的(仅标头)C++ JSON 库。[BSD]
  • Jsmn - C 语言的简约 JSON 解析器。 [MIT]
  • json ⚡ - 现代 C++ 的 JSON. [麻省理工学院]网站
  • JSON++ - C++ 中的 JSON 解析器。[麻省理工学院]
  • json.h - 一种简单的单标头/单源解决方案,用于在 C 和 C++ 中解析 JSON。[无执照]
  • json-build -C89 小型零分配 JSON 序列化器。[麻省理工学院]
  • json-c - C 中的 JSON 实现。 [MIT]
  • jsoncons - 一个 C++ 标头库,用于 JSON 和类似 JSON 的二进制格式,包含 JSONPointer、JSONPatch、JSONPath 和 JMESPath。[促进]
  • JsonCpp - 用于与 JSON 交互的 C++ 库。[麻省理工学院]
  • Jsonifier - 一些用于从 JSON 解析和序列化对象的类 - 非常快。[麻省理工学院]
  • jsonParse - ANSI C 中的简单 JSON 解析器。 [MIT]
  • json-parser - 用便携式 ANSI C 编写的占用空间非常小的 JSON 解析器。 [BSD]
  • json11 - C++11 的小型 JSON 库。[麻省理工学院]
  • json-struct - 高性能、单头 JSON 解析器解析 C++ 结构和从 C++ 结构解析。[麻省理工学院]
  • json-voorhees - C++ 的 JSON 库. 支持 C++11。无依赖性、快速且对开发人员友好。[阿帕奇2]
  • jute - 非常简单的 C++ JSON 解析器。[公共区域]
  • libjson - C 语言的 JSON 解析器和打印机库。易于与任何模型集成。[LGPL]
  • libjson - 轻量级 JSON 库。[?]
  • LIBUCL ⚡ - 通用配置库解析器。[BSD-2 条款]
  • parson -Parson 是一个用 C 编写的轻量级 json 库。 [MIT]
  • PicoJSON - C++ 中的仅头文件、JSON 解析器序列化器。[BSD]
  • qt-json - 一个简单的类,用于将 JSON 数据解析为 QVariant 层次结构,反之亦然。[GPLv3]
  • QJson - 一个基于 qt 的库,可将 JSON 数据映射到 QVariant 对象。[LGPL2]
  • RapidJSON ⚡ - 用于 C++ 的快速 JSON 解析器/生成器,具有 SAX/DOM 风格的 API。[麻省理工学院]网站
  • sajson - 适用于 C++11 的轻量级、高性能 JSON 解析器。[麻省理工学院]
  • simdjson - 极其快速的 JSON 库,每秒可以解析 GB 的 JSON。[阿帕奇-2.0]
  • Sonic-Cpp - 一个快速 JSON 序列化和反序列化库,由 SIMD 加速。[阿帕奇-2.0]
  • taoJSON - 零依赖 C++ 标头 JSON 库。[麻省理工学院]
  • ujson - µjson 是一个小型的 C++11、UTF-8、JSON 库。[麻省理工学院]
  • UltraJSON - 用 C 编写的超快速 JSON 解码器和编码器。 [BSD-3-Clause]
  • YAJL - C 语言的快速流式 JSON 解析库。 [ISC]
  • yyjson - 用 ANSI C 编写的高性能 JSON 库。 [MIT]

记录

  • Blackhole - 基于属性的日志记录框架,旨在快速、模块化和高度可定制。[麻省理工学院]
  • Boost.Log - 设计得非常模块化和可扩展。[提升]网站
  • Easylogging++ - 适用于 C++11(或更高版本)应用程序的极轻量级高性能日志记录库。[麻省理工学院]
  • fmtlog - 一个高性能的 fmtlib 风格的日志库,延迟为纳秒级。[麻省理工学院]
  • G3log - 具有动态接收器的异步记录器。[公共区域]
  • glog - Google 日志记录模块的 C++ 实现。
  • haclog - 一个极其快速的纯 C 日志库。[麻省理工学院]
  • Log4cpp - 一个 C++ 类库,用于灵活记录到文件、系统日志、IDSA 和其他目的地。[LGPL]
  • log4cplus - 一个简单易用的 C++ 日志记录 API,提供对日志管理和配置的线程安全、灵活和任意粒度的控制。[BSD 和 Apache2]
  • loguru - 一个轻量级 C++ 日志库。[公共区域]
  • lwlog - 非常快速的同步和异步 C++17 日志记录库。[麻省理工学院]
  • plog - 不到 1000 行代码的可移植且简单的 C++ 日志。[MPL2]
  • reckless - 用于 C++ 的低延迟、高吞吐量、异步日志记录库。[麻省理工学院]
  • spdlog - 超快、仅标头、C++ 日志库。
  • templog - 一个非常小且轻量级的 C++ 库,您可以使用它向 C++ 应用程序添加日志记录。[促进]
  • P7Baical - 一个开源跨平台库,用于以最少的 CPU 和内存使用量高速发送遥测和跟踪数据。[LGPL]
  • Quill - 异步跨平台低延迟日志记录库。[麻省理工学院]

机器学习

  • Caffe - 神经网络的快速框架。[BSD]
  • CCV - 基于 C/缓存/核心计算机视觉库,现代计算机视觉库。[BSD]
  • darknet - 用 C 和 CUDA 编写的开源神经网络框架。[公共领域]网站
  • Dlib ⚡ - 现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。[提升]网站
  • Fido - 用于嵌入式电子和机器人的高度模块化 C++ 机器学习库。[麻省理工学院]网站
  • flashlight - 来自 Facebook AI Research 的快速、灵活的机器学习库,完全用 C++ 编写,基于 ArrayFire 张量库。[BSD-3-条款]网站
  • libsvm - 一个简单、易于使用、高效的支持向量机库。[BSD-3-条款]网站
  • m2cgen - 一种 CLI 工具,用于将经过训练的经典 ML 模型转换为零依赖的本机 C 代码。[麻省理工学院]
  • MeTA - 现代 C++ 数据科学工具包。[麻省理工学院]网站
  • Minerva - 快速灵活的深度学习系统。[阿帕奇2]
  • mlpack - 一个可扩展的 C++ 机器学习库。[LGPLv3]网站
  • OpenCV ⚡ - 开源计算机视觉库。[BSD]网站
  • oneDAL - 一个强大的机器学习库,有助于加速大数据分析。[阿帕奇]
  • ONNX 运行时- 用于训练和推理 ONNX 模型的 C 和 C++ 库。ONNX 是 AI 模型可以转换为的标准,无论它们使用什么库进行训练。[麻省理工学院]网站
  • Recommender - 使用协作过滤 (CF) 进行产品推荐/建议的 C 库。[BSD]
  • RNNLIB -RNNLIB 是一个用于序列学习问题的循环神经网络库。[GPLv3]
  • SHOGUN - 将军机器学习工具箱。[GPLv3]
  • sofia-ml - 用于机器学习的快速增量算法套件。[阿帕奇2]
  • VLFeat - VLFeat 开源库实现了流行的计算机视觉算法,专门从事图像理解和局部特征提取和匹配。[BSD-2-条款]网站
  • xgboost - 可扩展、可移植和分布式梯度提升(GBDT、GBRT 或 GBM)库,适用于 Python、R、Java、Scala、C++ 等。可在单机、Hadoop、Spark、Flink 和 DataFlow 上运行。[阿帕奇2]
  • ncnn - 针对移动平台优化的高性能神经网络推理计算框架。[BSD]

数学

  • Apophenia - 用于统计和科学计算的 AC 库。[GPL2]
  • Armadillo - 用于线性代数和科学计算的快速 C++ 库。[Apache2]网站
  • autodiff - 一个现代、快速且富有表现力的 C++ 库,用于自动微分。[麻省理工学院]网站
  • blaze - 用于密集和稀疏算术的高性能 C++ 数学库。[BSD]
  • Boost.Multi precision - 在 C++ 中提供更高范围/精度的整数、有理数和浮点类型,仅标头或带有 GMP/MPFR/LibTomMath 后端。[提升]网站
  • ceres-solver - 来自 google 的用于建模和解决大型复杂非线性最小二乘问题的 C++ 库。[BSD]
  • CGAL - 高效可靠的几何算法的集合。[LGPL&GPL]网站
  • cml - 用于游戏和图形的免费 C++ 数学库。[促进]
  • CNL - C++ 的组合数值库。[促进]
  • DirectXMath - 用于游戏和图形应用程序的全内联 SIMD C++ 线性代数库。
  • Dlib ⚡ - 现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。[提升]网站
  • Eigen - 用于线性代数、矩阵和向量运算、数值求解器和相关算法的高级 C++ 模板头库。[MPL2]
  • ExprTk - C++ 数学表达式工具包库 (ExprTk) 是一个易于使用、易于集成且极其高效的运行时数学表达式解析器和评估引擎。[麻省理工学院]
  • Geometric Tools - 用于数学、图形、图像分析和物理领域计算的 C++ 库。[提升]网站
  • GLM - 仅标头的 C++ 数学库,与 OpenGL 的 GLSL 数学匹配并互操作。[麻省理工学院]网站
  • GMTL - 图形数学模板库是以通用方式实现图形基元的工具集合。[GPL2]
  • GMP - 用于任意精度算术的 AC 库,可对有符号整数、有理数和浮点数进行操作。[LGPL3 和 GPL2]
  • Klein - 一个快速、SIMD 优化的 C++17 几何代数库,用于点、线和平面投影、相交、连接、刚体运动等。[麻省理工学院]网站
  • linalg.h - 用于 C++ 的单头、公共域、短向量数学库。[无执照]
  • MatX - 一个 GPU 加速的 C++17 数值计算库,具有类似 MATLAB/Python 的语法。[BSD 3 条款]
  • MIRACL - 多精度整数和有理算术密码库。[AGPL]
  • NumCpp - Python Numpy 库的模板化头文件 C++ 实现。[麻省理工学院]
  • muparser - muParser 是一个用 C++ 编写的可扩展的高性能数学表达式解析器库。[麻省理工学院]
  • LibTomMath - 完全用 C 编写的免费开源便携式数论多精度整数库。 [PublicDomain & WTFPL]网站
  • linmath.h - 一个精益线性数学库,旨在图形编程。[WTFPL]
  • lp_solve - 用于制定和解决线性规划问题的库。[LGPL]网站
  • OpenBLAS - 基于 GotoBLAS2 1.13 BSD 版本的优化 BLAS 库。[BSD 3 条款]网站
  • PCG-rand - PCG 是一系列简单快速、空间高效、统计良好的随机数生成算法。与许多通用 RNG 不同,它们也很难预测。[阿帕奇]
  • QuantLib - 一个免费/开源的定量金融库。[修改BSD]网站
  • StatsLib - 统计分布函数的 C++ 头文件库。[Apache2]网站
  • SymEngine - 快速符号操作库,用 C++ 重写了 SymPy 的核心。[麻省理工学院]
  • TinyExpr - 用于从字符串解析和评估数学表达式的 AC 库。[zlib]
  • Vc - C++ 的 SIMD 向量类。[BSD]
  • Versor - 几何代数的(快速)通用 C++ 库,包括欧几里德、射影、共形、时空等。
  • Wykobi - 一个高效、强大且易于使用的面向 C++ 2D/3D 的计算几何例程的 C++ 库。[麻省理工学院]
  • xtensor - 受 NumPy 语法启发,用于使用多维数组表达式进行数值分析的 C++14 库。[BSD 3 条款]网站
  • universal - 实现任意位置算术的 C++14 仅头文件库。正数系统是一种比 IEEE 浮点更高效的锥形浮点。假设使可重复的计算科学成为可能。[麻省理工学院许可证]

内存分配

  • Boehm GC - 用于 C 和 C++ 的保守垃圾收集器。[类似于X11]网站
  • C 智能指针- (GNU) C 编程语言的智能指针。[麻省理工学院]
  • Hoard - 适用于 Linux、Windows 和 Mac 的快速、可扩展且内存高效的 Malloc。[Apache-2.0]网站
  • jemalloc - 通用 malloc(3) 实现,强调避免碎片和可扩展并发支持。[BSD]网站
  • memory - STL 兼容的 C++ 内存分配器库。[Z库]
  • 内存分配器- 自定义内存分配器,以提高动态内存分配的性能。[麻省理工学院]
  • mimalloc - 具有出色性能的紧凑型通用分配器。[麻省理工学院]
  • rpmalloc - 用 C 实现的跨平台无锁线程缓存 16 字节对齐内存分配器。 [公共领域]
  • snmalloc - 基于消息传递的高性能分配器。[麻省理工学院]
  • TCMalloc - Google 的快速、多线程 malloc 实现。[Apache-2.0]网站
  • buddy_alloc - C 的单头伙伴内存分配器,具有有限的分配成本。[0BSD]
  • tgc - 一个小型的 C 垃圾收集器,用约 500 LOC 编写。[BSD]

多媒体

  • GStreamer - 用于构建媒体处理组件图的库。[LGPL]
  • libass - 适用于 ASS/SSA 字幕格式的便携式字幕渲染器。[国际标准委员会]
  • libav - 用于处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。[LGPL v2.1+ 及其他]网站
  • LIVE555 流媒体- 使用开放标准协议(RTP/RTCP、RTSP、SIP)的多媒体流媒体库。[LGPL]
  • libVLC -libVLC(VLC SDK)媒体框架。[通用公共许可证]
  • MediaInfoLib - 方便地统一显示视频和音频文件最相关的技术和标签数据。[BSD]
  • QtAv - 基于 Qt 和 FFmpeg 的多媒体播放框架,可以轻松编写播放器。[LGPL]网站
  • SDL ⚡ - 简单的 DirectMedia 层。[zlib]网站
  • SFML ⚡ - 简单快速的多媒体库。[zlib]网站
  • TagLib - 用于读取和编辑几种流行音频格式的元数据的库。[LGPL/MPL]网站

联网

  • ada - 用现代 C++ 编写的符合 WHATWG 的快速 URL 解析器。[Apache-2.0/麻省理工学院]
  • ACE - C++ 中的 OO 网络编程工具包。[?麻省理工学院?]
  • Boost.Asio ⚡ - 用于网络和低级 I/O 编程的跨平台 C++ 库。[提升]网站
  • Boost.Beast ⚡ - 在 C++11 中基于 Boost.Asio 构建的 HTTP 和 WebSocket. [提升]网站
  • Breep - 基于事件的高级 C++14 对等库。[EUPL-1.1(OSI 批准)]
  • C++ REST SDK - C++ REST SDK(以前称为卡萨布兰卡)。[阿帕奇2]
  • Restbed - C++11 异步 RESTful 框架。[AGPL]
  • Restinio - 一个仅标头的 C++14 库,为您提供嵌入式 HTTP/Websocket 服务器。[BSD]
  • c-ares - 用于异步 DNS 请求的 AC 库。[麻省理工学院]
  • cpp-httplib - 单个文件 C++11 仅标头 HTTP/HTTPS 服务器库。[麻省理工学院]
  • cpp-netlib - 用于高级网络编程的开源库的集合。[促进]
  • cpp-netlib/uri - C++ 的 URI 解析器/构建器库,与 RFC 3986 和 RFC 3987 兼容。 [Boost]
  • CppServer - 超快速、低延迟的异步套接字服务器和客户端 C++ 库,支持 TCP、SSL、UDP、HTTP、HTTPS、WebSocket 协议和 10K 连接问题解决方案。[麻省理工学院]
  • cpr - 一个现代 C++ HTTP 请求库,具有简单但功能强大的界面。模仿 Python Requests 模块。[麻省理工学院]网站
  • curlcpp - CURL(libcurl) 的面向对象的 C++ 包装器。[麻省理工学院]
  • DPDK - 数据平面开发套件、用于快速数据包处理的库和驱​​动程序。[BSD-3-条款和 GPL-2.0]网站
  • Dyad.c - C 的异步网络。 [MIT]
  • ENet - 可靠的 UDP 网络库。[麻省理工学院]网站
  • evpp - 使用 TCP/UDP/HTTP 协议的 C++ 高性能网络。[BSD]
  • H2O - 优化的 HTTP 服务器,支持 HTTP/1.x 和 HTTP/2。它也可以用作图书馆。[麻省理工学院]
  • HTTP Parser ⚡ - C 语言的 http 请求/响应解析器。 [MIT]
  • KCP - 一种快速可靠的 ARQ 协议,可帮助应用程序减少网络延迟。[麻省理工学院]
  • libcurl - 多协议文件传输库。[MIT/X 衍生许可证]
  • libhttpserver - 用于创建嵌入式 Rest HTTP 服务器(及更多)的 C++ 库。[LGPL2.1]
  • Libmicrohttpd - GNU libmicrohttpd 是一个小型 C 库,应该可以轻松地将 HTTP 服务器作为另一个应用程序的一部分运行。[LGPL v2.1+]
  • libpcap - 用于捕获网络流量的便携式 C/C++ 库。[BSD]网站
  • libquic - 从 Chromium 的 QUIC 实现中提取的 QUIC 协议库。[BSD]
  • librdkafka - 适用于 C 和 C++ 的 Apache Kafka 客户端库。[BSD-2 条款]
  • libwebsockets - 一个轻量级的纯 C WebSocket 实现,提供客户端和服务器库。[LGPL2.1+静态链接异常]网站
  • Lithium - 无需成为 C++ 专家即可构建高性能 C++ HTTP 服务器。[麻省理工学院]
  • lwIP - 轻量级 TCP/IP 堆栈。[修改BSD]
  • Mongoose - 极其轻量级的网络服务器。[GPL2]
  • MQTT-C - 适用于嵌入式系统和 PC 的便携式 MQTT C 客户端。[麻省理工学院]网站
  • mTCP - 用于多核系统的高度可扩展的用户级 TCP 堆栈。[修改BSD]
  • Muduo - 用于 Linux 中多线程服务器的 C++ 非阻塞网络库。[BSD]
  • nghttp2 - HTTP/2 C 库。[麻省理工学院]网站
  • nghttp3 - 用 C 编写的 HTTP/3 库。 [MIT]网站
  • Onion - C 语言的 HTTP 服务器库,设计轻量且易于使用。[Apache2/GPL2]
  • PF_RING™ - 高速数据包处理框架。[LGPL-2.1]网站
  • PicoHTTPParser - 一个小型、原始、快速的 HTTP 请求/响应解析器。[麻省理工学院]
  • POCO ⚡ - C++ 类库和框架,用于构建在桌面、服务器、移动和嵌入式系统上运行的基于网络和互联网的应用程序。[提升]网站
  • Proxygen - Facebook 的 C++ HTTP 库集合,包括易于使用的 HTTP 服务器。[BSD]
  • RakNet - 面向游戏程序员的跨平台、开源、C++ 网络引擎。[BSD]
  • restclient-cpp - C++ 的简单 REST 客户端。它包装了 HTTP 请求的 libcurl。[麻省理工学院]
  • Seasocks - 简单、小型、C++ 嵌入式网络服务器,支持 WebSockets。[BSD]
  • tlse - 单个 C 文件 TLS 1.2/1.3 实现,使用 tomcrypt 作为加密库 [BSD-2-Clause]
  • Tufão - 一个基于 Qt 构建的 C++ 异步 Web 框架。[LGPL2]
  • uriparser - 严格符合 RFC 3986 的 URI 解析和处理库。[BSD-3 条款]
  • uWebSockets - µWS 是最轻量级、最高效且可扩展的 WebSocket 和 HTTP 服务器实现之一。[Zlib]
  • WAFe - 基于 AC 语言的超轻量软件平台,用于可扩展的服务器端和网络应用程序。想想 C 程序员的 Node.js。[GPL2]
  • Wangle - 用于构建异步、事件驱动的现代 C++ 服务的客户端/服务器应用程序框架。[阿帕奇-2.0]
  • wdt - 一个嵌入式库(和命令行工具),旨在通过多个 TCP 路径在两个系统之间尽可能快地传输数据。[BSD-3 条款]
  • WebSocket++ - 基于 C++/Boost Asio 的 websocket 客户端/服务器库。[BSD]
  • PcapPlusPlus - 多平台 C++ 网络嗅探和数据包解析和制作框架。[无执照]
  • ZeroMQ - 高速、模块化异步通信库。[LGPL3/MPL2]网站

办公室开放 XML

用于解析和操作 xlsx、pptx、docx 等的库。

  • DuckX - 用于创建和修改 Microsoft Word (.docx) 文件的 C++ 库。[麻省理工学院]
  • FreeXL - 一个开源库,用于从电子表格中提取有效数据。[MPL/GPL-2/LGPL-2]
  • libxls - 从 C/C++ 读取二进制 Excel 文件 [BSD-2-Clause]
  • libxlsxwriter - 用于创建 Excel XLSX 文件的 AC 库。[BSD-2-条款]网站
  • OpenXLSX - 用于读取、写入、创建和修改 Microsoft Excel® (.xlsx) 文件的 C++ 库。[BSD-3 条款]
  • SimpleXlsxWriter - 适用于 Microsoft Excel 2007 及更高版本的 XLSX 文件编写器。[zlib]
  • XLSX I/O - 用于读取和写入 .xlsx 文件的 C 库。[麻省理工学院]

PDF

用于解析和操作 PDF 文档的库。

  • libharu - 用于生成 PDF 的免费、跨平台、开源软件库。[zlib]
  • litePDF - 用于创建和编辑 PDF 文档的库,该文档通过设备上下文使用 GDI 函数来绘制页面内容。[LGPL v3 和 zlib]
  • MuPDF - 轻量级 PDF、XPS 和电子书查看器。[AGPL/专有]
  • PDF-Writer - 用于在 C++ 中创建、修改和解析 PDF 文件的高性能库 [Apache-2.0]网站
  • pdfio - 一个简单的 C 库,用于读取和写入 PDF 文件。[Apache-2]网站
  • PDFium - PDF 生成和渲染库。[BSD-3 条款]
  • PoDoFo - 一个使用 PDF 文件格式的库。[LGPL]
  • Poppler - 基于 xpdf-3.0 代码库的开源多后端 PDF 渲染库。[GPLv2/GPLv3]
  • Xpdf - Xpdf 是一个免费的 PDF 查看器和工具包,包括文本提取器、图像转换器、HTML 转换器等。[GPL v2/GPL v3]
  • DynaPDF - 一个易于使用的 PDF 生成库。[商业的]

物理

动力学模拟引擎

  • Box2D - 游戏的 2D 物理引擎。[类似 BSD]
  • Bullet - 游戏的 3D 物理引擎。[zlib]网站
  • Chipmunk - 一个快速且轻量级的 2D 游戏物理库。[麻省理工学院]网站
  • LiquidFun - 游戏的 2D 物理引擎。[类似 BSD]
  • Newton Dynamics - 物理环境实时模拟的集成解决方案。[zlib]
  • ODE - 开放动力学引擎 - 用于模拟刚体动力学的开源高性能库。[BSD&LGPL]
  • Kratos - 用于构建并行、多学科仿真软件的框架,旨在模块化、可扩展性和高性能。[BSD]网站
  • ofxBox2d -Box2D 的 openFrameworks 包装器. [类似 BSD]
  • PhysX - 由 Nvidia 开发的开源实时物理引擎中间件 SDK,作为 Nvidia GameWorks 软件套件的一部分。[BSD-3 条款]
  • PlayRho - 交互式物理引擎和库。[Zlib]
  • Project Chrono - 开源多物理场仿真引擎。[BSD-3-条款]网站
  • Quantum++ - 现代 C++11 量子计算库。[麻省理工学院]
  • Simbody - 高性能 C++ 多体动力学/物理库,用于模拟铰接式生物力学和机械系统,如车辆、机器人和人体骨骼。[阿帕奇2]
  • SOFA - SOFA 是一个针对实时模拟的开源框架,重点是医学模拟。[LGPL]网站

反射

  • config-loader - 一个 C++17 静态反射框架,从解析配置文件到本机数据结构。[麻省理工学院]
  • Better Enums - 反射枚举(字符串、迭代)。单标头。[BSD]网站
  • clReflect - 使用 clang 的 C++ 反射. [麻省理工学院]
  • CPFG - 用于反射、回调和脚本绑定的 C++03 库。[阿帕奇2]
  • CPP-Reflection - 使用 clang 的 C++ 反射. [麻省理工学院]
  • Easy Reflection - 简单快速的反射 + 序列化解决方案,如 Rust、Java 或 Go 中的解决方案。[阿帕奇]
  • Magic Enum - 仅标头 C++17 库为枚举提供静态反射(到字符串、从字符串、迭代),可使用任何枚举类型,无需任何宏或样板代码。[麻省理工学院]
  • magic_get - 用于用户定义类型的 std::tuple 类似方法,无需任何宏或样板代码。[促进]
  • meta - C++ 中的仅标头、非侵入式且无宏的运行时反射系统。[麻省理工学院]
  • Nameof - 仅标头 C++17 库提供 nameof 宏和函数来获取变量、类型、函数、宏和枚举的简单名称。[麻省理工学院]
  • Ponder - 用于反射的 C++11 库。[麻省理工学院]
  • Reflect-cpp - 通过反射进行序列化,包括从结构中自动检索字段名称。[麻省理工学院]
  • RTTR - 用于反射的 C++11 库。[麻省理工学院]网站
  • TSMP - 用于静态反射的入侵和无宏 C++20 库。它使用 libclang 从源代码中提取反射数据,并通过模板专门化使其可用。[麻省理工学院]
  • Visit_struct - C++ 中结构字段反射的微型库。[促进]
  • Refureku - C++17 运行时反射和代码生成库。[麻省理工学院]

正则表达式

  • CppVerbalExpressions - C++ 正则表达式变得简单。[麻省理工学院]
  • CTRE - 编译时 PCRE(几乎)兼容的正则表达式匹配器。[麻省理工学院]
  • Hyperscan - Hyperscan 是 Intel 的高性能多正则表达式匹配库。提供大量正则表达式(最多数万个)的同时匹配。通常用于 DPI 库堆栈。[BSD]
  • Oniguruma - 一个现代且灵活的正则表达式库,支持各种字符编码。[BSD]
  • PCRE - 受 Perl 中的正则表达式功能启发的正则表达式 C 库。[BSD]
  • PIRE - Yandex 的 Perl 不兼容正则表达式库. 速度非常快(超过 400 MB/s)。[LPGL v3.0]
  • RE2 - 使用自动机理论通过有限状态机进行正则表达式的软件库。[BSD-3 条款]
  • SLRE - 用于 C/C++ 的超轻正则表达式引擎。[GPLv2/专有]
  • sregex - 一个基于非回溯 NFA/DFA 的 Perl 兼容正则表达式引擎库,用于匹配大型数据流。[BSD]

机器人技术

  • MOOS-IvP - 一组开源 C++ 模块,用于在机器人平台(特别是自主海洋车辆)上提供自主性。
  • MRPT - 移动机器人编程工具包。[BSD]
  • PCL - 点云库是一个独立的、大规模的、开放的项目,用于 2D/3D 图像和点云处理。[BSD]网站
  • 机器人库 (RL) - 用于机器人运动学、运动规划和控制的独立 C++ 库。[BSD]
  • RobWork - 用于机器人系统仿真和控制的 C++ 库的集合。[Apache2]网站
  • ROS - 机器人操作系统提供库和工具来帮助软件开发人员创建机器人应用程序。[BSD]
  • Ruckig - 机器人和机器的实时运动生成。[麻省理工学院]网站
  • YARP(又一个机器人平台) - 用于通信和设备接口的库和工具包。[BSD-3-条款]网站

科学计算

  • AMGCL - 一个仅包含头文件的 C++ 库,用于使用代数多重网格求解大型稀疏线性系统。[麻省理工学院]
  • FFTW - 用于计算一维或多维 DFT 的 AC 库。[通用公共许可证]
  • GSL - GNU 科学图书馆。[通用公共许可证]
  • preCICE - 用于分区多物理场模拟(FSI、CHT 等)的耦合库。[LGPL]网站
  • TileDB - 快速密集和稀疏多维数组 DBMS。[麻省理工学院]网站
  • Trilinos - 高性能 PDE 求解器。[BSD]
  • Torch - 一种科学计算框架,广泛支持机器学习算法,将 GPU 放在首位。[BSD-3-条款]网站

脚本编写

  • AngelScript - AngelScript 是一种面向游戏的解释/编译脚本语言。[zlib]
  • Boost.Python - 一个 C++ 库,可实现 C++ 和 Python 编程语言之间的无缝互操作性。[提升]网站
  • cppimport - 直接从 Python 导入 C++ 文件![麻省理工学院]
  • CppSharp - 将 C/C++ API 粘合到高级语言的工具和库。[麻省理工学院]
  • ChaiScript - 一种易于使用的 C++ 嵌入式脚本语言。[BSD]网站
  • ctypes.sh - bash 的外部函数接口。[麻省理工学院]
  • Cython - Cython 是针对 Python 编程语言和扩展 Cython 编程语言(基于 Pyrex)的优化静态编译器。它使得为 Python 编写 C 扩展就像 Python 本身一样简单。[阿帕奇]网站
  • djinni - 用于生成跨语言类型声明和接口绑定的工具。[阿帕奇2]
  • Duktape - 一个占用空间紧凑的嵌入式 Javascript 引擎。[麻省理工学院]网站
  • JavaCpp - Java 和本机 C++ 之间缺失的桥梁。[阿帕奇2]
  • libffi - 一个可移植的外部函数接口库。[麻省理工学院]网站
  • Lua - 用于配置文件和基本应用程序脚本的最小且快速的脚本引擎。[麻省理工学院]
  • LuaBridge - 一个轻量级、无依赖的库,用于将 Lua 绑定到 C++。[麻省理工学院]
  • luacxx - 用于创建 Lua 绑定的 C++11 API。[麻省理工学院]
  • nbind - 神奇的标头,使您的 C++ 库可以从 JavaScript 访问。[麻省理工学院]
  • PHP-CPP - 使用 C++ 构建 PHP 扩展的库。[Apache2]网站
  • pocketpy - 用于游戏脚本的 C++17 仅标头 Python 解释器。[麻省理工学院]网站
  • pybind11 - C++11 和 Python 之间的无缝可操作性。[BSD]
  • QuickJS - 一个小型的嵌入式 Javascript 引擎。[麻省理工学院]
  • SIP - 适用于 Python v2 和 v3 的 C 或 C++ 绑定生成器。[通用公共许可证]
  • sol2 - 具有高级功能和一流性能的 C++ <-> Lua API 包装器。[麻省理工学院]
  • SWIG - 一个包装器/接口生成器,可让您将 C++ 代码链接到 Javascript、Perl、PHP、Python、Tcl 和 Ruby。[GPL/输出未许可]网站
  • V7 - 嵌入式 JavaScript 引擎。[GPL2]
  • V8 - Google 的快速 JavaScript 引擎,可以嵌入到任何 C++ 应用程序中。[BSD]
  • v8pp - 仅标头库,用于将 C++ 类和函数公开到 V8 中,以便在 JavaScript 代码中使用它们。[提升]网站
  • ChakraCore - Microsoft 的 JavaScript 引擎,可以嵌入到 Nodejs 中。[麻省理工学院]

序列化

  • Bitsery - 仅标头 C++ 二进制序列化库。[麻省理工学院]
  • Bond - 一个用于处理模式化数据的开源跨平台框架。[麻省理工学院]
  • Boost.Serialization - Boost 序列化库。[提升]网站
  • Cap'n Proto - 快速数据交换格式和基于功能的 RPC 系统。[麻省理工学院]网站
  • 谷物- 用于序列化的 C++11 库。[BSD]
  • cista - 用于零拷贝高性能(反)序列化的 C++17 库。[麻省理工学院]
  • cppcodec - 仅标头 C++11 库,用于使用一致、灵活的 API 编码/解码 base64、base32 和十六进制。[麻省理工学院]
  • FastBinaryEncoding - 快速二进制编码是适用于 C++、C#、Go、Java、JavaScript、Kotlin、Python、Ruby、Swift 的超快速通用序列化解决方案。[麻省理工学院]
  • FlatBuffers - 内存高效的序列化库。[阿帕奇2]
  • Kaitai Struct - 一种描述各种二进制数据结构的声明性语言和生成 C++ 解析器代码的编译器。[GPLv3+][麻省理工学院][Apache2]
  • iguana - 使用 C++20 和 C++17 开发的现代、通用且易于使用的序列化引擎。[阿帕奇2]
  • MessagePack - 适用于 C 和 C++ 的高效二进制序列化格式“如 JSON”。[Apache2]网站
  • mrpt-serialization - 二进制或文本格式的版本化序列化。[BSD]网站
  • nanopb - ANSI C 中的小代码大小协议缓冲区实现。 [Zlib]
  • protobuf - 协议缓冲区 - Google 的数据交换格式。[BSD]
  • protobuf-c - C 中的协议缓冲区实现。 [BSD]
  • SimpleBinaryEncoding - 以二进制格式编码和解码低延迟应用程序的应用程序消息。[阿帕奇2]
  • upb - C 中的小型 protobuf 实现。 [BSD]
  • YAS - 非常快Y et另一个序列化库支持二进制/文本/json 格式。[促进]
  • zpp_bits - 实际上,最快的现代序列化库。看看这个视频就知道了。

串行端口

  • Asio - Asio 包含用于以可移植方式创建和操作串行端口的类。[提升]网站
  • Boost.Asio - Boost.Asio 包含用于以可移植方式创建和操作串行端口的类。[提升]网站
  • CSerialPort - 轻量级跨平台串口库。[LGPL3]
  • Libserial - C++ 串行端口编程。[BSD-3 条款]
  • 串行通信库- 用 C++ 编写的跨平台串行端口库。[麻省理工学院]网站

排序

  • cpp-sort - C++14 的排序算法和相关工具。[麻省理工学院]
  • pdqsort - 击败模式的快速排序。[zlib]
  • Timsort - 一种模板化的稳定排序函数,对于反向或半排序数据,其性能优于基于快速排序的算法,包括 std::sort。[麻省理工学院]
  • Indiesort - 一种排序包装器,可以将 std::sort (及其他随机访问排序函数)与非随机访问容器一起使用,并且还可以提高随机访问容器中大型/非平凡可复制类型的排序性能和数组。[zLib]网站

视频

  • libvpx - VP8/VP9 编解码器 SDK。[BSD]
  • FFmpeg - 一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。[LGPL2/GPL2]
  • libde265 - 打开 h.265 视频编解码器实现。[LGPL]网站
  • x265 - 打开 h.265 视频编解码器实现。[GPL2]网站
  • OpenH264 - 开源 H.264 编解码器。[BSD]网站
  • Theora - 一种免费开放的视频压缩格式。[BSD]
  • Vireo - Twitter 的轻量级多功能视频处理库。[麻省理工学院]

虚拟机

  • CarpVM - C 语言中的“有趣”VM。让我们看看这是如何进行的。[GPLv3]
  • MicroPython - 旨在将 Python 3.x 的实现放在微控制器上。[麻省理工学院]
  • TinyVM - 用纯 ANSI C 编写的小型、快速、轻量级虚拟机。 [MIT]

网络应用框架

  • Civetweb - 提供易于使用、功能强大、C/C++ 嵌入式 Web 服务器,具有可选的 CGI、SSL 和 Lua 支持。[麻省理工学院]
  • C++ REST SDK - Microsoft 项目,使用现代异步 C++ API 设计以本机代码进行基于云的客户端-服务器通信。[麻省理工学院]
  • CppCMS - 一个免费的高性能 Web 开发框架(不是 CMS)。[LGPLv3]
  • Crow - Crow 是一个用于运行 Web 服务的 C++ 微框架。它使用类似于 Python 的 Flask 的路由。[BSD]网站
  • Cutelyst - 一个基于 Qt 构建的 C++ Web 框架,使用 Catalyst (Perl) 框架的简单方法。[LGPLv2.1+]网站
  • Drogon - 基于 C++14/17 的高性能 HTTP 应用程序框架。[麻省理工学院]
  • C++ wfrest -C++ Web 框架 REST API。[阿帕奇2]
  • facil.io - 事件式高性能 C Web 框架,支持 HTTP、WebSockets、SSE 等。[麻省理工学院]网站
  • Kore - 超快速且灵活的 Web 服务器/框架,用于用 C 语言开发的 Web 应用程序。 [ISC]
  • libOnion - 轻量级库,可帮助您使用 C 编程语言创建网络服务器。[LGPLv3]
  • lwan - 实验性、可扩展、高性能 HTTP 服务器。[GPL2]
  • oat++ - 用于创建高性能 Web 服务的轻量级、零依赖框架。[Apache-2.0]网站
  • Pistache - Pistache 是一个用纯 C++11 编写的 C++ REST 框架,没有外部依赖。[阿帕奇2]
  • QDjango - 用 C++ 编写并构建在 Qt 库之上的 Web 框架。它尽可能遵循 django 的 API,因此得名。[LGPL]
  • TreeFrog Framework - 基于C++和Qt的高速全栈Web应用程序框架,支持HTTP和WebSocket协议(具有O/R映射)。[BSD]网站
  • userver - 异步 C++17 框架,具有丰富的抽象和数据库驱动程序,可快速舒适地创建高效的微服务、服务和实用程序。[Apache-2.0]网站
  • Wt - 用于开发 Web 应用程序的 C++ 库。[GPL/专有]

XML

XML 就是垃圾。真的。没有任何借口。XML 对于人类来说解析起来很麻烦,甚至对于计算机来说解析起来也是一场灾难。这种可怕的垃圾根本没有存在的理由。——莱纳斯·托瓦尔兹

  • Boost.PropertyTree - 属性树解析器/生成器,可用于解析 XML/JSON/INI/Info 文件。[提升]网站
  • Expat - 用 C 编写的 XML 解析器库。 [MIT]
  • Libxml2 - Gnome 的 XML C 解析器和工具包。[麻省理工学院]
  • libxml++ - C++ 的 XML 解析器。[LGPL2]
  • Mini-XML - 用 ANSI C 编写的小型 XML 解析库。 [LGPL2,但有例外]
  • PugiXML - 一个轻量级、简单且快速的 C++ XML 解析器,支持 XPath。[麻省理工学院]
  • RapidXml - 尝试创建尽可能最快的 XML 解析器,同时保留可用性、可移植性和合理的 W3C 兼容性。[促进]
  • TinyXML - 一个简单、小型、最小的 C++ XML 解析器,可以轻松集成到其他程序中。[zlib]
  • TinyXML2 - 一个简单、小型、高效的 C++ XML 解析器,可以轻松集成到其他程序中。[zlib]
  • TinyXML++ - TinyXML 的全新接口,使用了许多 C++ 的优点。模板、异常和更好的错误处理。[麻省理工学院]
  • Xerces-C++ - 用 C++ 的可移植子集编写的验证 XML 解析器。[阿帕奇2]

亚米尔

  • mini-yaml - 单头 YAML 1.0 C++11 序列化器/反序列化器。[麻省理工学院]
  • yaml-cpp - C++ 中的 YAML 解析器和发射器。[麻省理工学院]
  • rapidyaml - Rapid YAML 是一个用于解析和发出 YAML 的 C++ 库。[麻省理工学院]

各种各样的

不属于上述类别或可能尚未分类的有用库或工具

  • access_profiler - 一个统计 C++ 程序中成员变量访问次数的工具。[GPL3]
  • American fuzzy lop又名 afl-fuzz - 疯狂的模糊测试工具,可以在给定时间和最少示例输入的情况下自动发现错误。[阿帕奇2]
  • Argon2 - 密码哈希 Argon2,PHC 获胜者。[CC0/阿帕奇2]
  • Better String - C 字符串库的替代品,功能更强大并且不存在缓冲区溢出问题。还包括一个 C++ 包装器。[BSD、GPL2]
  • Boost.Signals2 - 托管信号和槽系统的实现。[提升]网站
  • HackingCPP Cheat Sheets - 算法、视图、容器、随机性等的酷备忘单和信息图表。
  • Concord - 用 C 语言编写的 Discord API 包装器库。 [MIT]网站
  • CPPItertools - 基于范围的 for 循环附加组件,灵感来自 Python 内置函数和 itertools 库。[BSD-2 条款]
  • date - 基于 C++11/14/17 标头的日期和时间库。[麻省理工学院]网站
  • D++ (DPP) - 一个轻量级、高性能且可扩展的 C++ 库,用于创建 Discord 机器人。[Apache2]网站
  • DynaMix - 一个允许您在运行时组合和修改对象的库。[麻省理工学院]
  • emio - 一个安全快速的高级和低级字符输入/输出库。[麻省理工学院]
  • faker-cxx - C++20 Faker 库,用于生成用于测试和开发的假(但真实)数据。[麻省理工学院]
  • fccf - 一种命令行工具,可递归搜索目录以查找与搜索字符串匹配的 C/C++ 源代码。[麻省理工学院]
  • {fmt} ⚡ - 用于 C++ 的小型、安全且快速的格式化库。[简化BSD]网站
  • FastFormat - 受 log4j 和 Pantheios 启发的快速、安全的 C++ 格式化. [简化的BSD]
  • hedley - AC/C++ 头文件,旨在消除一些特定于平台的烦恼。网站
  • casacore - 一组源自 aips++ 的 C++ 核心库。[LGPL]
  • QtVerbalExpressions - 该 Qt 库基于 C++ VerbalExpressions 库。[麻省理工学院]
  • cxx-prettyprint - 用于 C++ 容器的漂亮打印库。[促进]
  • Icecream-cpp - 用于调试目的的小型打印库。[麻省理工学院]
  • inja - 现代 C++ 的模板引擎。[麻省理工学院]
  • gcc-poison - 一个简单的头文件,供开发人员禁止应用程序中不安全的 C/C++ 函数。
  • Jinja2С++ - 几乎完全一致的模板引擎实现。网站
  • jwt-cpp - 用于在 C++ 中创建和验证 JSON Web 令牌的仅标头库。[麻省理工学院]
  • Kangaru - C++11 和 C++14 的依赖注入容器。[麻省理工学院]
  • Klib - 常见算法和数据结构的小型轻量级实现。[麻省理工学院]
  • libsigc++ - 标准 C++ 的类型安全回调系统。[LGPL]网站
  • libcpuid - 用于 x86 CPU 检测和特征提取的小型 C 库。[BSD]
  • libenvpp - 用于类型安全环境变量解析的现代 C++ 库。[阿帕奇-2.0]
  • libevil - 邪恶的许可证管理器。[GPLv3]
  • libnih - 一个轻量级的 C 函数和结构库。[GPL2.1]
  • libusb - 一个通用 USB 库,允许便携式访问 USB 设备。[LGPL2]
  • Mach7 - C++ 的模式匹配库。[BSD]
  • mio - 用于内存映射文件 IO 的跨平台 C++11 仅头文件库。[麻省理工学院]
  • PEGTL - 解析表达式语法模板库。[麻省理工学院]
  • 远程调用框架- C++ 的进程间通信框架。[GPL2/专有]
  • scnlib - 现代 C++ 的 scanf。[Apache-2.0]网站
  • Scintilla - 一个免费的源代码编辑组件。[麻省理工学院]
  • SDS - C 的简单动态字符串库。 [BSD]
  • semver.c - semver 解析器并以 ANSI C 呈现。 [MIT]
  • sigslot - C++ 信号/槽库。[公共区域]
  • SimpleSignal - 高性能 C++11 信号。[公共区域]
  • Stage - 移动机器人模拟器。[GPL2]
  • stdman - 一种从cppreference解析存档 HTML 文件并为基于 Unix 的系统生成 groff 格式的手册页的工具。[麻省理工学院]
  • stb ⚡ - 一系列用于 C/C++ 的单文件库。[公共区域]
  • StringZilla - 字符串库中的哥斯拉,分割、排序和洗牌大型文本数据集的速度比你说“东京塔”还要快。[阿帕奇-2.0]
  • StrTk - 由高性能字符串处理例程组成的 C++ 库。[麻省理工学院]
  • tgbotxx - Telegram Bot C++ 库。[麻省理工学院]
  • Tulip Indicators - AC 库,包含 100 多个金融技术分析指标。[LGPL]
  • ub-canaries - 尝试让编译器利用未定义行为的 C/C++ 程序集合。
  • value-category-cheatsheet左值、右值等的 PDF 备忘单。[Jank Copyleft]
  • VarTypes - 一个功能丰富、面向对象的框架,用于管理 C++ / Qt4 中的变量。[LGPL]
  • ZBar - 条形码扫描仪库,允许扫描照片/图像/视频流中的条形码并返回其值。[LGPL2]
  • ZXing - 用 Ja​​va 实现的开源、多格式 1D/2D 条形码图像处理库,可移植到其他语言。[阿帕奇]
  • pprint - 现代 C++ 的漂亮打印机。[麻省理工学院]
  • pspsdk - 用于 PSP 自制程序开发的开源 SDK。[BSD/GNU GPL3]

软件

用于创建开发环境的软件。

编译器

C 或 C++ 编译器列表

  • 8cc - 小型 C 编译器。
  • c - 一次性编译并执行 C“脚本”![麻省理工学院]
  • Clang - LLVM 的 AC 编译器。支持 C++11/14/1z C11。由 LLVM 团队开发。[国家安全局]
  • GCC - GNU 编译器集合。支持 C++11/14/1z C11 和 OpenMP。[GNU GPL3]
  • PCC - 一个非常古老的 C 编译器。支持C99。
  • 英特尔 C++ 编译器- 由英特尔开发。
  • LLVM - 模块化和可重用编译器和工具链技术的集合。
  • Microsoft Visual C++ - MSVC,由 Microsoft 开发。
  • Open WatCom - Watcom C、C++ 和 Fortran 交叉编译器和工具。[Sybase 开放 Watcom 公共许可证]
  • Oracle Solaris Studio - 适用于 SPARC 和 x86 的 C、C++ 和 Fortran 编译器。支持 C++11。可在 Linux 和 Solaris 上使用。【OTN开发者许可】
  • TCC ——Tiny C 编译器。[LGPL]

在线编译器

在线 C 或 C++ 编译器列表

  • codechef - 一个简单的在线编译器 CodeChef.
  • 键盘- 在线编译器/解释器和简单的协作工具。
  • coliru - 在线编译器/shell,支持各种 C++ 编译器。
  • 编译器资源管理器- 具有可用汇编输出的交互式编译器。
  • CompileOnline - 在 Linux 上在线编译和执行 C++。
  • Ideone - 一个在线编译器和调试工具,允许您编译源代码并以 60 多种编程语言在线执行。
  • Programiz - 面向学习者和开发人员的在线编译器。
  • repl.it - 面向教育工作者、学习者和开发人员的强大而简单的工具和平台。
  • Rextester - 在线编译器,提供多个编译器(Clang、GCC、MSVC)和多个编辑器。
  • 在线尝试- TIO 是一个在线解释器系列,适用于不断增长的实用和娱乐编程语言列表。
  • Wandbox - 带有 Boost 的在线 Clang/GCC 编译器。
  • paiza.io - 一个在线 C/C++ 编译器,具有多个文件支持功能、Github(gist) 集成和协作编辑。
  • InterviewBit - 一个简单易用的在线 C++ 编译器。

调试器

C 或 C++ 调试器列表

  • 调试器的比较- 来自维基百科的调试器列表。
  • GDB - GNU 调试器。
  • LLDB - LLDB 调试器。
  • Metashell - 交互式模板元编程 shell,其中包括 MDB 元调试器。
  • Valgrind - 用于内存调试、内存泄漏检测和分析的工具。
  • x64dbg - 适用于 Windows 的开源 x64/x32 调试器。

集成开发环境

C 或 C++ 名义 IDE 列表。

  • Anjuta DevStudio - GNOME IDE。[GPL3]
  • AppCode - 一个基于 JetBrains 的 IntelliJ IDEA 平台构建的用于 Objective-C、C、C++ 和 JavaScript 开发的 IDE。
  • Cevelop - 基于 Eclipse CDT 的跨平台 C 和 C++ IDE,带有附加插件。
  • CLion - 来自 JetBrains 的跨平台 C 和 C++ IDE。
  • Code::Blocks - 免费的 C、C++ 和 Fortran IDE。
  • CodeLite - 另一个跨平台、免费的 C 和 C++ IDE。[GPL2,插件例外]
  • color_coded - 用于基于 libclang 突出显示的 vim 插件。[麻省理工学院]
  • Dev-C++ - 便携式 C/C++/C++11 IDE。
  • Eclipse CDT - 基于 Eclipse 平台的功能齐全的 C 和 C++ IDE。
  • Embarcadero Dev-CPP - Dev-C++ 的一个分支,预装了新主题和现代编译器。[GPLv2]网站
  • Geany - 小型、快速、跨平台 IDE。[通用公共许可证]
  • IBM VisualAge - IBM 的计算机集成开发环境系列。
  • Irony-mode - 由 libclang 支持的 Emacs 的 AC/C++ 小模式.
  • juCi++ - 跨平台、轻量级 C++ IDE,与 libclang 集成。[麻省理工学院]
  • KDevelop - 一个免费的开源 IDE。
  • Microsoft Visual Studio - 来自 Microsoft 的 IDE。
  • Microsoft Visual Studio Code ⚡ - Microsoft 的开源 IDE。[麻省理工学院]网站
  • NetBeans - 主要使用 Java 进行开发的 IDE,但也可使用其他语言(特别是 PHP、C/C++ 和 HTML5)进行开发。
  • Qt Creator ⚡ - 跨平台 C++、JavaScript 和 QML IDE,是 Qt SDK 的一部分。[GPL3(例外情况)]网站
  • rtags - 一个 c/c++ 客户端/服务器索引器,用于与基于 clang 的 emacs 集成。
  • Xcode - 由 Apple 开发。
  • YouCompleteMe - YouCompleteMe 是 Vim 的快速、即输入、模糊搜索代码补全引擎.
  • cquery - 适用于 vscode、emacs、vim 等的 C++ 代码补全引擎。

构建系统

  • Bazel - 来自 Google 的多语言、快速且可扩展的构建系统。[阿帕奇]
  • Bear - 为 clang 工具生成编译数据库的工具。[GPLv3]
  • Buck - 一种快速构建系统,鼓励在各种平台和语言(包括 Facebook 开发和使用的 C++)上创建小型、可重用的模块。用Java编写。[阿帕奇]
  • build2 - 用于开发和打包 C/C++ 项目的跨平台构建、打包和依赖管理工具链。[麻省理工学院]
  • clib - C 编程语言的包管理器。[麻省理工学院]
  • CMake - 跨平台免费开源软件,用于使用独立于编译器的方法管理软件的构建过程。[BSD]
  • Cget - Cmake 包检索。[提升]网站
  • Conan - C/C++ 包管理器,开源。[麻省理工学院]
  • CPM - 基于 CMake 和 Git 的 C++ 包管理器。
  • FASTBuild - 高性能、开源构建系统,支持高度可扩展的编译、缓存和网络分发。
  • Hunter - CMake 驱动的 C++ 跨平台包管理器。[BSD-2]
  • MesonBuild - 一个开源构建系统,不仅速度极快,而且更重要的是,尽可能用户友好。
  • Ninja - 一个注重速度的小型构建系统。
  • Scons - 使用 Python 脚本配置的软件构建工具。
  • Sconsolidator - Scons 为 Eclipse CDT 构建系统集成.
  • Spack - 一个灵活的包管理器,支持多个版本、配置、平台和编译器。[Apache-2.0/麻省理工学院]
  • SW - 跨平台 C++(和其他语言)构建系统和包管理器,具有许多可用的包。[GPLv3]
  • tundra - 高性能代码构建系统,旨在提供最佳的增量构建时间,即使对于非常大的软件项目也是如此。
  • tup - 基于文件的构建系统,在后台监视更改的文件。
  • Premake - 使用 Lua 脚本配置的工具,用于跨 Windows、Mac OS X 和 Linux 生成 Visual Studio、GNU Make、Xcode、Code::Blocks 等项目文件。
  • Vcpkg - 适用于 Windows、Linux 和 MacOS 的 C++ 库管理器。[麻省理工学院]
  • waf - 基于 Python 的框架,用于配置、编译和安装应用程序。[BSD]网站
  • XMake - 基于 Lua 的 AC/C++ 跨平台构建实用程序。[阿帕奇]

静态代码分析

通过代码分析提高质量和减少缺陷的工具列表

  • Cppcheck - 静态 C/C++ 代码分析工具。-来源
  • CppDepend - 通过分析和可视化代码依赖性、定义设计规则、进行影响分析以及比较不同版本的代码,简化复杂 C/C++ 代码库的管理。
  • cpplint - 遵循 Google 的 C++ 风格指南的 C++ 风格检查器。
  • PVS-Studio - 用于程序源代码中的错误检测的工具,用 C、C++ 和 C# 编写。
  • cpp-dependencies - 检查 C++ #include 依赖关系的工具(以 .dot 格式创建的依赖关系图)。[阿帕奇]
  • include-what-you-use - 与 clang 一起使用的工具来分析 C 和 C++ 源文件中的包含内容。网站
  • Infer - Java、C 和 Objective-C 的静态分析器。[BSD]
  • OCLint - 一种静态源代码分析工具,用于提高 C、C++ 和 Objective-C 的质量并减少缺陷。-来源
  • Clang Static Analyzer - 一种源代码分析工具,可查找 C、C++ 和 Objective-C 程序中的错误。
  • Linticator - Pc-/FlexeLint 的 Eclipse CDT 集成。
  • IKOS - 基于抽象解释理论的 C/C++ 静态分析器。[NOSA 1.3]
  • 静态代码分析工具列表- 来自维基百科的静态代码分析工具列表。
  • OptView2 - 检查错过的 Clang 优化。
  • Trunk - 用于检查、测试、合并和监视代码的工具包。

编码风格工具

  • Artistic Style - 格式化 C/C++/C#/Obj-C/Java 代码的工具。也称为 astyle。
  • ClangFormat - 格式化 C/C++/Obj-C 代码的工具。
  • Clang-Tidy - 基于 Clang 的 C++ linter 工具。
  • EditorConfig - EditorConfig 有助于在不同的编辑器和 IDE 之间保持一致的编码风格。
  • Uncrustify - 代码美化器。

资源

用于提高 C++ 开发技能和知识的各种资源,例如书籍、网站和文章。

API设计

文章

精彩的 C++ 相关文章。

图书

很棒的 C 或 C++ 相关书籍。

编码标准

编码风格

播客

  • CppCast - C++ 开发人员为 C++ 开发人员提供的第一个播客。
  • CppChat -(有时)每周与社区来宾聊天,了解 C++ 世界中正在发生的事情。

会谈

视频

精彩的 C 或 C++ 相关视频。

网站

有用的 C 或 C++ 相关网站。

About

精彩的 C++(或 C)框架、库、资源和闪亮事物的精选列表。灵感来自于很棒的东西。A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published