新手上路 2026-2-26 10:25
主楼

标准库

C++ 标准库 - 包括 STL 容器、STL 算法、STL 功能等
  • C++ 标准库 - 一组类和函数的集合,这些类和函数是用核心语言编写的,并且是 C++ ISO 标准本身的一部分。
  • 标准模板库 - 标准模板库 (STL)。
  • C POSIX 库 - POSIX 系统 C 标准库的规范。
  • ISO C++标准委员会 - ISO/IEC JTC1/SC22/WG21 - C++标准委员会。网站
  • GNU C 库 - 本手册的目的是告诉您如何使用 GNU C 库的功能。

框架

C++ 泛型框架和库。
  • abseil-cpp - Abseil C++ 常用库。 [Apache2]
  • Apache C++ 标准库 - STDCXX,一个包含算法、容器、迭代器和其他基本组件的集合。 [已停用] [Apache2]
  • APR - Apache 可移植运行时。另一个跨平台实用函数库。 [Apache2]
  • ASL - Adobe Source Libraries 提供经过同行评审和可移植的 C++ 源库。[MIT]
  • AUI - 用于 C++20 的声明式 UI 工具包。[MPL2]
  • Boost :zap: - 一个大型通用 C++ 库集合。Boost] [网站
  • BDE - Bloomberg Labs 的 BDE 开发环境。[Apache2]
  • C++ Workflow :zap: - C++ 并行计算和异步网络引擎。 [Apache2]
  • CGraph - 一个基于 C++ 的跨平台 DAG 框架,无需任何第三方库。 [MIT]
  • Cinder - 一个由社区开发、免费且开源的专业级创意编程库。 [BSD]
  • Coost - 一个 C++11 的轻量级 Boost 库。 [MIT]
  • Cxxomfort - 一个小型的、仅包含头文件的库,将各种来自较新 C++ 标准的功能向后移植到 C++03 及更高版本。[MIT]
  • Dlib :zap: - 一个用于在 C++ 中制作实际世界机器学习和数据分析应用程序的工具包。Boost] [网站
  • EASTL - 电子艺界标准模板库。[BSD]
  • ETL - 嵌入式模板库。[MIT]
  • ffead-cpp - 企业应用开发框架。[Apache2]
  • Folly - 由 Facebook 开发和使用的开源 C++库。[Apache2]
  • FunctionalPlus - C++函数式编程库。编写简洁易读的 C++代码。[MIT]
  • GLib - 为用 C 编写的库和应用程序提供核心应用构建块。[LGPL]
  • itlib - 一个类似 std 的单头文件 C++库集合 [MIT]
  • JUCE - 一个用于开发跨平台软件的全面 C++类库。 核心模块:ISC,其余:GPL2/GPL3/专有] [网站
  • Kigs 框架 - 一个免费且开源的 C++模块化多用途跨平台 RAD 框架。 MIT] [网站
  • libPhenom - libPhenom 是一个用于构建高性能和高可扩展性 C 系统的事件框架。 [Apache2]
  • LibSourcey - C++11 事件驱动 IO,用于实时视频流和高性能网络应用程序。[LGPL]
  • LibU - 一种用 C 编写的跨平台工具库。[BSD]
  • libxutils - 一个简单而强大的跨平台 C 库,提供数据结构、算法等。[MIT]
  • Loki - 一个 C++ 库,包含常见设计模式和惯用法灵活的实现。[MIT]
  • MiLi - 一个只有头文件的极简 C++ 库。[Boost]
  • OpenFrameworks - 一个跨平台的 C++ 创意编程开源工具包。MIT] [网站
  • PhotonLibOS - 一个全面的 C++ 框架,具有高效的用户空间线程(带工作窃取的协程)、I/O、网络、RPC、HTTP 等,并在阿里巴巴中广泛使用。它与 C++ 14/17/20/23、Linux、MacOS、x86-64、ARM64、gcc 和 clang 兼容。Apache2] [网站
  • Qt :zap: - 一个跨平台的应用程序和 UI 框架。GPL/LGPL/专有] [网站
  • Reason - 一个跨平台框架,旨在为需要 C++ 的性能和强度的开发者带来 Java、.Net 或 Python 的易用性。[GPL2]
  • ROOT - 一套面向对象的框架,包含处理和分析大量数据所需的所有功能,非常高效。在 CERN 使用。[LGPL]
  • rpp - 最小化的受 Rust 启发的 C++20 STL 替代品。[MIT]
  • SaneCppLibraries - 一套用于 macOS、Windows 和 Linux 的 C++ 平台抽象库。MIT] [网站
  • Seastar - 一个用于现代硬件上的高性能服务器应用程序的先进、开源 C++框架。Apache-2.0 许可证][seastar.io
  • sfl 库 - 一个仅包含头文件的 C++11 库,提供了一些新的或较少为人知的容器,其中一些可以在 C++20 常量表达式中使用。[zlib]
  • Siv3D - Siv3D(OpenSiv3D)是一个用于创意编程(2D/3D 游戏、媒体艺术、可视化和模拟器)的 C++20 框架。MIT][网站
  • STLport - STL 的典范版本。[免费]
  • STXXL - 针对超大规模数据集的标准模板库。[Boost]
  • tbox - 一个类似 glib 的跨平台 C 库。Apache2] [网站
  • Ultimate++ - 一个跨平台的 C++ 快速应用开发框架。[BSD]
  • Windows Template Library - 用于开发 Windows 应用程序和 UI 组件的 C++ 库。[公共]
  • xtd - 用于在 Windows、macOS、Linux、iOS、Android、FreeBSD 和 Haiku 上创建控制台(CLI)、表单(GUI)和单元测试(xUnit)应用程序的现代化 C++20 框架。[MIT]
  • Yomm2 - 快速、正交、开放的多方法。取代了 Yomm11 [Boost]

人工智能

  • ANNetGPGPU - 基于 GPU(CUDA)的人工神经网络库。[LGPL]
  • btsk - 游戏行为树启动套件。 [zlib]
  • Evolving Objects - 一个基于模板的 ANSI-C++进化计算库,帮助你以极快的速度编写自己的随机优化算法。 [LGPL]
  • frugally-deep - 仅包含头文件的库,用于在 C++中使用 Keras 模型。 [MIT]
  • Genann - 简单的 C 语言神经网络库。 [zlib]
  • MXNet - 轻量级、便携、灵活的分布式/移动深度学习框架,具有动态、感知变异的数据流依赖调度器;支持 Python、R、Julia、Scala、Go、JavaScript 等。网站
  • PyTorch - 基于 Python 的张量和动态神经网络,具有强大的 GPU 加速。网站
  • flashlight - Flashlight 是一个完全用 C++编写的快速、灵活的机器学习库。[BSD]
  • Recast/Detour - (3D) 导航网格生成器和路径规划器,主要用于游戏。[zlib]
  • TensorFlow - 一个使用数据流图的数值计算开源软件库。[Apache]
  • Txeo - 一个现代的 C++ TensorFlow 封装库。[Apache]
  • oneDNN - 一个为深度学习应用提供的开源跨平台性能库。Apache] [网站
  • CNTK - 微软认知工具包 (CNTK),一个开源的深度学习工具包。[Boost]
  • tiny-dnn - 一个基于 C++11 的头文件式、无依赖的深度学习框架。[BSD]
  • Veles - 用于快速深度学习应用开发的分布式平台。[Apache]
  • Kaldi - 用于语音识别的工具包。[Apache]

异步事件循环

  • Asio - 一个跨平台的 C++ 网络和低级 I/O 编程库,使用现代 C++ 方法为开发者提供一致的异步模型。Boost] [网站
  • Boost.Asio - 一个跨平台的 C++ 网络和低级 I/O 编程库。Boost] [网站
  • C++ Actor Framework - C++ Actor 模型的开源实现。BSD-3-Clause] [网站
  • Ichor - 一个专注于线程安全并提供依赖注入的事件队列。[MIT]
  • libev - 一个功能全面且高性能的事件循环,其设计灵感来源于 libevent,但克服了其限制和错误。[BSD 和 GPL]
  • libevent - 一个事件通知库。[BSD]
  • libhv - 跨平台事件循环库。[BSD]
  • libuv - 跨平台异步 I/O。[BSD]
  • promise-cpp - 仅包含头文件的库,实现了 Promise/A+标准。[反 996]
  • uvw - libuv 的 C++封装。[MIT]
  • uv-cpp - 基于 C++11 的简单接口、高性能网络库。[MIT]

音频

音频、声音、音乐、数字化语音库
  • Amplitude Audio SDK - 一个专为游戏需求设计的跨平台音频引擎。Apache-2.0] [网站
  • Aubio - 一个用于音频和音乐分析的库。GPL-3.0] [网站
  • AudioFile - 一个简单的 C++ 库,用于读取和写入音频文件。[MIT]
  • audioFlux - 一个用于音频和音乐分析的 C 库,具有特征提取功能。[MIT]
  • dr_libs - 单文件音频解码库,支持 C 和 C++。[Unlicense]
  • FMOD - 一个易于使用的跨平台音频引擎和游戏音频内容创作工具。[非商业免费/商业]
  • KFR - 快速、现代的 C++ DSP 框架,支持 FFT、FIR/IIR 滤波器和采样率转换。[GPL/专有]
  • LAME - LAME 是一个高质量的 MPEG 音频层 III(MP3)编码器。[LGPL]
  • libsndfile - 一个带有 C++包装器的 C 库,用于通过一个标准库接口读取和写入包含采样声音的文件。LGPL-2.1] [网站
  • libsoundio - 用于跨平台实时音频输入和输出的 C 库。MIT] [网站
  • Maximilian - C++音频和音乐数字信号处理库。[MIT]
  • OpenAL - Open Audio Library - 一个跨平台的音频 API。[BSD/LGPL/专有]
  • miniaudio - 单文件音频播放和录制库。Unlicense] [网站
  • ni-media - 用于读取和写入音频文件的 C++库。[MIT]
  • Opus - 一种完全开放、免版税、高度多功能的音频编解码器。[BSD]
  • PortAudio - PortAudio 是一个免费、跨平台、开源的音频输入输出库。[MIT]
  • rnnoise - 用于音频降噪的循环神经网络。[BSD-3-Clause]
  • SELA - 简单无损音频。[MIT]
  • SoLoud - 游戏中易于使用的便携式音频引擎。[zlib]
  • Speex - 一个免费的语音编解码器。已被 Opus 取代。[BSD]
  • Tonic - C++ 中简单高效的音频合成。[Unlicense]
  • Vorbis - Ogg Vorbis 是一种完全开放、非专有、免专利和版税的通用压缩音频格式。[BSD]
  • minimp3 - 公有领域,仅包含头文件的 MP3 解码器,采用干净房间实现。[CC0]
  • Verovio - Verovio 是一个快速且轻量级的乐谱排版库。LGPL] [网站
  • Wav2Letter++ - 公有领域,一个完全用 C++ 编写的快速开源语音处理工具包,使用 ArrayFire 张量库和 flashlight 机器学习库以实现最大效率。[BSD]

生物学

生物信息学,基因组学,生物技术
  • BioC++ - 生物信息学 C++计算库。[BSD]
  • Chaste - 一个开源 C++库,用于生理学和生物学数学模型的计算模拟。[BSD]
  • libsequence - 一个用于表示和分析种群遗传学数据的 C++库。[GPL]
  • SeqAn - 用于序列分析的算法和数据结构,重点关注生物数据。[BSD/3-clause]
  • Vcflib - 一个用于解析和操作 VCF 文件的 C++库。[MIT]
  • Wham - 通过直接将关联测试应用于 BAM 文件来基因组中的结构变异(SV)。[MIT]

BitTorrent

  • jech/dht - C 语言编写的 BitTorrent DHT 库。[MIT]
  • libtorrent (又名 libtorrent-rasterbar) - 一个高效且功能完备的 C++ BitTorrent 实现。[BSD]
  • LibTorrent (又名 libtorrent-rakshasa) - BitTorrent 库。[GPL]
  • libutp - uTorrent 传输协议库。[MIT]

化学

化学,量子化学,固体化学/物理学,地球化学,生物化学
  • d-SEAMS - 一个用 C++和 Lua 编写的分子动力学轨迹分析引擎,支持 Nix。它代表“分子模拟的结构解析延迟分析”。GPL] [网站
  • gromacs - 一个基于消息传递的并行分子动力学实现。GPL] [网站
  • Reaktoro - 一个用 C++和 Python 编写的计算框架,用于模拟化学反应系统。LGPL] [网站
  • LAMMPS - 一个专注于材料建模的经典分子动力学代码。它是 Large-scale Atomic/Molecular Massively Parallel Simulator 的缩写。GPL] [网站
  • MADNESS - 科学模拟的多分辨率自适应数值环境。GPL] [网站
  • MPQC - 大规模并行量子化学程序 MPQC,基于非时变薛定谔方程,从第一性原理计算原子和分子的性质。GPL] [网站
  • Psi - 一个从头计算化学软件包。GPL] [网站

命令行界面

控制台/终端用户界面,命令行界面
  • Argh! - 一个极简、无挫败感、仅包含头文件的参数处理器。[BSD]
  • argparse - 现代 C++的参数解析器。[MIT]
  • args - 一个简单的、仅包含头文件的 C++ 命令行参数解析库。[MIT]
  • Argy - 现代 C++ 的命令行参数解析库——简单、直观,且仅包含头文件,无任何依赖。[MIT]
  • barkeep - 一个小的 C++ 头文件,用于显示异步动画、计数器和进度条。Apache-2.0] [网站
  • Boost.Program_options - 一个通过传统方法(如命令行和配置文件)获取程序选项的库。Boost] [网站
  • cli - 一个跨平台的仅包含头文件的 C++14 库,用于交互式命令行界面(思科风格)。[Boost]
  • CLI11 - 仅包含头文件的 C++11 单文件或多文件库,用于简单和高级的 CLI 解析。[BSD]
  • clipp - 易于使用、功能强大且表达丰富的 C++11/14/17 命令行参数处理库,包含在一个头文件中。[MIT]
  • cpp-terminal - 一个小型的仅包含头文件的 C++ 库,用于编写跨平台终端应用程序。[MIT]
  • Ctrl+C - 跨平台的 C++11 库,用于在自定义函数中处理 Ctrl+C 事件。[MIT]
  • cxxopts - 轻量级的 C++ 命令行选项解析器。[MIT]
  • docopt.cpp - 从文档字符串生成选项解析器的库。[MIT/Boost]
  • FINAL CUT - 用于创建基于文本的控件的终端应用程序的库。[LGPL]
  • FTXUI - C++ 函数式终端用户界面。[MIT]
  • gflags - C++ 命令行标志模块。[BSD]
  • imtui - 即时模式文本用户界面。[MIT]
  • indicators - 现代 C++的活动指示器。[MIT]
  • linenoise - readline 和 libedit 的小型自包含替代品。[BSD-2-Clause]
  • linenoise-ng - 一个小型、可移植的 GNU readline 替代品,适用于 Linux、Windows 和 MacOS,能够处理 UTF-8 字符。[BSD]
  • Lyra - 一个简单易用、可组合的 C++ 11 及更高版本的命令行解析器。[Boost]
  • Ncurses - 一个终端用户界面。[MIT]
  • oof - 用于控制控制台输出的便捷、高性能 RGB 颜色和位置控制。[MIT]
  • PDCurses - 公共领域的 curses 库,提供源代码和预编译库。[公共领域]
  • popl - C++ 11 及更高版本的单一头文件模板化命令行参数和 ini 文件解析器。[MIT]
  • replxx - 支持 UTF-8、语法高亮、提示的 readline 和 libedit 替代品,适用于 Unix 和 Windows。[BSD]
  • tabulate - 现代 C++的表格制作工具。[MIT]
  • TCLAP - 一个成熟、稳定且功能丰富的 ANSI C++命令行参数定义和访问库。[MIT]
  • termbox - 一个用于编写基于文本的用户界面的 C 库。[MIT]
  • TermOx - C++17 终端用户界面(TUI)库。[MIT]
  • tuibox - 一个单头文件终端 UI (TUI) 库,能够在命令行上创建鼠标驱动、交互式应用程序。[MIT]

压缩

压缩和归档库
  • bit7z - 一个 C++ 静态库,提供对 7-zip 共享库的简洁简单接口。[MPL2]
  • Brotli - Brotli 压缩格式。由 Google 开发。[MIT]
  • bzip2 - 一种免费提供、无专利、高质量的数据压缩器。[BSD]
  • bzip3 - BZip2 更好的、更强的精神续作。[LGPL]
  • FastLZ - 小型且可移植的字节对齐 LZ77 压缩。[MIT]
  • FiniteStateEntropy - 新一代熵编码器:Finite State Entropy 和 Huff0。
  • heatshrink - 用于嵌入式/实时系统的数据压缩库 [ISC]
  • Kanzi - 一个现代、模块化、便携且高效的无损数据压缩器,用 C++ 实现。[Apache-2.0]
  • KArchive - 一个用于创建、读取、写入和操作 zip 和 tar 等文件归档的库。它还通过 QIODevice 的子类提供对 gzip 等格式的透明压缩和解压缩。[LGPL]
  • libarchive - 支持多种格式的归档和压缩库。新 BSD 许可][网站
  • LZ4 - 极其快速的压缩算法。BSD 许可][网站
  • LZFSE - LZFSE 压缩库和命令行工具。由 Apple 开发。
  • LZHAM - 无损数据压缩库,压缩率与 LZMA 相似,但解压缩速度更快。[BSD 许可]
  • LZMA :zap: - 7z 格式默认的通用压缩方法。公共领域][网站
  • LZMAT - 一种极快的实时无损数据压缩库。[GPL]
  • miniz - 单个 C 源文件 Deflate/Inflate 压缩库,具有 zlib 兼容的 API,ZIP 存档读取/写入,PNG 写入。[MIT]
  • Minizip - 支持 PKWARE 磁盘跨区、AES 加密和 IO 缓冲的最新 bug 修复的 zlib。[zlib]
  • minizip-ng - zlib 分发包中流行的 zip 操作库的分支。 [zlib]
  • PhysicsFS - 提供对各种存档的抽象访问的库。它旨在用于视频游戏,设计灵感部分来自 Quake 3 的文件子系统。 [zlib]
  • Rapidgzip - 现代多核机器的 Gzip 解压缩和随机访问。 [Apache-2/MIT]
  • 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++标准提案的启发。[MIT]
  • Boost.Compute - 一个用于 OpenCL 的 C++ GPU 计算库。Boost] [网站
  • Bolt - 一个针对 GPU 优化的 C++模板库。[Apache2]
  • BS::thread_pool - 一个快速、轻量级且易于使用的 C++17 线程池库 [MIT]
  • Channel - 用于在多个线程之间安全共享数据的线程安全容器 [MIT]
  • ck - 并发原语、安全的内存回收机制和非阻塞数据结构 [BSD]
  • concurrentqueue - 一个适用于 C++11 的快速多生产者、多消费者无锁并发队列 [BSD,Boost]
  • Coros - 一个易于使用且快速的基于任务的并行库,利用协程。[BSL-1.0]
  • CUB - CUB 为 CUDA 编程模式的每一层提供最先进的可重用软件组件。[New BSD]
  • cuda-api-wrappers - 轻量级的现代 C++ CUDA GPU 编程运行时 API 包装器。[BSD]
  • cupla - 通过 Alpaka 在 OpenMP、线程、TBB 等上运行 CUDA/C++的 C++ API。[LGPLv3+]
  • C++React - 一个用于 C++11 的响应式编程库。[Boost]
  • dispenso - 一个高性能的 C++ 并行编程库,具有线程池、并行 for 循环、futures、任务图和并发容器。[MIT]
  • FiberTaskingLib - 基于任务的线程库,支持具有任意依赖关系的任务图。[Apache]
  • HPX - 一个通用的 C++ 运行时系统,适用于任何规模的并行和分布式应用程序。[Boost]
  • Intel Games Task Scheduler - 一个为游戏开发者需求设计的任务调度框架。[MIT]
  • Intel Parallel STL - Intel® 对 C++17 STL 的 C++11 及以上版本实现。[Apache2]
  • Intel TBB - Intel® Threading Building Blocks。[Apache2]
  • junction - 一个 C++ 并发数据结构库。[BSD]
  • Kokkos - 一个用于并行执行和内存抽象的高性能可移植编程模型。[BSD]
  • libcds - 一个 C++并发数据结构库。[BSD]
  • Libclsph - 一个基于 OpenCL 的 GPU 加速 SPH 流体模拟库。[MIT]
  • libdill - 在 C 语言中引入结构化并发。[MIT]
  • libdispatch - 由苹果公司开发的 Grand Central Dispatch (GCD) 是一种基于线程池模式的任务并行技术。libdispatch 是一个提供 GCD 服务实现的库。Apache-2.0] [网站
  • libfork - 基于 C++20 协程构建的尖端、无锁、无等待、继续窃取任务库。MPL-2.0] [网站
  • libmill - 在 C 中引入 Go 风格的并发。[MIT]
  • marl - Marl 是一个用 C++ 11 编写的混合线程/纤程任务调度器。[Apache-2.0]
  • moderngpu - moderngpu 是一个用于 GPU 通用计算的效率库。它是一个为 CUDA 编写的头文件 C++库。该库的独特价值在于其用于解决不规则并行问题的加速原语。[FreeBSD & 版权, Sean Baxter]
  • NCCL - 用于集体多 GPU 通信的优化原语。[BSD]
  • Neco - C 语言并发库(协程)。[MIT]
  • OpenCL - 异构系统并行编程的开标准。
  • OpenMP - OpenMP API。
  • rotor - 适用于事件循环的 C++ Actor 微框架。[MIT]
  • SObjectizer - 一个在相对较小的 C++框架中实现了 Actor、发布-订阅和 CSP 模型的实现。[BSD-3-Clause]
  • Quantum - 一个强大的基于Boost.Coroutine2构建的 C++协程调度框架。
  • RaftLib - RaftLib C++库,通过 C++ iostream 样式的操作符实现流/数据流并发。 [Apache2]
  • readerwriterqueue - C++中快速的单生产者、单消费者无锁队列。 [BSD]
  • stdgpu - GPU 上的高效 STL 样式的数据结构。 [Apache2]
  • Taskflow - 通用并行和异构任务编程系统。(已从 Cpp-Taskflow 更名) [MIT]
  • ThreadPool - 一个简单的 C++11 线程池实现 [zlib]
  • Thrust - 一个类似于 C++ 标准模板库 (STL) 的并行算法库 [Apache2]
  • TooManyCooks - 高性能 C++20 协程框架,具有先进的硬件检测功能 [BSL-1.0]
  • transwarp - 一个仅包含头文件的 C++ 任务并发库 [MIT]
  • VexCL - 一个用于 OpenCL/CUDA 的 C++ 矢量表达式模板库。[MIT]
  • STAPL - 一个设计用于在共享和分布式内存并行计算机上工作的 C++ 并行编程框架。[BSD]
  • concurrencpp - 一个通用并发库,包含任务、执行器、定时器和 C++20 协程,以统治它们所有。

配置

配置文件,INI 文件
  • inifile-cpp - 一个仅包含头文件的、易于使用的 C++ Ini 文件解析器。[MIT]
  • inih - 简单的 C 语言 INI 文件解析器,适用于嵌入式系统。[BSD-3-Clause]
  • inih - inih的仅包含头文件的 C++版本。[BSD-3-Clause]
  • ini-cpp - 单头文件 C++ 版本,提供一些方便的读写接口,扩展自 inihBSD-3-Clause] [网站
  • iniparser - INI 文件解析器。[MIT]
  • inipp - 简单的头文件 C++ INI 解析器和生成器。[MIT]
  • libconfig - 用于处理结构化配置文件的 C、C++ 库。LGPL-2.1] [网站
  • libconfuse - C 语言的轻量级配置文件解析库。[ISC]
  • mINI - INI 文件读取和写入工具。[MIT]
  • simpleini - 跨平台的 C++库,提供简单的 API 来读取和写入 INI 风格的配置文件。[MIT]
  • toml++ - C++17 及更高版本的仅头文件 TOML 解析器和序列化器。MIT] [网站
  • toml11 - 一个仅依赖于 C++ 标准库的 C++11(或更高版本)头文件 only toml 解析器/编码器。[MIT]

容器

  • C++ B-tree - 一个基于 B 树数据结构的模板库,实现有序的内存容器。[Apache2]
  • dynamic_bitset - 简单实用库:C++17/20 头文件 only 动态位集。MIT] [网站
  • fixed-containers - 一个仅包含头文件的 C++20 库,提供固定容量的 constexpr 容器。[MIT]
  • flat_hash_map - 一个非常快的扁平哈希表,使用斐波那契哈希。
  • frozen - C++14 用户的 gperf 的头文件仅、constexpr 替代方案。[Apache-2.0]
  • Hashmaps - C++ 中开地址哈希表算法的实现。[MIT]
  • hat-trie - 快速且内存高效的 HAT-trie 的 C++ 实现。[MIT]
  • Hopscotch map - 一种快速的头文件哈希映射,使用跳格子哈希来解决冲突。[MIT]
  • librb - 环形(循环)缓冲区的 C 实现,具有完整的线程感知功能,允许并发读写,并在需要时自动增长。BSD] [网站
  • LSHBOX - 一种局部敏感哈希(LSH)的 C++ 工具箱,提供多种流行的 LSH 算法,同时支持 Python 和 MATLAB。[GPL]
  • parallel-hashmap - 一系列仅包含头文件的、非常快速且内存友好的 hashmap 和 btree 容器 Apache2] [网站
  • PGM-index - 一种数据结构,能够在包含数十亿项目的数组中实现快速查找、前驱搜索、范围搜索和更新,其空间占用远低于传统索引。Apache2] [网站
  • plf::colony - 一种无序的"容器"-类型容器,在高修改场景下性能优于 std 容器,同时无论插入/删除操作,都保持对未删除元素的永久指针。zLib] [网站
  • plf::list - 一个 std::list 实现,通过移除范围拼接来启用更友好的缓存结构,从而显著提升性能。zLib] [网站
  • plf::stack - std::stack 容器适配器的替代容器,在栈上下文中比任何 std 容器性能更好。zLib] [网站
  • ring_span lite - Arthur O'Dwyer 的 ring_span 实现的简化版本,即循环缓冲区视图。[MIT]
  • robin-hood-hashing - 基于 robin hood 哈希的快速且内存高效的哈希表,适用于 C++14。[MIT]
  • robin-map - 使用 robin hood 哈希的快速哈希映射和哈希集合。[MIT]
  • sparsepp - 一个快速、内存高效的 C++ 哈希映射。[BSD 3-clause]
  • sqlitemap - 基于 SQLite 的持久化映射。[MIT]
  • st_tree - 一个快速且灵活的 C++ 模板类,用于树数据结构。[Apache-2.0]
  • svector - 适用于 C++17 或更高版本的紧凑 SVO 优化向量。[MIT]
  • tree.hh - 一个类似 STL 的 C++头文件树库。 [GPL2+]
  • unordered_dense - 基于 robin-hood 反向移位删除的快速密集存储哈希表和哈希集。 [MIT]

密码学

密码学与加密库
  • Bcrypt - 一个跨平台的文件加密工具。加密文件可以在所有支持的操作系统和处理器之间移植。[BSD]
  • BeeCrypt - 一个便携且快速的加密库。[LGPLv2.1+]
  • Botan - 一个 C++加密库。[BSD-2]
  • Crypto++ - 一个免费的 C++加密方案类库。Boost] [网站
  • digestpp - C++11 基于头文件的消息摘要(哈希)库。[公共领域]
  • GnuPG - OpenPGP 标准的完整且免费实现。[GPL]
  • GnuTLS - 实现 SSL、TLS 和 DTLS 协议的安全通信库。[LGPL2.1]
  • Libgcrypt - 原基于 GnuPG 代码的通用加密库。[LGPLv2.1+]
  • LibreSSL - 2014 年从 OpenSSL 分支出来的 SSL/TLS 协议的免费版本。[?]
  • libsodium - 基于 NaCl 的便携式加密库,主观性强且易于使用。[ISC]
  • libhydrogen - 轻量级、安全、易于使用的加密库,适合受限环境。[ISC]
  • LibTomCrypt - 一个相当全面的、模块化和便携的加密工具包。[WTFPL]
  • mbedTLS - 一个开源、可移植、易于使用、可读且灵活的 SSL 库,曾被称为 PolarSSL。 Apache2] [网站
  • Nettle - 一个低级加密库。 [LGPL]
  • OpenSSL - 一个健壮、商业级、功能全面且开源的加密库。 Apache] [网站
  • retter - 一系列哈希函数、加密算法、工具、库及相关加密材料的集合。
  • s2n - TLS/SSL 协议的实现。[Apache]
  • sha1collisiondetection - 用于检测文件中 SHA-1 碰撞的库和命令行工具。[MIT]
  • Tink - 一种多语言、跨平台的库,提供安全、易于正确使用且难以误用的加密 API。[Apache-2.0]
  • Tiny AES in C - C 中的小型便携式 AES128/192/256。[公共领域]
  • Themis - 用于轻松实现数据安全的加密库,提供对称加密和非对称加密、具有前向保密性的安全套接字,适用于移动和服务器平台。[Apache2]
  • HEhub - 用于同态加密及其应用的库。[Apache2]

CSV

用于解析逗号分隔值(CSV)文件的库
  • commata - 另一个仅包含头文件的 C++17 CSV 解析器。[Unlicense]
  • csv2 - 现代 C++ 的快速 CSV 解析器。[MIT]
  • Csv::Parser - 用 C++17 编写的编译时和运行时 CSV 解析器。[Zlib]
  • Fast C++ CSV Parser - 小型、易于使用且快速的仅包含头文件的库,用于读取 CSV 文件。[BSD-3-Clause]
  • Glaze - 高性能、仅头文件的 CSV 库,支持反射。[MIT]
  • lazycsv - 现代 C++ 的快速、轻量级单头 CSV 解析器。[MIT]
  • rapidcsv - 易于使用、仅头文件的 C++ CSV 解析器库。[BSD-3-Clause]
  • ssp - 仅头文件的“csv”解析器,使用现代 C++ API,快速且通用。[MIT]
  • Vince's CSV Parser - 一个快速、自包含、流式处理的 C++17 CSV 解析器,支持可选的类型转换和统计功能。[MIT]
  • zsv - 世界上最快的(SIMD)CSV 解析器,具有可扩展的命令行界面。[MIT]

数据库

数据库库、SQL 服务器、ODBC 驱动程序和工具
  • ClickHouse - ClickHouse DBMS 的 C++ 客户端。[Apache2]
  • CrossDB - 超高性能轻量级嵌入式和服务器 OLTP 关系数据库管理系统。MPL-2.0] [网站
  • DuckDB - 进程内 SQL OLAP 数据库管理系统。MIT] [网站
  • hiberlite - 用于 sqlite3 的 C++ 对象关系映射。[BSD]
  • Hiredis - 一个用于 Redis 数据库的极简 C 客户端库。[BSD]
  • Infinity - 为 LLM 应用而构建的 AI 原生数据库,提供极快的向量全文搜索。[Apache2]
  • Kuzu - 一个为查询速度和可扩展性而构建的可嵌入属性图数据库管理系统。实现 Cypher。MIT] [网站
  • Kvrocks - 一个使用 RocksDB 作为存储引擎且兼容 Redis 协议的分布式键值 NoSQL 数据库。[Apache2]
  • LevelDB - 由 Google 开发的一个快速键值存储库,提供从字符串键到字符串值的有序映射。[BSD]
  • libpg_query - 用于在服务器环境之外访问 PostgreSQL 解析器的 C 库。[BSD-3-Clause]
  • libpqxx - PostgreSQL 的官方 C++ 客户端 API。[BSD-3-Clause]
  • LMDB - 非常快的嵌入式键/值存储,具有完整的 ACID 语义。[OpenLDAP]
  • LMDB++ - LMDB 嵌入式数据库库的 C++11 包装器。[公共领域]
  • mgclient - C/C++ Memgraph 客户端。[Apache2]
  • MongoDB C Driver - MongoDB 的 C 客户端库。[Apache2]
  • MongoDB C++ Driver - MongoDB 的 C++驱动程序。[Apache2]
  • MongoDB Libbson - 一个 BSON 实用程序库。[Apache2]
  • MySQL++ - 一个用于 MySQL C API 的 C++ 封装器。[LGPL]
  • nanodbc - 一个用于原生 C ODBC API 的小型 C++ 封装器。[MIT]
  • ODB - 一个开源的、跨平台的、跨数据库的 C++ 对象关系映射(ORM)系统。[GPLv2]
  • redis3m - hiredis 的封装,具有干净的 C++接口,支持哨兵,并准备好使用模式。[Apache2]
  • Reindexer - 可嵌入、内存中、面向文档的数据库,具有高级查询构建器界面。Apache2] [网站
  • RocksDB - 来自 Facebook 的嵌入式键值存储,用于快速存储。[BSD]
  • SimDB - 高性能、共享内存、无锁、跨平台、单文件、依赖极小、C++11 键值存储。[Apache2]
  • SOCI - 一个用于 C++ 的数据库抽象层。[Boost]
  • Speedb - 社区主导项目:一个符合 RocksDB 的高性能可扩展嵌入式键值存储。[Apache2]
  • sqlgen - 一个基于反射的 C++-20 ORM 和 SQL 查询生成器,类似于 Python 的 SQLAlchemy/SQLModel 或 Rust 的 Diesel。[MIT]
  • SQLite - 一个完全嵌入式、功能齐全的关系型数据库,只需几 100k 即可包含到你的项目中。[公共领域]
  • SQLiteC++ - SQLiteC++ (SQLiteCpp) 是一个智能且易于使用的 C++ SQLite3 封装库。[MIT]
  • sqlite_modern_cpp - 一个仅包含头文件的 C++14 sqlite 库封装。[MIT]
  • sqlite_orm - 一个为现代 C++ 设计的轻量级 SQLite ORM 头文件库。[AGPL + 支付的 MIT]
  • sqlpp11 - 一个用于 C++ 中 SQL 查询和结果的类型安全的嵌入式领域特定语言。[BSD-2-Clause]
  • TidesDB - 高性能、持久化、支持事务的嵌入式存储引擎,专为闪存和 RAM 优化设计。MPL-2.0][网站
  • TileDB - 快速密集和稀疏多维数组 DBMS。MIT][网站
  • TinyORM - 现代 C++ ORM 库。MIT][网站
  • UnQLite - 自包含、无服务器、零配置、支持事务的 NoSQL 引擎。BSD-2-Clause][网站
  • upscaledb - 一个内嵌的"类型化"键值存储,具有内置的查询接口。[GPLv3]
  • TigerBeetleDB C++客户端(社区) - TigerBeetle 是一个为关键任务安全性和性能而设计的金融会计数据库,旨在推动未来金融服务业的发展。[BSL-1.0]
  • Trilogy - 一个用于 MySQL 兼容数据库服务器的客户端库,设计用于高性能、灵活性和易于嵌入。[MIT]
  • UStore - 用于 BLOBs、JSON 和图形的多模态数据库。[Apache2]
  • Velox - 一个用于优化查询引擎和数据处理系统的 C++ 向量化数据库加速库。Apache-2.0] [网站

数据可视化

数据可视化库
  • gplot++ - 支持跨平台的头文件式 C++ 绘图库,与 Gnuplot 交互。[MIT]
  • matplotplusplus - 用于数据可视化的 C++ 图形库。MIT][网站
  • mathplot - 基于 C++的仅头文件图表和数据可视化库,使用现代 OpenGL。Apache-2.0] [网站
  • Plotly++ - 一个用于创建交互式数据可视化的 Plotly.js 图形规范的 C++ 接口。[MIT]

调试

调试库,内存泄漏和资源泄漏检测,单元测试
  • backward-cpp - 一个用于 C++的漂亮堆栈跟踪美化打印器。[MIT]
  • Bencher - 一套用于在 CI 中捕获性能退化的持续基准测试工具。[MIT]/[Apache2]
  • benchmark - Google 提供的微型基准测试支持库。[Apache2]
  • Boost.Test - Boost 测试库。Boost][website
  • check - Check 是一个用于 C 的单元测试框架。LGPL-2.1][website
  • doctest - 轻量级功能丰富的 C++ 单头测试框架。[MIT]
  • Catch2 - 一个现代的、C++ 本地的单元测试、TDD 和 BDD 测试框架。[Boost]
  • Celero - C++基准测试框架。[Apache2]
  • cpp-dump - 一个用于调试目的的 C++库,可以打印任何变量,即使是用户自定义类型。[MIT]
  • CppUTest - C/C++单元测试和模拟框架。[BSD-3-clause]
  • CUTE - 让 C++单元测试更简单。[LGPL3]
  • CMocka - C 语言的单元测试框架,支持模拟对象。[Apache2]
  • CppBenchmark - C++性能基准测试框架,具有纳秒级测量精度。[MIT]
  • Cpptrace - 一个简单、可移植、自包含的 C++堆栈跟踪库,支持 C++11 及更高版本。[MIT]
  • CppUnit - JUnit 的 C++移植版本。[LGPL2]
  • CrashCatch - 用于 C++ 的单头文件崩溃报告工具,记录堆栈跟踪并创建 .dmp.txt 崩溃转储文件。MIT][网站
  • CTest - CMake 测试驱动程序。[BSD]
  • dbg-macro - C++ 的 dbg(…) 宏。[MIT]
  • DebugViewPP - 调试日志查看器。[Boost]
  • Deleaker - 一种用于检测资源泄漏的工具,包括内存、GDI 和句柄泄漏。
  • FakeIt - C++ 的简单模拟框架。[MIT]
  • fff - 一种用于创建模拟 C 函数的微型框架。[MIT]
  • Google Mock - 一种用于编写和使用 C++ 模拟类的库。[BSD]
  • Google Test - Google C++ 测试框架。[BSD]
  • Hippomocks - 单头文件模拟框架。[LGPL-2.1]
  • IceCream-Cpp - 再也不需要使用 cout/printf 来调试。[MIT]
  • ig-debugheap - 跨平台调试堆,用于跟踪内存错误。[BSD]
  • libassert - 最过度设计的 C++ 断言库。[MIT]
  • libtap - 用 C 编写测试。[GPL2]
  • microprofile - 多平台带网页视图的分析器。[Unlicense]
  • MinUnit - 一个极简的 C 单元测试框架,自包含在一个头文件中。[MIT]
  • nanobench - 简单、快速、精确的 C++11/14/17/20 单头微基准测试功能。MIT][网站
  • Nanotimer - 用于基准测试的简单低开销跨平台计时器类。zLib][网站
  • Nonius - 一个 C++ 微基准测试框架。[CC]
  • Remotery - 单文件分析器,带网页查看器。[Apache2]
  • snitch - 轻量级 C++20 测试框架。 [Boost]
  • Touca - 开源回归测试系统,可以自托管。 Apache2] [网站
  • UnitTest++ - 轻量级 C++ 单元测试框架。 [MIT/X Consortium 许可证]
  • Unity - C 的简单单元测试。 [MIT]
  • utest.h - C 和 C++的单头文件单元测试框架。[Unlicense]
  • utl::profiler - C++17 单头文件分析器。[MIT]
  • μt - C++20 单头文件/单模块、无宏的μ(micro)/单元测试框架。[Boost]
  • VLD - 视觉内存泄漏检测器。一个免费、健壮、开源的 Visual C++内存泄漏检测系统。

文档

DSP

数字信号处理。
  • DSPFilters - 一个用于数字信号处理的实用 C++类集合。[MIT]
  • FFTW - 一个用于一维或多维 DFT 计算的 C 库。[GPL]
  • iir1 - IIR 实时 C++滤波器库。[MIT]
  • kissfft - 一个试图保持简单、愚蠢的快速傅里叶变换(FFT)库。[BSD-3-Clause]
  • pocketfft - 基于 FFTPack 的 FFT 实现,但进行了多项改进。[BSD-3-Clause]
  • wavelib - 1D 和 2D 小波变换的 C 语言实现。[BSD-3-Clause]

字体

用于解析和操作字体文件的库。
  • Fontconfig - 字体配置和定制库。 MIT] [网站
  • FreeType - FreeType 是一个免费提供的字体渲染软件库。 [FTL & GPLv2]
  • otfcc - 一个用于解析和写入 OpenType 字体文件的 C 库和工具。 [Apache-2.0]
  • harfbuzz - 一个文本整形引擎。[旧 MIT]
  • libschrift - 一个轻量级的 TrueType 字体渲染库。[ISC]

游戏引擎

  • Acid - 一个高速 C++17 Vulkan 游戏引擎。[MIT]
  • Allegro - 一个主要用于视频游戏和多媒体编程的跨平台库。[zlib]
  • Axmol Engine - 一个适用于桌面、移动设备和 XBOX(UWP)的跨平台游戏引擎,源自 Cocos2d-x-4.0。MIT] [网站
  • Cocos2d-x - 一个用于构建 2D 游戏、交互式书籍、演示和其他图形应用的跨平台框架。[MIT]
  • Corange - 一个用纯 C、SDL 和 OpenGL 编写的游戏引擎。[BSD]
  • crown - Crown 是一个通用数据驱动型游戏引擎,使用正统 C++从头编写,具有极简主义和数据导向的设计理念。[MIT]
  • delta3d - 一个强大的模拟平台。[LGPL2]
  • EnTT - 游戏与现代 C++的融合。[MIT]
  • GamePlay - 一个跨平台的原生 C++游戏框架,用于创建 2D/3D 移动和桌面游戏。[Apache2]
  • Godot - 一个功能齐全、开源、采用 MIT 许可的游戏引擎。[MIT]
  • Grit - 一个社区项目,旨在构建一个免费的 3D 开放世界游戏引擎。[MIT]
  • Halley - 一个用 C++14 编写的轻量级游戏引擎,具有“真正”的实体组件系统。[Apache 2.0]
  • Hazel Game Engine - Hazel 主要是一个用于 Windows 的早期阶段交互式应用程序和渲染引擎。[Apache-2.0 许可证]
  • IX-Ray Platform - X-Ray 1.6 引擎的分支版本,旨在提升游戏体验并简化修改开发。[仅限修改后的 MIT/非商业使用]
  • JNGL - 适用于 Linux、Windows、macOS、Android、iOS、Xbox、任天堂 Switch 和 Web 的 2D 库。zlib] [网站
  • KlayGE - 具备插件式架构的跨平台开源游戏引擎。GPLv2] [网站
  • nCine - 强调性能的跨平台 2D 游戏引擎,使用 C++11 编写,并可选择使用 Lua 进行脚本编写。MIT] [网站
  • o3de - 一个基于 Amazon Lumberyard 的开源、实时、多平台 3D 引擎。Apache2][网站
  • OpenXRay - S.T.A.L.K.E.R. 游戏系列中使用的社区修改版 X-Ray 引擎。[修改版 BSD/仅限非商业使用]
  • Oxygine - 一个跨平台的 2D C++ 游戏引擎。[MIT]
  • Panda3D - 一个游戏引擎,用于 Python 和 C++ 程序的 3D 渲染和游戏开发框架。修改版 BSD][网站
  • PixelGameEngine - olcPixelGameEngine 的官方发行版,javidx9 的 YouTube 视频和项目中所使用的工具。[OLC3]
  • Polycode - 用于 C++创意代码的跨平台框架(支持 Lua 绑定)。MIT] [网站
  • quakeforge - 原始 Quake 引擎代码的积极维护分支,拥有 20 多年的开发历史。[GPL-2.0]
  • raylib - 一个简单易用的库,用于享受视频游戏编程。zlib/libpng] [网站
  • Spring - 一个强大的免费跨平台即时战略游戏引擎。GPLv2/GPLv3] [网站
  • Torque2D - 一个用于 2D 游戏开发的跨平台 C++开源引擎。MIT] [网站
  • Torque3D - 一个用于 3D 游戏开发的 C++开源引擎。MIT] [网站
  • toy engine - toy 是一个轻量级和模块化的 C++游戏引擎,提供简单的 C++表达方式,以快速迭代设计功能齐全的 2D 或 3D 游戏。
  • Urho3D - 一个免费的轻量级、跨平台的 2D 和 3D 游戏引擎,使用 C++实现。深受 OGRE 和 Horde3D 的启发。[MIT]
  • ezEngine - 一个免费的、开源的游戏引擎,使用 C++编写。其理念是模块化和灵活,可以适应许多不同的使用场景。MIT] [网站

  • CXXGraph - 免费的 C++(17)图库,仅包含头文件,用于表示和执行算法。[AGPL-3.0]
  • Graaf - 一个通用的轻量级 C++20 图形库。MIT][网站

GUI

图形用户界面
  • Boden - 原生、移动、跨平台 GUI 框架。GPL/LGPL/专有] [网站
  • CEGUI - 灵活的跨平台 GUI 库。
  • Elements - 轻量级、细粒度、分辨率无关、模块化 GUI 库。[MIT]
  • FLTK - 快速、轻量级、跨平台的 C++ GUI 工具包。[LGPL2]
  • FOX Toolkit - 一个开源的跨平台小部件工具包。[LGPL]
  • GacUI - GPU 加速 C++ 用户界面,具有所见即所得开发工具、XML 支持、内置数据绑定和 MVVM 功能。[Ms-PL]
  • GTK+ - 用于创建图形用户界面的跨平台工具包。[LGPL]
  • gtkmm -GTK+ 的官方 C++ 接口。[LGPL]
  • imgui - 依赖极少的即时模式图形用户界面。[MIT]
  • implot - imgui 的即时模式绘图小部件。[MIT]
  • iup - 用于构建图形用户界面的多平台工具包。[MIT]
  • libui - 一种简单且可移植(但并非完全灵活)的 C 语言 GUI 库,它使用每个支持平台的原生 GUI 技术。[MIT]
  • MyGUI - 快速、灵活且简单的 GUI。[MIT]
  • nana - Nana 是一个使用现代 C++风格的跨平台 GUI 编程库。[Boost]
  • NanoGui - 一个极简的跨平台 OpenGL 3.x 或更高版本的小部件库。[BSD]
  • NAppGUI - 用于使用 ANSI-C 构建跨平台桌面应用的 SDK。MIT] [网站
  • nuklear - 一个单头 ANSI C GUI 库。[公共领域]
  • QCustomPlot - Qt 绘图组件,无需额外依赖。[GPLv3]
  • Qwt - Qt 技术应用组件。[基于 LGPL]
  • QwtPlot3D - 功能丰富的基于 Qt/OpenGL 的 C++编程库,提供一系列 3D 组件。[zlib]
  • RmlUi - 进化版的 HTML/CSS 用户界面库。libRocket 分支。[MIT]
  • Saucer - 一个现代的跨平台 C++ WebView 库。[MIT]
  • Sciter - Sciter 是一个可嵌入的 HTML/CSS/脚本引擎,旨在作为现代桌面应用程序的 UI 层。[免费/商业]
  • Slint - 轻量级桌面和嵌入式 GUI 工具包。GPL/免费/专有] [网站
  • TGUI - 跨平台现代 C++ GUI。Zlib] [网站
  • WebUI - 使用任何网络浏览器作为 GUI,后端使用您喜欢的语言,前端使用 HTML5。MIT][网站
  • wxCharts - 一个用于在 wxWidgets 应用程序中创建图表的库。MIT][网站
  • wxWidgets - 一个 C++库,允许开发人员使用单一代码库为 Windows、Mac OS X、Linux 和其他平台创建应用程序。[自有 LGPL]
  • Yue - 一个用于创建原生跨平台 GUI 应用程序的库。[LGPLv2]

图形

  • assimp - Open Asset Import Library (assimp) 是一个跨平台的 3D 模型导入库,旨在为不同的 3D 资源文件格式提供统一的 API。BSD-3-Clause] [网站
  • bgfx - 一个跨平台的渲染库。[BSD]
  • Blend2D - 由 JIT 编译器驱动的 2D 矢量图形引擎。Zlib] [网站
  • Cairo - 一个支持多种输出设备的二维图形库。[LGPL2 或 Mozilla MPL]
  • C-Turtle - 一个 C++11 头文件式的乌龟图形库,作为 CImg 的封装。[MIT]
  • Diligent Engine - 一个现代跨平台的低级三维图形库。[Apache2]
  • DirectXTK - 用于用 C++ 编写 DirectX 11.x 代码的一组辅助类。[MIT]
  • GLFW - 一个简单、跨平台的 OpenGL 操作库。[zlib/libpng]
  • GLFWPP - 一个基于 C++17 的轻量级、仅头文件的 GLFW 封装。[MIT]
  • Harfang 3D 3D 可视化库,支持 C++、Python、Lua 和 Go。基于 BGFX。GPLv3/LGPLv3/专有] [网站
  • herebedragons - 使用各种引擎、框架或 API 实现的基本 3D 场景。MIT] [网站
  • Horde3D - 一个轻量级的 3D 渲染和动画引擎。[EPL]
  • Ion - 一个轻量级且高效的库集合,用于构建使用 3D 图形的跨平台客户端或服务器应用程序。Apache2] [网站
  • Irrlicht - 一个用 C++编写的高性能实时 3D 引擎。[zlib]
  • libigl - 一个简单的 C++几何处理库。[MPL2]
  • LLGL - 低级图形库(LLGL)是一个现代图形 API 的薄抽象层。[BSD-3-Clause]
  • LunaSVG - 一种独立的 C++ SVG 渲染库。[MIT]
  • magnum - 轻量级和模块化的 C++11/C++14 游戏和数据可视化图形中间件。MIT] [网站
  • micro-gl - 实时、可嵌入、仅头文件的 C++11 CPU 矢量图形。无需标准库、无需 FPU 和无需 GPU。CUSTOM] [网站
  • NanoVG - OpenGL 上的抗锯齿 2D 矢量绘图库,用于 UI 和可视化。[Zlib]
  • Ogre 3D :zap: - 一种面向场景、实时、灵活的 3D 渲染引擎(与游戏引擎不同),用 C++ 编写。MIT] [网站
  • OpenSceneGraph - 一个开源的高性能 3D 图形工具包。[OSGPL]
  • OpenSubdiv - 皮克斯用于在 CPU 和 GPU 上评估和渲染细分表面的库。[修改后的 Apache2]
  • OpenVDB - 用于存储、编辑和渲染体积数据集的库和工具。[MPL2]
  • Panda3D - 用于 Python 和 C++ 的 3D 渲染和游戏开发框架。[BSD]
  • Partio - 用于处理粒子数据的库,支持大多数常见文件格式。[修改后的 BSD]
  • Skia - 用于绘制文本、几何图形和图像的完整 2D 图形库。BSD] [网站
  • ThorVG - 一个跨平台的便携式库,允许绘制基于矢量的场景和动画,包括 SVG 和 Lottie。MIT][网站
  • TinySpline - 一个小巧但功能强大的 ANSI C 库,用于插值、变换和查询任意的 NURBS、B 样条曲线和贝塞尔曲线。[MIT]
  • urho3d - 跨平台渲染和游戏引擎。[许多不同的,大多是 MIT]
  • Yocto/GL - 用于数据驱动物理图形的微小 C++ 库。[MIT]
  • olive.c - 简单的 2D 图形库。[MIT]

图像处理

  • Boost.GIL - 通用图像库。Boost][网站
  • BitmapPlusPLus - 简单且快速的仅头文件 Bitmap C++ 库。[MIT]
  • CImg - 一个小巧的开源 C++ 图像处理工具包。[拥有 LGPL 或 GPL 许可]
  • CxImage - 一个图像处理和转换库,用于加载、保存、显示、转换 BMP、JPEG、GIF、PNG、TIFF、MNG、ICO、PCX、TGA、WMF、WBMP、JBG、J2K 图像。[zlib]
  • Dlib :zap: - 一个现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。Boost] [网站
  • fpng - 超快的 C++ .PNG 写入/读取工具。[无许可]
  • FreeImage - 一个支持流行图形图像格式以及其他当今多媒体应用所需格式的开源库。[GPL2 或 GPL3]
  • GD - GD 图形库,常用于 PHP 中的图像加载/操作和缩略图生成。自定义宽松许可证,需要在用户文档中提及][网站
  • DCMTK - DICOM 工具包。
  • GDCM - Grassroots DICOM 库。
  • ITK - 一个开源的跨平台图像分析系统。[Apache2 from ITK 4.0]
  • [Jpegli][https://github.com/google/jpegli] - 改进的 JPEG 编码和解码实现。[BSD-3-Clause]
  • Leptonica - Leptonica 是一个开源库,包含广泛适用于图像处理和图像分析应用的软件。BSD-2-Clause] [网站
  • libavif - 用于编码和解码 .avif 文件的库。[BSD-2-Clause]
  • libfacedetection - 用于图像中人脸检测的开源库。人脸检测速度可达 1500FPS。[BSD]
  • libjpeg-turbo - 一种使用 SIMD 指令加速基线 JPEG 编码和解码的 JPEG 图像编解码器。IJG & BSD-3-Clause & zlib] [网站
  • libjxl - JPEG XL 图像格式的参考实现。[BSD-3-Clause]
  • libpng - 用于在应用程序中读取、创建和操作 PNG(便携式网络图形)光栅图像文件的标准库。libpng-2.0] [网站
  • libspng - 简洁、现代的 libpng 替代方案。BSD-2] [网站
  • libvips - 高速图像处理库,内存需求低。LGPL] [网站
  • LodePNG - C 和 C++编写的 PNG 编码器和解码器。[Zlib]
  • Magick++ - ImageMagick 的 C++程序接口。[Apache2]
  • MagickWnd - ImageMagick 的 C 语言程序接口。[Apache2]
  • MozJPEG - 改进的 JPEG 编码器。[BSD/BSD-3-Clause/ZLIB]
  • OpenCV :zap: - 开源计算机视觉。Apache2] [网站
  • OpenEXR - 跨平台的宽动态范围成像库。[Modified BSDF]
  • OpenImageIO - 强大的图像和纹理处理库,支持多种常见的有损和 RAW 格式。[Modified BSD]
  • OpenJPEG - 用 C 语言编写的开源 JPEG 2000 编解码器。[BSD-2-Clause]
  • PlutoFilter - 一个单头文件、零内存分配的图像过滤库,用 C 语言编写。[MIT]
  • QOI - “相当不错的图像格式”,用于快速无损图像压缩。[MIT]
  • SAIL - 易于使用的跨平台图像解码库,具有可插拔的图像编解码器。[MIT]
  • Simd - 使用 SIMD(SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX-512、VMX(Altivec)和 VSX(Power7)、ARM 的 NEON)的 C++图像处理库。[MIT]
  • stb-image - STB 单头文件图像加载库。[公共领域]
  • tesseract-ocr - 一个 OCR 引擎。[Apache2]
  • TinyDNG - C++中仅包含头文件的 Tiny DNG/TIFF 加载器和写入器。[MIT]
  • TinyEXIF - 用于 JPEG 的符合 ISO 标准的 C++ EXIF 和 XMP 解析库。[MIT]
  • TinyTIFF - 轻量级 TIFF 读取/写入库。[GPL-3.0]
  • Video++ - C++14 高性能视频和图像处理库。[MIT]
  • VIGRA - 一个通用的 C++ 计算机视觉库,用于图像分析。[MIT X11]
  • VTK - 开源的、免费提供的 3D 计算机图形、图像处理和可视化软件系统。[BSD]

国际化

  • gettext - GNU 'gettext'。[GPL2]
  • IBM ICU - 一套提供 Unicode 和全球化支持的 C/C++ 和 Java 库。[ICU]
  • libiconv - 用于不同字符编码之间进行编码转换的库。[GPL]
  • simdutf - Unicode routines (UTF8, UTF16, UTF32): 每秒数十亿字符,使用 SSE2、AVX2、NEON、AVX-512。 [Apache-2/MIT]
  • uni-algo - C/C++ 的 Unicode 算法实现。 [Unlicense 或 MIT]
  • utf8.h - C 和 C++ 的单头文件 utf8 字符串函数。 [Unlicense]
  • utf8proc - 用于处理 UTF-8 Unicode 数据的简洁 C 库。 [MIT]

进程间通信

  • Apache Thrift - 高效的跨语言 IPC/RPC,可在 C++、Java、Python、PHP、C# 等多种语言之间工作。最初由 Facebook 开发。[Apache2]
  • Boost.Interprocess - 仅包含头文件的 Boost 库,支持内核级共享内存和内存映射文件,内置同步机制(信号量、互斥锁等)。Boost] [网站
  • bRPC - bRPC 是一个使用 C++ 语言开发的工业级 RPC 框架,常用于高性能系统,如搜索、存储、机器学习、广告、推荐等。Apache2] [网站
  • Cap'n Proto - 快速数据交换格式和基于能力的 RPC 系统。MIT][网站
  • eCAL - 发布/订阅,客户端/服务器,C++/Python/C#,多种消息协议(protobuf,capnproto 等)。Apache2][网站
  • gRPC - 高性能、开源的通用 RPC 框架。BSD][网站
  • Ice - 支持 C++、C#、Java、JavaScript、Python 等语言的全面 RPC 框架。[GPLv2]
  • iceoryx - 用于安全关键系统的真正零拷贝进程间通信框架,支持 C、Rust 绑定。可在 Linux、QNX、Windows、Mac OS、FreeBSD 上运行。Apache2] [网站
  • libjson-rpc-cpp - 用于 C++服务器和客户端的 JSON-RPC 框架。[MIT]
  • nanomsg - 一种简单的高性能“可扩展性协议”实现。MIT] [网站
  • nng - nanomsg 下一代,一个轻量级无代理消息库。MIT] [网站
  • rpclib - 一个现代的 C++ msgpack-RPC 服务器和客户端库。[MIT]
  • simple-rpc-cpp - 一个简单的 RPC 包装器生成器,用于 C/C++ 函数。[BSD]
  • SRPC - 一个轻量级的 RPC 系统,支持多种协议和 OpenTelemetry。[Apache2]
  • WAMP - 提供 RPC 和发布/订阅消息模式。(多种实现,多种语言)
  • xmlrpc-c - 基于 XML 和 HTTP 的轻量级 RPC 库。[BSD]

JSON

  • Boost.PropertyTree - 可用于解析 XML/JSON/INI/Info 文件的属性树解析器/生成器。Boost] [网站
  • cJSON - ANSI C 中的超轻量级 JSON 解析器。[MIT]
  • DAW JSON Link - C++中快速、便捷的 JSON 序列化和解析。[BSL-1.0]
  • frozen - C/C++的 JSON 解析器和生成器。[GPL & GPL2]
  • Glaze - 现代 C++的内存中、极快的 JSON 和接口库。[MIT]
  • Jansson - 用于编码、解码和操作 JSON 数据的 C 库。[MIT]
  • jbson - jbson 是一个用于构建和迭代 BSON 数据以及 JSON 文档的 C++14 库。[Boost]
  • JeayeSON - 一个非常理性的(仅头文件)C++ JSON 库。[BSD]
  • Jsmn - 一个极简主义的 C 语言 JSON 解析器。[MIT]
  • json :zap: - 现代 C++ 的 JSON。MIT] [网站
  • JSON++ - 一个 C++ 的 JSON 解析器。 [MIT]
  • json.cpp - 一个用于 C++ 的巴洛克风格的 JSON 解析/序列化库。 [Apache-2.0]
  • json.h - 一个简单的单头文件/单源文件解决方案,用于在 C 和 C++ 中解析 JSON。 [Unlicense]
  • json-build - C89 微型零分配 JSON 序列化器。 [MIT]
  • json-c - C 语言中的 JSON 实现。[MIT]
  • jsoncons - 用于 JSON 和类似 JSON 的二进制格式的 C++头文件库,支持 JSONPointer、JSONPatch、JSONPath 和 JMESPath。[Boost]
  • JsonCpp - 用于与 JSON 交互的 C++库。[MIT]
  • Jsonifier - 用于解析和序列化对象到/从 JSON 的一组类 - 非常快速。[MIT]
  • jsonParse - 一个简单的 ANSI C 编写的 JSON 解析器。[MIT]
  • json-parser - 非常低占用的 JSON 解析器,使用可移植的 ANSI C 编写。[BSD]
  • json11 - 一个用于 C++11 的微小 JSON 库。[MIT]
  • json-struct - 高性能,单头文件 JSON 解析器,解析到和从 C++ 结构体。[MIT]
  • json-voorhees - C++的 JSON 库。支持 C++11。无依赖,快速且对开发者友好。[Apache2]
  • JSON Toolkit - C++20 的 JSON、JSON Pointer、JSON Schema 和 JSONL 库。[AGPL/商业]
  • jute - 非常简单的 C++ JSON 解析器。[公共领域]
  • libjson - C 语言中的 JSON 解析和打印库。易于与任何模型集成。[LGPL]
  • libjson - 轻量级 JSON 库。 [?]
  • LIBUCL :zap: - 通用配置库解析器。 [BSD-2-Clause]
  • meojson - 新一代 C++ JSON/JSON5 序列化引擎 | 无依赖 | 仅头文件 | 激发 JSON 潜力。 [MIT]
  • parson - Parson 是一个用 C 编写的轻量级 JSON 库。 [MIT]
  • PicoJSON - 一个仅包含头文件的 C++ JSON 解析器/序列化器。 [BSD]
  • qt-json - 一个简单的类,用于将 JSON 数据解析到 QVariant 层次结构以及反之。 [GPLv3]
  • QJson - 一个基于 Qt 的库,将 JSON 数据映射到 QVariant 对象。 [LGPL2]
  • RapidJSON :zap: - 一个快速的 C++ JSON 解析器/生成器,支持 SAX/DOM 风格 API。 MIT] [网站
  • sajson - 轻量级、性能极高的 C++11 JSON 解析器。[MIT]
  • simdjson - 极其快速的 JSON 库,每秒可解析 GB 级别的 JSON。[Apache-2.0]
  • Sonic-Cpp - 通过 SIMD 加速的快速 JSON 序列化与反序列化库。[Apache-2.0]
  • taoJSON - 零依赖的 C++ 头文件 JSON 库。[MIT]
  • ujson - ujson 是一个小型、支持 C++11、UTF-8 的 JSON 库。[MIT]
  • UltraJSON - UltraJSON 是用 C 编写的超快速 JSON 解码器和编码器。[BSD-3-Clause]
  • YAJL - YAJL 是一个用 C 编写的快速流式 JSON 解析库。[ISC]
  • yyjson - yyjson 是一个用 ANSI C 编写的高性能 JSON 库。[MIT]

日志记录

  • Abseil Logging - Abseil Logging 库提供了将日志消息写入 stderr、文件或其他接收器的功能。[Apache-2.0]
  • Blackhole - 基于属性的日志记录框架,设计为快速、模块化和高度可定制。[MIT]
  • Boost.Log - 设计为非常模块化和可扩展。Boost] [网站
  • BqLog - 一个轻量级、高性能的日志系统,用于“王者荣耀”等项目。[Apache-2.0]
  • Easylogging++ - 非常轻量级、高性能的 C++11(或更高版本)应用程序日志库。[MIT]
  • fmtlog - 一个高性能的 fmtlib 风格日志库,延迟为纳秒级。[MIT]
  • G3log - 具有动态输出的异步日志记录器。[公共领域]
  • glog - Google 日志模块的 C++ 实现。
  • haclog - 一个极其快速的纯 C 日志库。[MIT]
  • Log4cpp - 一个用于灵活地将日志记录到文件、syslog、IDSA 和其他目的地的 C++ 类库。[LGPL]
  • log4cplus - 一个易于使用的 C++ 日志 API,提供线程安全、灵活和任意粒度的日志管理和配置控制。[BSD & Apache2]
  • loguru - 一个轻量级的 C++ 日志库。[公共领域]
  • lwlog - 非常快的 C++17 同步和异步日志库。[MIT]
  • ng-log - 用于应用程序级别的 C++14 日志库。[BSD-3-Clause]
  • plog - C++ 中便携且简单的日志,代码少于 1000 行。[MPL2]
  • reckless - C++的低延迟、高吞吐量异步日志库。[MIT]
  • spdlog - 超快、仅头文件的 C++日志库。
  • templog - 一个非常小巧且轻量级的 C++库,可用于为您的 C++应用程序添加日志。[Boost]
  • P7Baical - 一个开源的跨平台库,用于高速发送遥测和跟踪数据,CPU 和内存使用量极小。[LGPL]
  • Quill - 异步跨平台低延迟日志库。[MIT]

机器学习

  • Caffe - 神经网络的快速框架。[BSD]
  • catboost - 快速、可扩展、高性能的基于决策树的梯度提升库。[Apache2]
  • CCV - 基于 C/Cached/核心计算机视觉库,一个现代计算机视觉库。[BSD]
  • darknet - 用 C 和 CUDA 编写的开源神经网络框架。公共领域] [网站
  • Dlib :zap: - 一个现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。Boost] [网站
  • FAISS - 用于高效相似性搜索和密集向量聚类的库。[MIT]
  • Fido - 一个用于嵌入式电子设备和机器人的高度模块化的 C++ 机器学习库。MIT][网站
  • flashlight - 来自 Facebook AI Research 的快速、灵活的机器学习库,完全用 C++ 编写,基于 ArrayFire 张量库。BSD-3-Clause][网站
  • ggml - 支持十六位和四位量化的机器学习张量库。[MIT]
  • libsvm - 一个简单、易用、高效的 Support Vector Machines (SVM) 库。BSD-3-Clause][网站
  • m2cgen - 一个将训练好的经典机器学习模型编译成无依赖的本地 C 代码的命令行工具。[MIT]
  • MeTA - 一个现代 C++ 数据科学工具包。MIT] [网站
  • Minerva - 一个快速且灵活的深度学习系统。[Apache2]
  • mlpack - 一个可扩展的 C++ 机器学习库。LGPLv3] [网站
  • ncnn - 一个针对移动平台进行优化的高性能神经网络推理计算框架。[BSD]
  • OpenCV :zap: - 开源计算机视觉库。BSD] [网站
  • oneDAL - 一个强大的机器学习库,有助于加速大数据分析。[Apache]
  • ONNX runtime - 用于训练和推理 ONNX 模型的 C 和 C++库。ONNX 是一种标准,AI 模型可以转换为任何训练库。MIT] [网站
  • Recommender - 用于产品推荐/建议的协同过滤(CF)C 库。[BSD]
  • RNNLIB - 用于序列学习问题的循环神经网络库。[GPLv3]
  • SHOGUN - Shogun 机器学习工具箱。[GPLv3]
  • sofia-ml - 用于机器学习的快速增量算法套件。[Apache2]
  • USearch - 用于向量和字符串的快速搜索和聚类库。[Apache2]
  • VLFeat - VLFeat 开源库实现了流行的计算机视觉算法,专注于图像理解和局部特征提取与匹配。BSD-2-Clause] [网站
  • xgboost - 可扩展、便携和分布式梯度提升(GBDT、GBRT 或 GBM)库,支持 Python、R、Java、Scala、C++ 等。可在单机、Hadoop、Spark、Flink 和 DataFlow 上运行。[Apache2]

数学

  • Apophenia - 一个用于统计和科学计算的 C 库。[GPL2]
  • Armadillo - 用于线性代数和科学计算的快速 C++ 库。Apache2] [网站
  • autodiff - 一个现代、快速且表达力强的 C++ 自动微分库。MIT] [网站
  • blaze - 用于密集和稀疏运算的高性能 C++ 数学库。[BSD]
  • Boost.Multiprecision - 提供更高范围/精度的整数、有理数和浮点数类型,支持 C++,以头文件形式或使用 GMP/MPFR/LibTomMath 后端。 Boost] [网站
  • ceres-solver - 来自 Google 的 C++ 库,用于建模和求解大型复杂非线性最小二乘问题。 [BSD]
  • CGAL - 高效可靠的几何算法集合。 LGPL&GPL] [网站
  • cml - 可配置数学库。 [Boost]
  • CNL - 一个用于 C++的组合数字库。[Boost]
  • DirectXMath - 一个用于游戏和图形应用程序的全内联 SIMD C++线性代数库。
  • Dlib :zap: - 一个现代的 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。Boost] [网站
  • Eigen - 一个用于线性代数、矩阵和向量运算、数值求解器及相关算法的高级 C++ 模板头库。[MPL2]
  • ExprTk - C++数学表达式工具库(ExprTk)是一个简单易用、易于集成且运行效率极高的运行时数学表达式解析器和求值引擎。[MIT]
  • Geometric Tools - 用于数学、图形、图像分析和物理领域的 C++计算库。Boost] [网站
  • GLM - 仅包含头文件的 C++数学库,与 OpenGL 的 GLSL 数学相匹配并互操作。MIT] [网站
  • GMTL - 图形数学模板库是一个工具集合,以通用方式实现图形原语。[GPL2]
  • GMP - 一个用于任意精度算术的 C 库,操作有符号整数、有理数和浮点数。[LGPL3 & GPL2]
  • Klein - 一个快速、SIMD 优化的 C++17 几何代数库,用于点、线和平面的投影、交点、连接、刚体运动等。MIT] [网站
  • libfixmath - 跨平台定点数学库。[MIT]
  • linalg.h - 单文件、公共领域、简短的 C++ 向量数学库。[Unlicense]
  • MATIO - MATLAB MAT 文件 I/O 库。BSD-2-Clause][website
  • MatX - 一个具有 MATLAB/Python 类似语法的 GPU 加速 C++17 数值计算库。[BSD 3-clause]
  • mexce - 一个单头文件、无依赖的 JIT 编译器,用于标量数学表达式,可生成优化的 x87 FPU 机器代码。[BSD]
  • MIRACL - 一个多精度整数和有理数算术加密库。[AGPL]
  • NumCpp - 一个模板化的、仅包含头文件的 C++ 实现,用于 Python Numpy 库。[MIT]
  • OMath - 一个跨平台的现代通用数学库,使用 C++23 编写,适用于作弊/游戏开发。[ZLIB]
  • muparser - muParser 是一个可扩展的高性能数学表达式解析器库,使用 C++ 编写。[MIT]
  • LibTomMath - 一个完全使用 C 编写的自由开源便携式数论多精度整数库。公共领域 & WTFPL] [网站
  • linmath.h - 一个精简的线性数学库,旨在图形编程。[WTFPL]
  • lp_solve - 一个用于建立和求解线性规划问题的库。LGPL] [网站
  • OpenBLAS - 基于 GotoBLAS2 1.13 BSD 版本进行优化的 BLAS 库。BSD 3-clause] [网站
  • PCG-rand - PCG 是一系列简单、快速、空间高效且统计性能良好的随机数生成算法。与许多通用 RNG 不同,它们也难以预测。[Apache]
  • QuantLib - 一个用于量化金融的自由/开源库。修改后的 BSD] [网站
  • sebsjames/maths - 一个模板化的 C++20 数学库,强调为客户程序员提供便利和乐趣(用于mathplot)。Apache2] [网站
  • SimSIMD - 用于 x86 AVX2、AVX-512、Arm NEON 和 SVE 的矢量距离函数。[Apache2]
  • StatsLib - 一个 C++头文件库,包含统计分布函数。Apache2] [网站
  • SymEngine - 快速符号处理库,是 SymPy 核心用 C++ 重写的。[MIT]
  • TinyExpr - 用于从字符串解析和计算数学表达式的 C 库。[zlib]
  • Vc - C++ 的 SIMD 向量类。[BSD]
  • Versor - 用于几何代数(包括欧几里得、射影、保形、时空等)的通用 C++ 库(快速)。
  • Wagyu - 一个用于几何运算(并集、交集、差集和异或)的通用库。[mapbox-wagyu 原版]
  • Wykobi - 一个高效、健壮且易于使用的 C++ 2D/3D 计算几何库。[MIT]
  • xtensor - 一个基于 C++14 的数值分析库,使用多维数组表达式,语法受 NumPy 启发。BSD 3-clause] [网站
  • universal - 一个基于 C++14 的头文件库,实现任意位正数运算。位正数系统是一种比 IEEE 浮点数更高效的梯形浮点数。位正数支持可重复的计算科学。[MIT 许可证]
  • utl::random - 一个仅包含头文件的 C++17 库,用于蒙特卡洛模拟和游戏开发中的快速随机数生成。[MIT]
  • XAD - C++ 的强大自动微分库。AGPL] [网站

内存分配

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

多媒体

网络编程

  • ada - WHATWG 兼容且快速的 URL 解析器,使用现代 C++编写。 [Apache-2.0/MIT]
  • ACE - 一个用 C++ 编写的面向对象网络编程工具包。[?MIT?]
  • Boost.Asio :zap: - 一个跨平台的 C++ 网络和底层 I/O 编程库。Boost] [网站
  • Boost.Beast :zap: - 基于 Boost.Asio 的 C++11 HTTP 和 WebSocket 库。Boost] [网站
  • Breep - 基于事件的高级 C++14 对等库。[EUPL-1.1 (OSI 认证)]
  • C++ REST SDK - C++ REST SDK (之前名为 Casablanca)。[Apache2]
  • CZMQ - ØMQ 的高级 C 绑定。MPL2] [网站
  • Restbed - C++11 异步 RESTful 框架。[AGPL]
  • Restinio - 一个仅包含头文件的 C++14 库,为您提供嵌入式 HTTP/Websocket 服务器。[BSD]
  • c-ares - 一个用于异步 DNS 请求的 C 库。[MIT]
  • cpp-httplib - 一个单文件 C++11 头文件 HTTP/HTTPS 服务器库。[MIT]
  • cpp-netlib - 一个用于高级网络编程的开源库集合。[Boost]
  • cpp-netlib/uri - C++ 的 URI 解析器/构建器库,兼容 RFC 3986 和 RFC 3987。[Boost]
  • CppServer - 超高速、低延迟的异步套接字服务器和客户端 C++库,支持 TCP、SSL、UDP、HTTP、HTTPS、WebSocket 协议,并解决 10K 连接问题。[MIT]
  • cpr - 一个现代的 C++ HTTP 请求库,具有简单但强大的接口。模仿 Python Requests 模块。 MIT] [网站
  • curlcpp - 一个用于 CURL(libcurl)的面向对象的 C++包装器。[MIT]
  • curlpp -libcURL 的 C++封装。 [MIT]
  • DPDK - 数据平面开发套件,用于高速数据包处理的库和驱动程序。BSD-3-Clause & GPL-2.0] [网站
  • Dyad.c - C 语言的异步网络。[MIT]
  • ENet - 可靠的 UDP 网络库。MIT] [网站
  • evpp - 支持 TCP/UDP/HTTP 协议的 C++高性能网络库。[BSD]
  • C++的 FTP 客户端 - 用于发起 FTP 请求的 C++客户端。[MIT]
  • H2O - 一个优化的 HTTP 服务器,支持 HTTP/1.x 和 HTTP/2。它也可以用作库。[MIT]
  • HTTP 解析器 :zap: - C 语言的 http 请求/响应解析器。[MIT]
  • KCP - 一种快速可靠的 ARQ 协议,帮助应用程序减少网络延迟。[MIT]
  • 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-Clause]
  • libwebsockets - 一个轻量级的纯 C WebSocket 实现,提供客户端和服务器库。LGPL2.1 + 静态链接例外][网站
  • Lithium - 无需成为 C++ 专家即可构建高性能 C++ HTTP 服务器。[MIT]
  • lwIP - 一个轻量级的 TCP/IP 协议栈。[Modified BSD]
  • mailio - mailio 是一个跨平台的 C++ 库,用于 MIME 格式和 SMTP、POP3 和 IMAP 协议。[BSD]
  • Mongoose - 非常轻量级的 Web 服务器。[GPL2]
  • MQTT-C - 一个适用于嵌入式系统和 PC 的可移植 MQTT C 客户端。MIT] [网站
  • mTCP - 面向多核系统的可高度扩展的用户级 TCP 栈。[Modified BSD]
  • Muduo - Linux 下的 C++非阻塞网络库,用于多线程服务器。[BSD]
  • nghttp2 - HTTP/2 C 库。MIT] [网站
  • nghttp3 - 用 C 语言编写的 HTTP/3 库。MIT] [网站
  • Onion - C 语言设计的轻量级、易于使用的 HTTP 服务器库。[Apache2/GPL2]
  • PF_RING™ - 高速数据包处理框架。LGPL-2.1] [网站
  • PicoHTTPParser - 一个小巧、原始、快速的 HTTP 请求/响应解析器。[MIT]
  • POCO :zap: - 用于构建在桌面、服务器、移动和嵌入式系统上运行的、基于网络和互联网的应用程序的 C++类库和框架。Boost] [网站
  • Proxygen - Facebook 的 C++ HTTP 库集合,包括易于使用的 HTTP 服务器。[BSD]
  • RedPanda - 开发者的流数据平台。兼容 Kafka API。速度提升 10 倍。[BSL]
  • RakNet - 面向游戏程序员的跨平台、开源 C++网络引擎。[BSD]
  • restclient-cpp - C++的简单 REST 客户端。它封装了 libcurl 用于 HTTP 请求。[MIT]
  • Seasocks - 简单、小巧的 C++ 嵌入式 Web 服务器,支持 WebSocket。 [BSD]
  • tlse - 单个 C 文件实现的 TLS 1.2/1.3,使用 tomcrypt 作为加密库 [BSD-2-Clause]
  • TQUIC - 高性能、轻量级、跨平台的 QUIC 库,提供 C 和 C++ 接口。 [Apache2]
  • Tufão - 基于 Qt 构建 C++ 异步 Web 框架。 [LGPL2]
  • uriparser - 严格遵循 RFC 3986 的 URI 解析和处理库。[BSD-3-Clause]
  • uWebSockets - µWS 是目前最轻量级、高效且可扩展的 WebSocket 和 HTTP 服务器实现之一。[Zlib]
  • UCall - 基于 io_uring 的高性能 SIMD 加速 RPC 库。[Apache2]
  • WAFer - 基于 C 语言的超轻量级软件平台,适用于可扩展的服务器端和网络应用程序。C 程序员的 node.js。[GPL2]
  • Wangle - 一个用于构建异步、事件驱动的现代 C++ 服务的客户端/服务器应用程序框架。[Apache-2.0]
  • wdt - 一个可嵌入的库(以及命令行工具),旨在尽可能快地在多个 TCP 路径上在两个系统之间传输数据。[BSD-3-Clause]
  • WebSocket++ - 基于 C++/Boost Asio 的 WebSocket 客户端/服务器库。[BSD]
  • wspp - 一个零依赖的单头文件、现代 WebSocket 客户端和服务器,ws/wss 库。[MIT]
  • PcapPlusPlus - 一个跨平台的 C++ 网络抓包和报文解析与构造框架。[Unlicense]
  • ZeroMQ - 高速、模块化的异步通信库。LGPL3/MPL2] [网站
  • Zyre - 用于对等应用程序的区域集群。[MPL2]

Office Open XML

用于解析和操作 xlsx、pptx、docx 等文件的库
  • DuckX - 用于创建和修改 Microsoft Word (.docx) 文件的 C++ 库。[MIT]
  • FreeXL - 用于从电子表格中提取有效数据的开源库。[MPL/GPL-2/LGPL-2]
  • libxls - 从 C/C++ 读取二进制 Excel 文件。[BSD-2-Clause]
  • libxlsxwriter - 一个用于创建 Excel XLSX 文件的 C 库。BSD-2-Clause] [网站
  • OpenXLSX - 一个用于读取、写入、创建和修改 Microsoft Excel® (.xlsx) 文件的 C++ 库。[BSD-3-Clause]
  • SimpleXlsxWriter - 用于 Microsoft Excel 2007 及以上版本的 XLSX 文件写入器。[zlib]
  • XLSX I/O - 用于读取和写入 .xlsx 文件的 C 库。[MIT]

PDF

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

物理

动力学模拟引擎
  • Box2D - 一个用于游戏的 2D 物理引擎。[BSD-like]
  • Bullet - 一个用于游戏的 3D 物理引擎。zlib] [网站
  • Chipmunk - 一个快速且轻量级的 2D 游戏物理库。MIT] [网站
  • Jolt Physics - 一个对多核友好的刚体物理和碰撞检测库。[MIT]
  • Kratos - 用于构建并行、多学科仿真软件的框架,旨在实现模块化、可扩展性和高性能。BSD] [网站
  • LiquidFun - 一个用于游戏的 2D 物理引擎。[BSD-like]
  • Newton Dynamics - 用于实时模拟物理环境的集成解决方案。[zlib]
  • ODE - Open Dynamics Engine - 一个开源、高性能的刚体动力学模拟库。[BSD&LGPL]
  • ofxBox2d - openFrameworks 的 Box2D 封装。[BSD-like]
  • PhysX - 由 Nvidia 开发的开源实时物理引擎中间件 SDK,作为 Nvidia GameWorks 软件套件的一部分。[BSD-3-Clause]
  • PlayRho - 一个交互式物理引擎和库。[Zlib]
  • Project Chrono - 一个开源的多物理场仿真引擎。BSD-3-Clause] [网站
  • Quantum++ - 一个现代 C++11 量子计算库。[MIT]
  • QuarkPhysics - 一个 2D 软体和刚体物理引擎。[MIT]
  • Simbody - 高性能 C++ 多体动力学/物理库,用于模拟关节式生物力学和机械系统,如车辆、机器人和人体骨骼。[Apache2]
  • SOFA - SOFA 是一个面向实时模拟的开源框架,特别强调医学模拟。LGPL] [网站

反思

  • config-loader - 一个 C++17 静态反射框架,从解析配置文件到原生数据结构。[MIT]
  • Better Enums - 反射枚举(转换为字符串、迭代)。单头文件。BSD] [网站
  • clReflect - 使用 clang 的 C++ 反射。[MIT]
  • CPFG - 一个用于反射、回调和脚本绑定的 C++03 库。[Apache2]
  • CPP-Reflection - 使用 clang 的 C++ 反射。[MIT]
  • Easy Reflection - 类似 Rust、Java 或 Go 的简单快速反射 + 序列化解决方案。[Apache]
  • Magic Enum - 仅头文件的 C++17 库提供枚举的静态反射(转换为字符串、从字符串转换、迭代),可与任何枚举类型配合使用,无需任何宏或样板代码。[MIT]
  • magic_get - 为用户定义类型提供类似 std::tuple 的方法,无需任何宏或样板代码。[Boost]
  • meta - C++中仅依赖头文件的、非侵入式且无宏的运行时反射系统。[MIT]
  • Nameof - 仅依赖头文件的 C++17 库,提供 nameof 宏和函数,用于获取变量、类型、函数、宏和枚举的简单名称。[MIT]
  • Ponder - C++11 反射库。[MIT]
  • REFLECT - C++20 静态反射库。[MIT]
  • reflect-cpp - 通过反射进行序列化,包括从结构体中自动获取字段名称。[MIT]
  • RTTR - 一个 C++11 反射库。MIT] [网站
  • simple_enum - 一个快速、直观且类型安全的 C++ 枚举支持库。BSL-1.0] [网站
  • TSMP - 一个无入侵和宏的 C++20 静态反射库。它使用 libclang 从您的源代码中提取反射数据,并通过模板特化使其可用。[MIT]
  • visit_struct - 一个用于 C++ 结构体字段反射的微型库。[Boost]
  • Refureku - 一个 C++17 运行时反射和代码生成库。[MIT]

正则表达式

  • CppVerbalExpressions - 让 C++ 正则表达式变得简单。[MIT]
  • CTRE - 一个编译时 PCRE(几乎)兼容的正则表达式匹配器。[MIT]
  • Hyperscan - Hyperscan 是由英特尔提供的高性能多正则表达式匹配库。可同时匹配大量正则表达式(最多数万条)。通常用于 DPI 库堆栈。[BSD]
  • Oniguruma - 一个现代且灵活的正则表达式库,支持多种字符编码。[BSD]
  • PCRE - 一个受 Perl 中正则表达式功能启发的 C 语言正则表达式库。[BSD]
  • PIRE - 由 Yandex 开发的 Perl 不兼容正则表达式库。速度非常快(超过 400 MB/s)。[LPGL v3.0]
  • RE2 - 基于 自动机理论 的 有限状态机 正则表达式软件库。[BSD-3-Clause]
  • SLRE - C/C++ 的 超轻量级正则表达式引擎。[GPLv2/专有]
  • sregex - 基于 NFA/DFA 的 非回溯式 Perl 兼容正则表达式引擎库,用于匹配大型数据流。[BSD]
  • SRELL - 用于 C++ 的 Unicode-aware 正则表达式模板库。[BSD]
  • TRE - 近似正则表达式匹配库和 agrep 命令行工具。[BSD-2-Clause]
  • Vectorscan - 高性能正则表达式匹配库的可移植分支。BSD-3-Clause] [网站

机器人技术

科学计算

  • AMGCL - 用于求解代数多重网格的大型稀疏线性系统的头文件-only C++库。[MIT]
  • Au - 兼容 C++14 的物理单位库,无依赖项,并提供单文件交付选项。强调安全性、可访问性、性能和开发者体验。Apache 2.0] [网站
  • FFTW - 用于在一维或多维中计算 DFT 的 C 库。[GPL]
  • GSL - GNU 科学库。[GPL]
  • preCICE - 用于分区多物理场模拟(FSI、CHT 等)的耦合库。LGPL] [网站
  • TileDB - 快速密集和稀疏多维数组 DBMS。MIT] [网站
  • Trilinos - 高性能偏微分方程求解器。[BSD]
  • Torch - 一个优先使用 GPU、支持广泛机器学习算法的科学计算框架。BSD-3-Clause] [网站
  • volesti - 从截断分布中进行高维采样、凸优化和体积计算。

脚本

  • AngelScript - AngelScript 是一种面向游戏的解释型/编译型脚本语言。[zlib]
  • Boost.Python - 一个 C++ 库,能够在 C++ 和 Python 编程语言之间实现无缝互操作性。Boost] [网站
  • cppimport - 直接从 Python 导入 C++ 文件![MIT]
  • CppSharp - 用于将 C/C++ API 与高级语言连接的工具和库。[MIT]
  • ChaiScript - 一种易于使用的 C++ 嵌入式脚本语言。BSD] [网站
  • ctypes.sh - 一个用于 bash 的外部函数接口。[MIT]
  • Cython - Cython 是一个用于 Python 编程语言和扩展 Cython 编程语言(基于 Pyrex)的优化静态编译器。它使得为 Python 编写 C 扩展与使用 Python 本身一样简单。Apache] [网站
  • djinni - 一个用于生成跨语言类型声明和接口绑定的工具。[Apache2]
  • Duktape - 一个具有紧凑体积的可嵌入 JavaScript 引擎。MIT][网站
  • JavaCpp - 连接 Java 和原生 C++的缺失桥梁。[Apache2]
  • JerryScript - 适用于物联网的超轻量级 JavaScript 引擎。Apache-2.0][网站
  • libffi - 一个可移植的外部函数接口库。MIT][网站
  • Lua - 一个用于配置文件和基本应用程序脚本的最小化、快速脚本引擎。[MIT]
  • LuaBridge - 一个轻量级、无依赖库,用于将 Lua 绑定到 C++。[MIT]
  • LuaBridge3 - 一个轻量级、无依赖库,用于将 Lua、LuaJIT、Luau 和 Ravi 绑定到 C++。[MIT]
  • luacxx - 用于创建 Lua 绑定的 C++11 API。[MIT]
  • Luau - 一种快速、小巧、安全、渐进式类型的可嵌入脚本语言,源自 Lua。 MIT] [网站
  • MicroQuickJS - 面向嵌入式系统的 JavaScript 引擎 MicroQuickJS(又名 MQuickJS)。 [MIT]
  • MiniScript - 现代化、优雅、易于学习,易于嵌入您自己的 C#或 C++项目的脚本语言。 [MIT]
  • nanobind - 微型高效的 C++/Python 绑定。 [BSD-3-Clause]
  • nbind - 带有魔力的头文件,使您的 C++ 库可以从 JavaScript 访问。[MIT]
  • PHP-CPP - 用于使用 C++ 构建 PHP 扩展的库。Apache2] [网站
  • pocketpy - 用于游戏脚本 C++17 头文件仅 Python 解释器。MIT] [网站
  • pybind11 - C++11 和 Python 之间的无缝互操作性。[BSD]
  • QuickJS - 一个小巧且可嵌入的 JavaScript 引擎。[MIT]
  • SIP - Python v2 和 v3 的 C 或 C++ 绑定生成器。[GPL]
  • sol2 - 一个具有高级功能和顶级性能的 C++ <-> Lua API 封装器。[MIT]
  • SWIG - 一个包装器/接口生成器,允许你将 C++ 代码链接到 JavaScript、Perl、PHP、Python、Tcl 和 Ruby。GPL/输出未获许可][网站
  • txiki.js - 一个微型的 JavaScript 运行时。[MIT]
  • V7 - 一个嵌入式 JavaScript 引擎。[GPL2]
  • V8 - 由 Google 开发的快速 JavaScript 引擎,可以嵌入到任何 C++ 应用程序中。[BSD]
  • v8pp - 一个仅包含头文件的库,用于将 C++ 类和函数暴露给 V8,以便在 JavaScript 代码中使用。BOOST] [网站
  • ChakraCore - 微软开发的 JavaScript 引擎,可以嵌入到 nodejs 中。[MIT]

序列化

  • BitSerializer - 支持多种格式的序列化库(JSON、XML、YAML、CSV、MsgPack)[MIT]
  • Bitsery - 仅包含头文件的 C++ 二进制序列化库。[MIT]
  • Bond - 一个用于处理模式化数据的开源跨平台框架。[MIT]
  • Boost.Serialization - Boost Serialization 库。Boost] [网站
  • Cap'n Proto - 快速数据交换格式和基于能力的 RPC 系统。MIT] [网站
  • cereal - 一个 C++11 序列化库。[BSD]
  • cista - 一个用于零拷贝高性能(反)序列化的 C++17 库。[MIT]
  • cppcodec - 一个仅包含头文件的 C++11 库,用于对 base64、base32 和十六进制进行编码/解码,具有一致且灵活的 API。[MIT]
  • FastBinaryEncoding - Fast Binary Encoding 是一种超快且通用的 C++、C#、Go、Java、JavaScript、Kotlin、Python、Ruby、Swift 序列化解决方案。[MIT]
  • FlatBuffers - 一个内存高效的序列化库。[Apache2]
  • Kaitai Struct - 一种用于描述各种二进制数据结构的声明式语言,以及一个用于生成 C++ 解析器代码的编译器。[GPLv3+][MIT][Apache2]
  • iguana - 一种用 C++20 和 C++17 开发的现代、通用且易于使用的序列化引擎。[Apache2]
  • MessagePack - 一种高效的二进制序列化格式 "类似 JSON",适用于 C 和 C++。Apache2] [网站
  • mrpt-serialization - 版本化的二进制或文本格式序列化。BSD] [网站
  • nanopb - ANSI C 中的小代码量 Protocol Buffers 实现。[Zlib]
  • protobuf - Protocol Buffers - Google 的数据交换格式。[BSD]
  • protobuf-c - C 语言中的 Protocol Buffers 实现。[BSD]
  • Protocol Puffers - 一个小巧、高度模板化、与 protobuf 兼容的 C++20 头文件库,用于序列化/反序列化。[Apache-2.0]
  • SimpleBinaryEncoding - 用于低延迟应用程序在二进制格式中编码和解码应用消息。[Apache2]
  • upb - C 语言中的一个小型 protobuf 实现。[BSD]
  • Wirehair - 大数据的 O(N) Fountain 码。[BSD-3-Clause]
  • YAS - 非常快的Yet Another Serialization 库,支持二进制/文本/json 格式。[Boost]
  • zpp_bits - 实际上,最快的现代Serialization 库。只需查看这个视频

串口

排序

  • cpp-sort - C++14 的排序算法及相关工具。[MIT]
  • pdqsort - 模式对抗快速排序。[zlib]
  • Timsort - 一个模板化的稳定排序函数,在反转或半排序数据方面优于基于快速排序的算法,包括 std::sort。[MIT]
  • Indiesort - 一个排序包装器,它允许使用 std::sort(以及其他随机访问排序函数)与非随机访问容器,并且还提高了随机访问容器和数组中大/非简单可复制类型的排序性能。zLib] [网站
  • x86-simd-sort - 用于高性能 SIMD 基于排序算法的 C++ 模板库。[BSD-3-Clause]

视频

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

虚拟机

  • CarpVM - 用 C 语言编写的"有趣"的虚拟机。让我们看看效果如何。[GPLv3]
  • MicroPython - 旨在将 Python 3.x 的实现放到微控制器上。[MIT]
  • TinyVM - 一种用纯 ANSI C 编写的小型、快速、轻量级虚拟机。[MIT]

Web 应用程序框架

  • Civetweb - 提供易于使用、功能强大、可嵌入 C/C++ 的 Web 服务器,支持可选的 CGI、SSL 和 Lua。[MIT]
  • C++ REST SDK - Microsoft 项目,用于在原生代码中通过现代异步 C++ API 设计实现基于云的客户端-服务器通信。[MIT]
  • CppCMS - 一个自由的高性能 Web 开发框架(不是内容管理系统)。[LGPLv3]
  • Crow - Crow 是一个用于运行 Web 服务的 C++微框架。它使用类似于 Python 的 Flask 的路由功能。BSD] [网站
  • Cutelyst - 一个基于 Qt 构建的 C++ Web 框架,采用 Catalyst(Perl)框架的简单方法。BSD-3-Clause] [网站
  • Drogon - 基于 C++17/20 的高性能 HTTP 应用框架。[MIT]
  • C++ wfrest - C++ Web 框架 REST API。[Apache2]
  • facil.io - 支持 HTTP、WebSocket、SSE 等的事件驱动、高性能 C Web 框架。MIT] [网站
  • Kore - 超快且灵活的 C 语言 Web 服务器/框架,用于开发 C 语言编写的 Web 应用。[ISC]
  • libOnion - 轻量级库,帮助您使用 C 编程语言创建 web 服务器。[LGPLv3]
  • lwan - 实验性、可扩展、高性能的 HTTP 服务器。[GPL2]
  • oat++ - 轻量级、零依赖框架,用于创建高性能的 web 服务。Apache-2.0] [网站
  • Pistache - Pistache 是一个用纯 C++11 编写的 C++ REST 框架,无外部依赖。[Apache2]
  • 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 对人类来说解析起来很麻烦,即使对计算机来说也是一场灾难。根本没有任何理由让这种糟糕的东西存在。- Linus Torvalds
  • Boost.PropertyTree - 一个可以用来解析 XML/JSON/INI/Info 文件的属性树解析器/生成器。Boost] [网站
  • Expat - 一个用 C 语言编写的 XML 解析器库。[MIT]
  • Libxml2 - Gnome 的 XML C 解析器和工具包。[MIT]
  • libxml++ - 用于 C++的 XML 解析器。[LGPL2]
  • Mini-XML - 一个用 ANSI C 编写的微小 XML 解析库。[LGPL2 带例外条款]
  • PugiXML - 一个轻量级、简单且快速的带 XPath 支持的 C++ XML 解析器。[MIT]
  • RapidXml - 致力于创建最快的 XML 解析器,同时保留可用性、可移植性和合理的 W3C 兼容性。[Boost]
  • TinyXML - 一个简单、小巧、极简的 C++ XML 解析器,可以轻松集成到其他程序中。[zlib]
  • TinyXML2 - 一个简单、小巧、高效的 C++ XML 解析器,可以轻松集成到其他程序中。[zlib]
  • TinyXML++ - TinyXML 的全新接口,利用了 C++的许多优势。模板、异常和更好的错误处理。[MIT]
  • Xalan C - 一个使用符合 XSLT 1.0 标准的样式表来转换 XML 文档的库和命令行程序。Apache-2.0] [网站
  • Xerces-C++ - 一个用 C++ 可移植子集编写的验证 XML 解析器。[Apache2]

Yaml

  • fkYAML - 一个 C++ 头文件 YAML 库。[MIT]
  • LibCYAML - 用于读取和写入 YAML 的 C 库。[ISC]
  • libfyaml - 一个高级的 1.2 YAML 和 JSON 解析器/写入器。[MIT]
  • LibYAML - 用于解析和生成 YAML 的 C 库。MIT] [网站
  • mini-yaml - 单头 YAML 1.0 C++11 序列化/反序列化器。[MIT]
  • rapidyaml - Rapid YAML 是一个用于解析和生成 YAML 的 C++ 库。[MIT]
  • yaml-cpp - 一个 C++ 编写的 YAML 解析器和生成器。[MIT]

杂项

不适用于上述类别或尚未分类的有用库或工具
  • access_profiler - 一个用于统计 C++ 程序中成员变量访问次数的工具。[GPL3]
  • American fuzzy lop a.k.a. afl-fuzz - 一种疯狂的模糊测试工具,能够在给定时间和最小示例输入的情况下自动发现漏洞。[Apache2]
  • Argon2 - PHC 获胜者 Argon2 密码哈希算法。[CC0/Apache2]
  • AsmJit - 低延迟的机器码生成。Zlib] [网站
  • Better String - C 语言字符串库的替代品,功能更强大,没有缓冲区溢出问题。还包含 C++包装器。[BSD, GPL2]
  • Boost.Signals2 - 一个管理信号和槽系统的实现。Boost] [网站
  • casacore - 一套从 aips++派生出的 c++核心库。[LGPL]
  • CCTZ - 一个使用时区规则在绝对时间和民用时间之间进行转换的 C++库。[Apache-2.0]
  • HackingCPP 的速查表 - 算法、视图、容器、随机性等方面的酷炫速查表和信息图。
  • Concord - 用 C 编写的 Discord API 封装库。MIT][网站
  • CPPItertools - 受 Python 内置函数和 itertools 库启发的基于范围的 for 循环扩展。[BSD-2-Clause]
  • CPP-JWT - C++ 的 JSON Web Token 库。[MIT]
  • cpp-lazy - 一个适用于 C++11/14/17/20 的快速且易于使用的惰性求值库。[MIT]
  • CRCpp - 一个易于使用且快速的 C++ CRC 库。[BSD-3-Clause]
  • cxx-prettyprint - 一个用于 C++ 容器的格式化输出库。[Boost]
  • date - 一个基于 C++11/14/17 <chrono> 头文件的日期和时间库。MIT] [网站
  • D++ (DPP) - 一个轻量级、高性能且可扩展的 C++ 库,用于创建 Discord Bot。Apache2] [网站
  • DynaMix - 一个允许你在运行时组合和修改对象的库。[MIT]
  • emio - 一个安全、快速的高级和低级字符输入/输出库。[MIT]
  • faker-cxx - C++20 Faker 库,用于生成用于测试和开发的假(但逼真)数据。[MIT]
  • fast_float - 快速、精确的 C++ from_chars,比 strtod 快 4 到 10 倍,是 GCC 12、Chromium、Redis、Webkit/Safari 的一部分。[Apache2/BSL-1.0/MIT]
  • FastFormat - 受 log4j 和 Pantheios 启发的快速、安全的 C++ 格式化。[Simplified BSD]
  • fast_io - C++20 显著更快的输入/输出。[MIT]
  • fccf - 一个命令行工具,递归搜索目录以查找匹配搜索字符串的 C/C++ 源代码。[MIT]
  • {fmt} :zap: - 一个小巧、安全且快速的 C++ 格式化库。Simplified BSD] [网站
  • gcc-poison - 一个简单的头文件,供开发者从应用程序中禁止不安全的 C/C++ 函数。
  • happly - 一个 C++ 唯头文件解析器,用于 PLY 文件格式。快乐地解析 .ply 文件![MIT]
  • hedley - 一个 C/C++ 头文件,旨在平滑一些特定于平台的烦恼。网站
  • Hexi - 仅头文件,轻量级 C++ 库,用于二进制流与序列化。[Apache-2.0/MIT]
  • HighwayHash - 快速强哈希函数:SipHash/HighwayHash。[Apache-2.0]
  • inja - 现代 C++ 的模板引擎。[MIT]
  • Jinja2С++ - 几乎完全兼容的模板引擎实现。网站
  • jwt-cpp - 一个用于在 C++ 中创建和验证 JSON Web 令牌的头文件库。[MIT]
  • Kangaru - 一个适用于 C++11 和 C++14 的依赖注入容器。[MIT]
  • Klib - 常见算法和数据结构的轻量级实现。[MIT]
  • KOMIHASH - 非常快速、高质量的哈希函数,支持离散增量哈希和流式哈希。[MIT]
  • libcpuid - 一个用于 x86 CPU 检测和特性提取的小型 C 库。[BSD]
  • libenvpp - 一个现代的 C++ 库,用于类型安全的环境变量解析。[Apache-2.0]
  • libevil - 恶魔许可证管理器。[GPLv3]
  • libnih - 一个轻量级的 C 函数和结构库。[GPL2.1]
  • libONVIF - 另一个 ONVIF 库。[GPL-3.0]
  • libpopcnt - 快速 C/C++位计数库。[BSD-2-Clause]
  • libsigc++ - 标准 C++的类型安全回调系统。LGPL] [网站
  • libusb - 一个通用 USB 库,允许便携式访问 USB 设备。[LGPL2]
  • Mach7 - 一个用于 C++ 的模式匹配库。 [BSD]
  • minja.hpp - 一个极简的 C++ Jinja 模板引擎,用于 LLM 聊天模板。 [MIT]
  • mio - 跨平台的 C++11 头文件库,用于内存映射文件 IO。 [MIT]
  • MPark.Variant - C++17 的 std::variant,支持 C++11/14/17。 [BSL-1.0]
  • MPH - C++20 [最小] 静态完美哈希库。[MIT]
  • PEGTL - 解析表达式语法模板库。[MIT]
  • Pipes - C++中集合上的表达性管道。[MIT]
  • pprint - 现代 C++的漂亮打印器。[MIT]
  • pspsdk - 一个用于 PSP 自制软件开发的开放源代码 SDK。[BSD/GNU GPL3]
  • QtVerbalExpressions - 这是一个基于 C++ VerbalExpressions 库的 Qt 库。[MIT]
  • rain - 最快的 128 位和 256 位非加密哈希,通过所有测试,源代码少于 140 行。[Apache-2.0]
  • RapidFuzz - 使用 Levenshtein 距离在 C++中进行快速模糊字符串匹配。MIT] [网站
  • rapidhash - 非常快速、高质量、跨平台的哈希算法。[BSD-2-Clause]
  • Reaction - 一个轻量级、仅头文件的响应式编程框架,利用现代 C++20 特性构建高效的数据流应用程序。[MIT]
  • Remote Call Framework - C++的进程间通信框架。[GPL2/专有]
  • reproc - 跨平台(C99/C++11)进程库。[MIT]
  • SafetyHook - C++23 过程钩子库。 [BSL-1.0]
  • scnlib - 现代 C++的 scanf。 Apache-2.0] [网站
  • Scintilla - 一个免费的源代码编辑组件。 [MIT]
  • SDS - C 语言的简单动态字符串库。 [BSD]
  • semver.c - ANSI C 中的 semver 解析器和渲染器。[MIT]
  • sigslot - C++ 信号/槽库。[公共领域]
  • SLJIT - 跨平台的低级 JIT 编译器。BSD] [网站
  • palacaze/sigslot - 简单的、仅头文件的 C++14 信号-槽实现 [MIT]
  • simdzone - 快速且符合标准的 DNS 区域解析器。 [BSD-3-Clause]
  • SimpleSignal - 高性能 C++11 信号。 [公共领域]
  • Stage - 移动机器人模拟器。 [GPL2]
  • stb :zap: - 一系列 C/C++ 单文件库。 [公共领域]
  • stdman - 一个工具,用于解析来自 cppreference 的存档 HTML 文件,并为基于 Unix 的系统生成 groff 格式的手册页。[MIT]
  • StringZilla - 字符串库中的哥斯拉,比说“东京塔”的速度更快地拆分、排序和洗牌大型文本数据集。[Apache-2.0]
  • StrTk - 一个由高性能字符串处理例程组成的 C++ 库。[MIT]
  • tgbotxx - Telegram Bot C++ 库。[MIT]
  • tiny::optional - 作为一个不必要浪费内存的 std::optional 替代品。[BSL-1.0]
  • Tulip Indicators - 一个包含超过 100 种金融技术分析指标的 C 库。[LGPL]
  • ub-canaries - 一系列尝试让编译器利用未定义行为的 C/C++程序。
  • value-category-cheatsheet 用于 lvalues、rvalues 等的 PDF 备忘单。[Jank copyleft]
  • VarTypes - 一个功能丰富的、面向对象的 C++ / Qt4 变量管理框架。[LGPL]
  • Wildcards - 一个简单的 C++ 头文件模板库,使用通配符实现匹配。[BSL-1.0]
  • xxHash - 极其快速的、非加密哈希算法。BSD-2-Clause] [网站
  • xxhash_cpp - xxhash 库的 C++17 版本。[BSD-2-Clause]
  • ZBar - 一个条形码扫描库,允许扫描照片/图像/视频流中的条形码并返回其值。[LGPL2]
  • ZXing - 一个用 Java 实现的开放源代码、多格式 1D/2D 条形码图像处理库,并已移植到其他语言。[Apache]

软件

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

编译器

C 或 C++编译器列表
  • 8cc - 一个小型 C 编译器。
  • c - 一次性编译和执行 C "脚本"![MIT]
  • Clang - LLVM 的 C 编译器。支持 C++11/14/1z 和 C11。由 LLVM 团队开发。[NCSA]
  • Fil-C - 一种狂热兼容的内存安全 C 和 C++实现。
  • GCC - GNU 编译器集合。支持 C++11/14/1z 和 C11 以及 OpenMP。[GNU GPL3]
  • PCC - 一个非常古老的 C 编译器。支持 C99。
  • AMD C++ 编译器 - 由 AMD 开发。
  • Intel C++ 编译器 - 由 Intel 开发。
  • LLVM - 模块化和可重用编译器及工具链技术的集合。
  • Microsoft Visual C++ - MSVC,由 Microsoft 开发。
  • Open WatCom - Watcom C、C++和 Fortran 跨编译器和工具。[Sybase Open Watcom 公共许可证]
  • Oracle Solaris Studio - SPARC 和 x86 的 C、C++和 Fortran 编译器。支持 C++11。可在 Linux 和 Solaris 上使用。[OTN 开发者许可证]
  • TCC - Tiny C 编译器。[LGPL]

在线编译器

在线 C 或 C++编译器列表
  • codechef - CodeChef 的一个简单在线编译器。
  • coliru - 支持多种 C++编译器的在线编译器/Shell。
  • Compiler Explorer - 提供汇编输出的交互式编译器。
  • CompileOnline - 在 Linux 上在线编译和执行 C++。
  • Ideone - 一个在线编译器和调试工具,允许您在 60 多种编程语言中在线编译源代码并执行。
  • OneCompiler - 一个支持 70 多种编程语言和数据库系统的在线编译器。
  • Programiz - 一个面向学习者和开发者的在线编译器。
  • repl.it - 一个强大而简单的工具和平台,适用于教育工作者、学习者和开发者。
  • Rextester - 在线编译器,提供多种编译器(Clang、GCC、MSVC)和多种编辑器。
  • 在线试用 - TIO 是一系列在线解释器的家族,支持越来越长的实用和娱乐编程语言列表。
  • Wandbox - 一个提供 Boost 的在线 Clang/GCC 编译器。
  • paiza.io - 一个支持多文件编译的在线 C/C++ 编译器,具有 GitHub(gist) 集成和协作编辑功能。
  • InterviewBit - 一个简单易用的在线 C++ 编译器。

Debugger

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

集成开发环境

C 或 C++的典型 IDE 列表。
  • Anjuta DevStudio - GNOME 集成开发环境。[GPL3]
  • AppCode - 基于 JetBrains IntelliJ IDEA 平台的 Objective-C、C、C++ 和 JavaScript 开发集成开发环境。
  • Cevelop - 基于 Eclipse CDT 的跨平台 C 和 C++ 集成开发环境,并带有附加插件。
  • CLion - JetBrains 的跨平台 C 和 C++ 集成开发环境。
  • Code::Blocks - 一款免费的 C、C++ 和 Fortran 集成开发环境。
  • CodeLite - 另一个跨平台的免费 C 和 C++ IDE。[GPL2,插件有例外]
  • color_coded - 一个基于 libclang 的 vim 插件,用于高亮显示。[MIT]
  • Dev-C++ - 一个便携式 C/C++/C++11 集成开发环境。
  • Eclipse CDT - 基于 Eclipse 平台的一个功能完善的 C 和 C++ IDE。
  • Embarcadero Dev-CPP - Dev-C++的一个分支,预装了新主题和现代编译器。GPLv2] [网站
  • Geany - 轻巧、快速、跨平台的集成开发环境。[GPL]
  • IBM VisualAge - IBM 出品的计算机集成开发环境系列。
  • Irony-mode - 由 libclang 支持的 Emacs C/C++ 轻微模式。
  • juCi++ - 支持 libclang 集成的跨平台、轻量级 C++ IDE。 [MIT]
  • KDevelop - 一个免费、开源的 IDE。
  • Microsoft Visual Studio - 来自微软的 IDE。
  • Microsoft Visual Studio Code :zap: - 微软的开源 IDE。MIT][网站
  • NetBeans - 一个主要用于 Java 开发,但也支持其他语言(特别是 PHP、C/C++和 HTML5)的 IDE。
  • Qt Creator :zap: - 一个跨平台的 C++、JavaScript 和 QML IDE,是 Qt SDK 的一部分。GPL3 豁免条款][网站
  • rtags - 一个基于 clang 的 c/c++客户端/服务器索引器,可与基于 emacs 集成。
  • Xcode - 由 Apple 开发。
  • YouCompleteMe - YouCompleteMe 是一个为 Vim 量身定制的快速、实时模糊搜索代码补全引擎。
  • cquery - 一个适用于 vscode、emacs、vim 等的 C++ 代码补全引擎。
  • C Playground - 在线 C 编程 IDE - 一个用于练习 C 编程的在线 IDE,你可以在其中编写、编辑和运行代码。

构建系统

  • Bazel - 来自 Google 的多语言、快速且可扩展的构建系统。[Apache]
  • Bear - 用于为 clang 工具链生成编译数据库的工具。[GPLv3]
  • Buck - 一种快速构建系统,鼓励在多种平台和语言(包括 C++)上创建小型、可重用的模块,由 Facebook 开发和使用。用 Java 编写。[Apache]
  • build2 - 跨平台构建、打包和依赖管理工具链,用于开发和打包 C/C++ 项目。[MIT]
  • Ccache - 一个快速的 C/C++ 编译器缓存。[GPLv3]
  • clib - C 语言的包管理器。[MIT]
  • CMake - 跨平台的免费开源软件,用于使用与编译器无关的方法管理软件的构建过程。[BSD]
  • Cget - Cmake 软件包获取。 Boost] [网站
  • Conan - C/C++ 软件包管理器,已开源。 [MIT]
  • CPM - 基于 CMake 和 Git 的 C++软件包管理器。
  • FASTBuild - 高性能、开源的构建系统,支持高度可扩展的编译、缓存和网络分发。
  • Hunter - 基于 CMake 的跨平台 C++ 软件包管理器。[BSD-2]
  • MesonBuild - 一个开源的构建系统,旨在既非常快速,而且尽可能用户友好。
  • Ninja - 一个专注于速度的小型构建系统。
  • Sccache - 一个快速的 C/C++ 编译器缓存,支持跨平台,并提供云端存储选项。
  • Scons - 一个使用 Python 脚本配置的软件构建工具。
  • Sconsolidator - 用于 Eclipse CDT 的 Scons 构建系统集成。
  • Spack - 一个灵活的包管理器,支持多个版本、配置、平台和编译器。[Apache-2.0/MIT]
  • SW - 跨平台的 C++(及其他语言)构建系统和包管理器,提供大量可用软件包。[GPLv3]
  • tundra - 高性能代码构建系统,旨在为大型软件项目提供最佳的增量构建时间。
  • tup - 基于文件的构建系统,在后台监控文件变化。
  • Premake - 使用 Lua 脚本配置的工具,用于生成 Visual Studio、GNU Make、Xcode、Code::Blocks 等项目的文件,支持 Windows、Mac OS X 和 Linux。
  • Vcpkg - Windows、Linux 和 MacOS 的 C++库管理器。[MIT]
  • waf - 基于 Python 的框架,用于配置、编译和安装应用程序。BSD] [网站
  • XMake - 基于 Lua 的 C/C++跨平台构建工具,内置包管理器 xrepo。[Apache]

静态代码分析

用于通过代码分析提高质量并减少缺陷的工具列表
  • Cppcheck - 一个用于静态 C/C++ 代码分析的工具。 - 来源
  • CppDepend - 通过分析代码依赖关系、定义设计规则、进行影响分析以及比较不同版本的代码,简化管理复杂的 C/C++ 代码库。
  • cpplint - 一个遵循 Google C++ 风格指南的 C++ 代码风格检查器。
  • PVS-Studio - 一个用于检测 C、C++ 和 C# 程序源代码中的错误的工具。
  • cpp-dependencies - 用于检查 C++ #include 依赖的工具(生成的依赖图以 .dot 格式存储)。[Apache]
  • 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 - 用于检查、测试、合并和监控代码的工具包。

编程风格工具

  • 艺术风格 - 一个用于格式化 C/C++/C#/Obj-C/Java 代码的工具。也称为 astyle。
  • ClangFormat - 用于格式化 C/C++/Obj-C 代码的工具。
  • Clang-Tidy - 基于 Clang 的 C++ 静态分析工具。
  • EditorConfig - EditorConfig 帮助在不同编辑器和 IDE 之间保持一致的编码风格。
  • Uncrustify - 代码美化工具。

资源

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

API 设计

文章

与 C++ 相关的精彩文章。

书籍

编码规范

编码风格

播客

  • CppCast - 由 C++ 开发者为了 C++ 开发者制作的第一个播客。
  • CppChat - 每周(有时)关注 C++ 领域的动态,与来自社区的嘉宾进行交流。

Talks

视频

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

网站

与 C 或 C++相关的有用网站。
  • 标准 C++ :zap: - 标准 C++的新闻、状态与讨论。
  • Build Bench - 比较 C++构建。
  • Quick Bench - 快速 C++基准测试。
  • CppCon - C++大会。
  • C++ reference - C 和 C++语言及标准库的完整在线参考。
  • cppstat - 一个以易于理解的方式列出 C++特性及其编译器和标准库实现支持的网站。
  • C++ by Example - 通过实例学习 C++。
  • cplusplus.com - C++资源网络。
  • C FAQ - C 常见问题解答。
  • C++ FAQ - C++常见问题解答。
  • C++ FQA Lite - C++常见问题答案。
  • C++ Quiz - 一个简单的在线测验,你可以用它来测试你的 C++编程语言知识。
  • 每周大师 - 由 Herb Sutter 创建和编写的 C++编程问题定期系列。
  • Meeting C++
  • PVS-Studio 的挑战 - PVS-Studio 的 C++测验,其中要求你在开源项目的代码片段中找出错误。
  • Udemy C++课程和教程
  • C++提示 - PVS-Studio 团队每天提供的关于最常见 C++错误及其解决方法的提示。
  • C++教程 - 一个用户排名的在线教程库网站,展示多个学习 C++的课程。
  • C++初学者教程 - 由训练有素的专家策划的全面 C++教程。
  • cppexpert.online - 通过改进存在问题的代码片段或不良实践来学习最佳 C++实践。
  • C++ for yourself - 一份全面的现代 C++ 教程,涵盖了从基础知识到软件设计的一切内容。
  • CompileBytes C++ 编译器 – 在线 C++ 编译器和交互式代码执行环境。

博客

有用的 C 或 C++ 相关博客。

其他精彩项目

有用的代码、代码片段、...的集合

其他精彩列表

其他令人惊叹的绝妙列表
😀 😊 😵‍💫 😡 🤝 🙏 👍 👎 ❤️