Skip to content

其他优秀项目 ​

有用代码、片段等的集合。

书籍 ​

优秀的 C 或 C++ 相关书籍。

人工智能 ​

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

集成开发环境 ​

C 或 C++ 名义 IDE 列表。

  • Microsoft Visual Studio Code - zap: - 微软的开源 IDE。[MIT] 网站
  • YouCompleteMe - YouCompleteMe 是 Vim 的一个快速、随输随查、模糊搜索的代码补全引擎。
  • Qt Creator - zap: - 跨平台的 C++、JavaScript 和 QML IDE,是 Qt SDK 的一部分。[GPL3 带例外] 网站
  • Embarcadero Dev-CPP - Dev-C++ 的分支,预装了新主题和现代编译器。[GPLv2] 网站
  • rtags - 一个基于 clang 的 C/C++ 客户端/服务器索引器,用于与 Emacs 集成。
  • Irony-mode - 一个由 libclang 驱动的 Emacs C/C++ 次要模式。
  • 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,插件有例外]
  • Dev-C++ - 可移植的 C/C++/C++11 IDE。
  • Eclipse CDT - 基于 Eclipse 平台的全功能 C 和 C++ IDE。
  • Geany - 小巧、快速、跨平台 IDE。[GPL]
  • IBM VisualAge - 来自 IBM 的一系列计算机集成开发环境。
  • juCi++ - 跨平台、轻量级的 C++ IDE,集成 libclang。[MIT]
  • KDevelop - 一个免费、开源的 IDE。
  • Microsoft Visual Studio - 来自微软的 IDE。
  • NetBeans - 一个主要用于 Java 开发,但也支持其他语言(尤其是 PHP、C/C++ 和 HTML5)的 IDE。
  • Xcode - 由苹果开发。
  • C Playground - Online C Programming IDE - 一个在线 IDE,用于练习 C 编程,可以在线编写、编辑和运行代码。

游戏引擎 ​

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

机器学习 ​

  • OpenCV - zap: - 开源计算机视觉库。[BSD] 网站
  • FAISS - 用于高效相似度搜索和稠密向量聚类的库。[MIT]
  • Caffe - 一个用于神经网络的快速框架。[BSD]
  • xgboost - 可扩展、可移植、分布式的梯度提升(GBDT、GBRT或GBM)库,支持Python、R、Java、Scala、C++等。可在单机、Hadoop、Spark、Flink和DataFlow上运行。[Apache2]
  • darknet - 用 C 和 CUDA 编写的开源神经网络框架。[PublicDomain] 网站
  • ncnn - 针对移动平台优化的高性能神经网络推理计算框架。[BSD]
  • ONNX runtime - 用于训练和推理ONNX模型的C和C++库。ONNX是一种标准,AI模型可以转换为该标准,无论它们是用哪个库训练的。[MIT] 网站
  • ggml - 支持16位和4位量化功能的机器学习张量库。[MIT]
  • Dlib - zap:一个现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。[Boost] 网站
  • catboost - 一个快速、可扩展、高性能的基于决策树的梯度提升库。[Apache2]
  • CCV - 基于 C 的/缓存的/核心计算机视觉库,一个现代计算机视觉库。[BSD]
  • mlpack - 一个可扩展的C++机器学习库。[LGPLv3] 网站
  • flashlight - 来自Facebook AI Research的快速、灵活的机器学习库,完全用C++编写,基于ArrayFire张量库。[BSD-3-Clause] 网站
  • libsvm - 一个简单、易用、高效的支持向量机库。[BSD-3-Clause] 网站
  • USearch - 用于向量和字符串的快速搜索和聚类库。[Apache2]
  • SHOGUN - Shogun机器学习工具箱。[GPLv3]
  • m2cgen - 一个CLI工具,用于将训练好的经典机器学习模型转译为零依赖的原生C代码。[MIT]
  • TensorComprehensions - 一个功能完整的C++库,用于自动合成高性能机器学习内核。[Apache-2.0]
  • FANN - 用C语言编写的快速人工神经网络库。[LGPL]
  • VLFeat - VLFeat开源库实现了流行的计算机视觉算法,专门用于图像理解和局部特征提取与匹配。[BSD-2-Clause] 网站
  • RNNLIB - RNNLIB是一个用于序列学习问题的循环神经网络库。[GPLv3]
  • kann - 一个轻量级的C语言人工神经网络库。[MIT]
  • MeTA - 一个现代C++数据科学工具包。[MIT]
  • Minerva - 一个快速且灵活的深度学习系统。[Apache2]
  • oneDAL - 一个强大的机器学习库,有助于加速大数据分析。[Apache]
  • Fido - 面向嵌入式电子和机器人技术的高度模块化C++机器学习库。[MIT] 网站
  • Recommender - 用于产品推荐/建议的C库,使用协同过滤(CF)。[BSD]
  • sofia-ml - 一套用于机器学习的快速增量算法。[Apache2]

GUI ​

图形用户界面

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

视频 ​

优秀的 C 或 C++ 相关视频。

序列化 ​

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

JSON ​

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

编码风格 ​

进程间通信 ​

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

调试 ​

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

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

数据库 ​

数据库库、SQL服务器、ODBC驱动程序和工具

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

图像处理 ​

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

杂项 ​

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

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

密码学 ​

密码学与加密库

  • OpenSSL - 一个健壮、商业级、功能齐全且开源的加密库。[Apache] 网站
  • libsodium - 基于NaCl的可移植(或可打包)密码学库,主观且易于使用。[ISC]
  • Tink - 一个多语言、跨平台的库,提供安全、易于正确使用且难以滥用的加密API。[Apache-2.0]
  • mbedTLS - 一个开源、可移植、易用、可读且灵活的SSL库,前身为PolarSSL。[Apache2] 网站
  • Crypto++ - 一个免费的C++密码方案类库。[Boost] 网站
  • Tiny AES in C - 小巧便携的C语言AES128/192/256实现。[PublicDomain]
  • s2n - TLS/SSL协议的一种实现。[Apache]
  • crypto-algorithms - 标准加密算法(AES、SHA等)的C语言基本实现。[PublicDomain]
  • Themis - 用于轻松实现数据安全的加密库,提供对称和非对称加密、具有前向保密的安全套接字,适用于移动和服务器平台。[Apache2]
  • LibTomCrypt - 一个相当全面、模块化且可移植的加密工具包。[WTFPL]
  • micro-ecc - 适用于8位、32位和64位处理器的小型快速ECDH和ECDSA实现。[BSD-2-Clause]
  • sha1collisiondetection - 用于检测文件中SHA-1碰撞的库和命令行工具。[MIT]
  • stduuid - 一个C++17跨平台的UUID实现。[MIT]
  • libhydrogen - 一个轻量、安全、易用的加密库,适用于资源受限环境。[ISC]
  • tiny-ECDH-c - C语言中ECDH密钥协商协议的小型可移植实现。[PublicDomain]
  • Qt-Secret - 基于Qt的C++项目简单加密库。[LGPL]
  • digestpp - C++11头文件-only消息摘要(哈希)库。[PublicDomain]
  • retter - 一组与加密相关的哈希函数、密码、工具、库和材料。
  • HEhub - 一个用于同态加密及其应用的库。[Apache2]
  • aes-stream - 一个基于AES的快速流密码C语言实现。[ISC]
  • Bcrypt - 一个跨平台文件加密工具。加密文件在所有支持的操作系统和处理器上可移植。[BSD]
  • BeeCrypt - 一个可移植且快速的密码学库。[LGPLv2.1+]
  • BoringSSL - OpenSSL的一个分支,旨在满足Google的需求。[Apache2]
  • Botan - 一个C++密码学库。[BSD-2]
  • GnuPG - OpenPGP标准的完整且免费实现。[GPL]
  • GnuTLS - 一个实现SSL、TLS和DTLS协议的安全通信库。[LGPL2.1]
  • Libgcrypt - 一个通用密码学库,最初基于GnuPG的代码。[LGPLv2.1+]
  • LibreSSL - 2014年从OpenSSL分叉出的免费SSL/TLS协议版本。[?]
  • Nettle - 一个底层加密库。[LGPL]

框架 ​

C++ 通用框架和库。

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

日志 ​

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

压缩 ​

压缩和归档库

  • zstd - Zstandard - 快速实时压缩算法。由Facebook开发。[BSD]
  • Brotli - Brotli 压缩格式。由 Google 开发。[MIT]
  • LZ4 - 极速压缩算法。[BSD] 网站
  • libarchive - 多格式归档和压缩库。[New BSD] 网站
  • Zopfli - 一个压缩库,执行非常好但速度较慢的deflate/zlib压缩。[Apache-2.0]
  • OpenZL - 一种新颖的数据压缩框架。[BSD] 网站
  • miniz - 单个 C 源文件的 Deflate/Inflate 压缩库,具有 zlib 兼容 API、ZIP 归档读写、PNG 写入功能。[MIT]
  • zlib-ng - 面向“下一代”系统的zlib。带有一些重大优化的即插即用替代品。[zlib]
  • LZFSE - LZFSE 压缩库和命令行工具。由 Apple 开发。
  • heatshrink - 用于嵌入式/实时系统的数据压缩库。[ISC]
  • bzip3 - BZip2 更好更强的精神继承者。[LGPL]
  • Minizip - 带有最新错误修复的 Zlib,支持 PKWARE 磁盘跨卷、AES 加密和 IO 缓冲。[zlib]
  • minizip-ng - zlib 发行版中流行的 zip 操作库的分支。[zlib]
  • FiniteStateEntropy - 新一代熵编码器:有限状态熵和 Huff0。
  • smaz - 小型字符串压缩库。[BSD]
  • bit7z - 一个提供简洁接口的 C++ 静态库,用于 7-zip 共享库。[MPL2]
  • cmix - 一种无损数据压缩程序,以速度为代价追求最高压缩比。[GPL-3.0]
  • FSST - 高效的随机访问字符串压缩。[MIT]
  • LZAV - 快速内存数据压缩算法。[MIT]
  • FastLZ - 小巧且可移植的字节对齐 LZ77 压缩。[MIT]
  • ZXC - 高性能非对称无损压缩。[BSD-3-Clause]
  • Rapidgzip - 面向现代多核机器的Gzip解压与随机访问。[Apache-2/MIT]
  • Kanzi - 一个用 C++ 实现的现代、模块化、可移植且高效的无损数据压缩器。[Apache-2.0]
  • misa77 - 以良好压缩比实现极速解压。[MIT]
  • LZSSE-SIMDe - LZSSE压缩的可移植SIMD实现。[BSD-2-Clause]
  • LZMAT - 一个极速的实时无损数据压缩库。[GPL]
  • bzip2 - 一个免费、无专利、高质量的数据压缩器。[BSD]
  • KArchive - 一个用于创建、读取、写入和操作 zip 和 tar 等文件归档的库。它还通过 QIODevice 的子类提供透明的数据压缩和解压缩,使用 gzip 等格式。[LGPL]
  • LZHAM - 无损数据压缩库,压缩比与 LZMA 相似,但解压速度更快。[BSD]
  • LZMA - zap:- 7z 格式的默认和通用压缩方法。[PublicDomain] 网站
  • PhysicsFS - 一个提供对各种归档的抽象访问的库。它旨在用于视频游戏,设计上受到 Quake 3 文件子系统的启发。[zlib]
  • Snappy - 一个快速的压缩/解压器。[BSD]
  • ZLib - 一个非常紧凑的数据流压缩库。[zlib]
  • ZZIPlib - 提供对ZIP归档的读取访问。[MPL/LGPL]

构建系统 ​

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

异步事件循环 ​

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

虚拟机 ​

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

文章 ​

精彩的 C++ 相关文章。

网络 ​

  • uWebSockets - µWS 是目前最轻量、高效且可扩展的 WebSocket 与 HTTP 服务器实现之一。 [Zlib]
  • KCP - 一种快速可靠的 ARQ 协议,帮助应用程序降低网络延迟。[MIT]
  • cpp-httplib - 一个单文件 C++11 头文件实现的 HTTP/HTTPS 服务器库。[MIT]
  • Muduo - 一个用于 Linux 多线程服务器的 C++ 非阻塞网络库。[BSD]
  • Mongoose - 极其轻量级的 Web 服务器。[GPL2]
  • RedPanda - 面向开发者的流式数据平台。兼容 Kafka API,速度快 10 倍。[BSL]
  • H2O - 一个优化的 HTTP 服务器,支持 HTTP/1.x 和 HTTP/2,也可作为库使用。[MIT]
  • ZeroMQ - 高速、模块化的异步通信库。 [LGPL3/MPL2] 网站
  • GameNetworkingSockets - Valve 开发的基于 UDP 的可靠与不可靠消息传输。面向连接的 API(类似 TCP)。 [BSD-3-Clause]
  • Proxygen - Facebook 的 C++ HTTP 库集合,包括一个易于使用的 HTTP 服务器。[BSD]
  • C++ REST SDK - C++ REST SDK(以前称为 Casablanca)。[Apache2]
  • WebSocket++ - 基于 C++/Boost Asio 的 WebSocket 客户端/服务器库。 [BSD]
  • cpr - 一个现代 C++ HTTP 请求库,接口简单而强大,模仿 Python Requests 模块。[MIT] 网站
  • libwebsockets - 一个轻量级纯 C WebSocket 实现,提供客户端和服务器库。[LGPL2.1 + 静态链接例外] 网站
  • nghttp2 - HTTP/2 C 库。[MIT] 网站
  • Boost.Beast - zap:- 基于 Boost.Asio 的 C++11 HTTP 和 WebSocket。[Boost] 网站
  • DPDK - 数据平面开发套件(DPDK),用于快速数据包处理的库和驱动程序。[BSD-3-Clause & GPL-2.0] 网站
  • evpp - 支持 TCP/UDP/HTTP 协议的高性能 C++ 网络库。[BSD]
  • RakNet - 一个跨平台、开源的 C++ 游戏网络引擎。[BSD]
  • ENet - 可靠的 UDP 网络库。[MIT] 网站
  • libpcap - 一个可移植的 C/C++ 网络流量捕获库。[BSD] 网站
  • PcapPlusPlus - 一个跨平台的 C++ 网络嗅探、数据包解析与构造框架。 [Unlicense]
  • Wangle - 用于构建异步、事件驱动的现代 C++ 服务的客户端/服务器应用框架。 [Apache-2.0]
  • PF_RING™ - 高速数据包处理框架。[LGPL-2.1] 网站
  • wdt - 一个可嵌入的库(及命令行工具),旨在通过多条 TCP 路径尽可能快地在两个系统之间传输数据。 [BSD-3-Clause]
  • c-ares - 用于异步 DNS 请求的 C 库。[MIT]
  • mTCP - 面向多核系统的高度可扩展用户级 TCP 协议栈。[修改版 BSD]
  • PicoHTTPParser - 一个微小、原始、快速的 HTTP 请求/响应解析器。[MIT]
  • Onion - 用 C 编写的 HTTP 服务器库,设计轻量且易于使用。[Apache2/GPL2]
  • Restbed - C++11 异步 RESTful 框架。[AGPL]
  • ada - 用现代 C++ 编写的符合 WHATWG 规范的快速 URL 解析器。[Apache-2.0/MIT]
  • libquic - 从 Chromium 的 QUIC 实现中提取的 QUIC 协议库。[BSD]
  • curlpp - libcURL 的 C++ 封装。[MIT]
  • CppServer - 超快、低延迟的异步套接字服务器与客户端 C++ 库,支持 TCP、SSL、UDP、HTTP、HTTPS、WebSocket 协议,并解决 10K 连接问题。[MIT]
  • Boost.Asio - zap:- 用于网络和底层 I/O 编程的跨平台 C++ 库。[Boost] 网站
  • restclient-cpp - 简单的 C++ REST 客户端,封装 libcurl 用于 HTTP 请求。[MIT]
  • OpenDDS - 对象管理组织(OMG)数据分发服务(DDS)的开源 C++ 实现。[Apache2]
  • TQUIC - 一个高性能、轻量级、跨平台的 QUIC 库,提供 C 和 C++ 接口。 [Apache2]
  • UCall - 基于 io_uring 的高性能 SIMD 加速 RPC 库。 [Apache2]
  • Restinio - 仅头文件的 C++14 库,提供嵌入式 HTTP/Websocket 服务器。[BSD]
  • CZMQ - ØMQ 的高层 C 绑定。[MPL2] 网站
  • nghttp3 - 用 C 编写的 HTTP/3 库。[MIT] 网站
  • wepoll - 基于 Winsock 的 Windows epoll 封装。 [BSD-2-Clause]
  • librdkafka - Apache Kafka 的 C 和 C++ 客户端库。[BSD-2-Clause]
  • libhttpserver - 用于创建嵌入式 REST HTTP 服务器(及更多功能)的 C++ 库。[LGPL2.1]
  • Zyre - 用于对等应用的局域网集群。 [MPL2]
  • MQTT-C - 一个可移植的 MQTT C 客户端,适用于嵌入式系统和 PC。[MIT] 网站
  • Seasocks - 简单、小巧、可嵌入的 C++ Web 服务器,支持 WebSockets。[BSD]
  • WAFer - 基于 C 语言的超轻量软件平台,用于可扩展的服务器端和网络应用。可以看作是面向 C 程序员的 node.js。 [GPL2]
  • tlse - 单文件 C 语言 TLS 1.2/1.3 实现,使用 tomcrypt 作为加密库 [BSD-2-Clause]
  • curlcpp - 一个面向对象的 C++ CURL(libcurl)封装。[MIT]
  • Tufão - 基于 Qt 的 C++ 异步 Web 框架。 [LGPL2]
  • mailio - mailio 是一个跨平台的 C++ 库,用于 MIME 格式以及 SMTP、POP3 和 IMAP 协议。[BSD]
  • uriparser - 严格符合 RFC 3986 的 URI 解析与处理库。 [BSD-3-Clause]
  • FTP client for C++ - 用于发起 FTP 请求的 C++ 客户端。[MIT]
  • easyhttpcpp - 索尼开发的跨平台 HTTP 客户端库,提供缓存功能。 [MIT]
  • Breep - 基于事件的高层 C++14 点对点库。[EUPL-1.1(OSI 批准)]
  • cpp-netlib/uri - C++ 的 URI 解析/构建库,兼容 RFC 3986 和 RFC 3987。[Boost]
  • wspp - 零依赖、单头文件的现代 WebSocket 客户端与服务器,支持 ws/wss 协议。 [MIT]
  • cofetch - 基于 libcurl 的 multi 接口和 ASIO 构建的可链式异步 HTTP 客户端。从单一实现支持回调、协程和 future。[MIT]
  • ACE - C++ 面向对象网络编程工具包。[?MIT?]
  • AGENT++ - C++ 框架,提供完整的三语 SNMP v1/2c/3 协议引擎和调度器,用于开发 SNMP 代理。[Apache-2.0]
  • cpp-netlib - 一组用于高级网络编程的开源库集合。[Boost]
  • libcurl - 多协议文件传输库。[MIT/X 衍生许可证]
  • Libmicrohttpd - GNU libmicrohttpd 是一个小型 C 库,旨在让 HTTP 服务器作为另一个应用程序的一部分轻松运行。[LGPL v2.1+]
  • Lithium - 无需成为 C++ 专家即可构建高性能 C++ HTTP 服务器。[MIT]
  • lwIP - 一个轻量级 TCP/IP 协议栈。[修改版 BSD]
  • POCO - zap:用于构建运行在桌面、服务器、移动和嵌入式系统上的网络和互联网应用的 C++ 类库和框架。[Boost] 网站
  • SNMP++ - 一个支持 SNMP v1/2c/v3 的 C++ API。[自定义宽松许可证]

脚本 ​

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

图形 ​

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

多媒体 ​

  • SDL - zap:- 简单直接媒体层。[zlib] 网站
  • SFML - zap:- 简单快速多媒体库。[zlib] 网站
  • QtAv - 基于 Qt 和 FFmpeg 的多媒体播放框架,可轻松编写播放器。[LGPL] 网站
  • TagLib - 用于读取和编辑多种流行音频格式元数据的库。[LGPL/MPL] 网站
  • icey - 实时媒体栈,以及用于 RTSP 摄取、媒体处理、信令、TURN 和浏览器交付的轻量级 libwebrtc 替代方案,使用 C++20 构建。[LGPL v2.1+]
  • libass - ASS/SSA 字幕格式的便携式字幕渲染器。[ISC]
  • libav - 用于处理多媒体内容(如音频、视频、字幕和相关元数据)的库和工具集合。[LGPL v2.1+ 及其他] 网站
  • MediaInfoLib - 便捷统一显示视频和音频文件最相关的技术和标签数据。[BSD]
  • GStreamer - 用于构建媒体处理组件图的库。[LGPL]
  • LIVE555 Streaming Media - 使用开放标准协议(RTP/RTCP、RTSP、SIP)的多媒体流媒体库。[LGPL]
  • libVLC - libVLC(VLC SDK)媒体框架。[GPL]

静态代码分析 ​

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

  • Infer - 用于 Java、C 和 Objective-C 的静态分析器。[BSD]
  • include-what-you-use - 与 clang 配合使用,分析 C 和 C++ 源文件中 include 的工具。网站
  • IKOS - 基于抽象解释理论的 C/C++ 静态分析器。[NOSA 1.3]
  • CodeChecker - 用于 Clang Static Analyzer 和 Clang-Tidy 的分析器工具、缺陷数据库和查看器扩展。[Apache-2.0]
  • cpplint - 遵循 Google C++ 风格指南的 C++ 风格检查器。
  • cpp-dependencies - 检查 C++ #include 依赖关系的工具(以 .dot 格式生成依赖图)。[Apache]
  • CodeCompass - 面向大型 C/C++ 项目的开源代码理解工具。[GPL-3.0]
  • OptView2 - 检查错过的 Clang 优化。
  • Cppcheck - 用于 C/C++ 静态代码分析的工具。- 源代码
  • CppDepend - 通过分析和可视化代码依赖、定义设计规则、进行影响分析以及比较不同版本的代码,简化复杂 C/C++ 代码库的管理。
  • PVS-Studio - 用于检测用 C、C++ 和 C# 编写的程序源代码中缺陷的工具。
  • OCLint - 用于提升 C、C++ 和 Objective-C 代码质量、减少缺陷的静态源代码分析工具。- 源代码
  • Clang Static Analyzer - 在 C、C++ 和 Objective-C 程序中查找缺陷的源代码分析工具。
  • Linticator - Eclipse CDT 集成的 Pc-/FlexeLint。
  • List of tools for static code analysis - 来自维基百科的静态代码分析工具列表。
  • Trunk - 用于检查、测试、合并和监控代码的工具包。

物理 ​

动力学仿真引擎

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

数学 ​

  • Dlib - zap:一个现代 C++11 机器学习、计算机视觉、数值优化和深度学习工具包。[Boost] 网站
  • GLM - 仅头文件的C++数学库,与OpenGL的GLSL数学匹配并可互操作。[MIT] 网站
  • QuantLib - 一个免费/开源的量化金融库。[Modified BSD] 网站
  • OpenBLAS - 基于GotoBLAS2 1.13 BSD版本的优化BLAS库。[BSD 3-clause] 网站
  • CGAL - 高效且可靠的几何算法集合。[LGPL&GPL] 网站
  • NumCpp - Python Numpy库的模板化头文件C++实现。[MIT]
  • xtensor - 一个C++14数值分析库,支持多维数组表达式,灵感来自NumPy语法。[BSD 3-clause] 网站
  • geogram - 一个几何算法编程库。[BSD-3-Clause]
  • autodiff - 一个现代、快速且富有表现力的C++自动微分库。[MIT] 网站
  • TinyExpr - 一个用于从字符串解析和计算数学表达式的C库。[zlib]
  • NumKong - SIMD加速的距离、点积、矩阵运算、地理空间与几何内核,支持16种数值类型。[Apache2](原名SimSIMD)
  • DirectXMath - 一个全内联的SIMD C++线性代数库,用于游戏和图形应用。
  • Vc - C++的SIMD向量类。[BSD]
  • MatX - 一个GPU加速的C++17数值计算库,语法类似MATLAB/Python。[BSD 3-clause]
  • SymEngine - 快速符号操作库,是SymPy核心的C++重写。[MIT]
  • libdivide - 使用libdivide优化C/C++整数除法。[zlib] 网站
  • linmath.h - 一个精简的线性数学库,面向图形编程。[WTFPL]
  • linalg.h - 单头文件、公有领域、C++短向量数学库。[Unlicense]
  • libfixmath - 跨平台定点数学库。[MIT]
  • Spectra - 一个基于Eigen的大规模特征值问题C++库。[MPL2] 网站
  • Fastor - 一个轻量级高性能张量代数框架,适用于现代C++。[MIT]
  • LibTomMath - 一个完全用C编写的免费开源可移植数论多精度整数库。[PublicDomain & WTFPL] 网站
  • Klein - 一个快速、SIMD优化的C++17几何代数库,用于点、线、面的投影、相交、连接、刚体运动等。[MIT] 网站
  • MIRACL - 一个多精度整数和有理数运算密码学库。[AGPL]
  • CNL - 一个C++的组合数值库。[Boost]
  • std-simd - std::experimental::simd的C++可移植实现。[BSD-3-Clause]
  • FastNoiseSIMD - 一个用于SIMD加速噪声生成函数的库。[MIT]
  • StatsLib - 一个C++头文件统计分布函数库。[Apache2] 网站
  • universal - 一个C++14头文件库,实现任意精度posit算术。posit数系统是一种锥形浮点,比IEEE浮点更高效。Posit支持可复现的计算科学。[MIT license]
  • XAD - 强大的C++自动微分。[AGPL] 网站
  • MATIO - MATLAB MAT 文件 I/O 库。[BSD-2-Clause] 网站
  • fastmod - 仅头文件的快速C/C++库,用于计算余数和模约简。[Apache-2.0]
  • utl::random - 一个C++17头文件库,实现快速随机数生成,用于蒙特卡洛模拟和游戏开发。[MIT]
  • Boost.Multiprecision - 提供更高范围和精度的整数、有理数和浮点类型,C++实现,仅头文件或支持GMP/MPFR/LibTomMath后端。[Boost] 网站
  • wide-integer - Wide-Integer实现了uint128_t、uint256_t、uint512_t、uint1024_t等的通用C++模板。[BSL-1.0]
  • Apophenia - 用于统计和科学计算的C库。[GPL2]
  • Wagyu - 一个用于几何运算的通用库,支持并集、交集、差集和异或。[mapbox-wagyu original]
  • fpsqrt - C语言快速定点与浮点平方根。[MIT]
  • cml - 可配置的数学库。[Boost]
  • geo-utils-cpp - 仅头文件的C++17库,用于球面经纬度几何:距离、方位角、面积、点在多边形内。[Apache2]
  • sebsjames/maths - 一个模板化的C++20数学库,强调客户端程序员的便利性和愉悦性(用于mathplot)。[Apache2] 网站
  • mexce - 一个单头文件、无依赖的JIT编译器,用于标量数学表达式,生成优化的x87 FPU机器码。[BSD]
  • Armadillo - 用于线性代数和科学计算的快速C++库。[Apache2] 网站
  • blaze - 高性能C++数学库,用于稠密和稀疏算术。[BSD]
  • ceres-solver - 来自Google的C++库,用于建模和求解大型复杂非线性最小二乘问题。[BSD]
  • Eigen - 一个高级C++模板头文件库,用于线性代数、矩阵和向量运算、数值求解器及相关算法。[MPL2]
  • ExprTk - C++数学表达式工具包库(ExprTk)是一个易于使用、易于集成且极其高效的运行时数学表达式解析和求值引擎。[MIT]
  • Geometric Tools - 用于数学、图形、图像分析和物理领域计算的C++库。[Boost] 网站
  • GMTL - 图形数学模板库是一组以通用方式实现图形原语的工具集合。[GPL2]
  • GMP - 一个用于任意精度运算的C库,支持有符号整数、有理数和浮点数。[LGPL3 & GPL2]
  • OMath - 跨平台现代通用数学库,使用C++23编写,适用于作弊/游戏开发。[ZLIB]
  • muparser - muParser是一个用C++编写的可扩展高性能数学表达式解析库。[MIT]
  • lp_solve - 用于制定和求解线性规划问题的库。[LGPL] 网站
  • PCG-rand - PCG是一系列简单、快速、节省空间且统计性能良好的随机数生成算法。与许多通用RNG不同,它们也难以预测。[Apache]
  • Versor - 一个(快速的)通用C++几何代数库,包括欧几里得、射影、共形、时空等。
  • Wykobi - 一个高效、稳健且易于使用的C++ 2D/3D定向计算几何例程库。[MIT]

Web 应用框架 ​

  • Drogon - 一个基于 C++17/20 的高性能 HTTP 应用框架。[MIT]
  • oat++ - 轻量、零依赖的框架,用于创建高性能 Web 服务。[Apache-2.0] 网站
  • C++ REST SDK - 微软项目,使用现代异步 C++ API 设计,在原生代码中实现基于云的客户端-服务器通信。[MIT]
  • lwan - 实验性、可扩展、高性能的 HTTP 服务器。[GPL2]
  • Crow - Crow 是一个用于运行 Web 服务的 C++ 微框架。它使用类似于 Python Flask 的路由。[BSD] 网站
  • Civetweb - 提供易于使用、功能强大的 C/C++ 可嵌入 Web 服务器,可选支持 CGI、SSL 和 Lua。[MIT]
  • userver - 异步 C++17 框架,具有丰富的抽象和数据库驱动,可快速、舒适地创建高效的微服务、服务和工具。[Apache-2.0] 网站
  • facil.io - 事件驱动、高性能的 C Web 框架,支持 HTTP、WebSockets、SSE 等。[MIT] 网站
  • httpserver.h - 一个单头文件的 C HTTP 服务器库。[MIT]
  • TreeFrog Framework - 基于 C++ 和 Qt 的高速全栈 Web 应用框架,支持 HTTP 和 WebSocket 协议(带 O/R 映射)。[BSD] 网站
  • libhttp - 一个跨平台的 C/C++ HTTP 和 HTTPS 库。[MIT]
  • C++ wfrest - C++ Web 框架 REST API。[Apache2]
  • Cutelyst - 一个基于 Qt 构建的 C++ Web 框架,采用 Catalyst(Perl)框架的简单方法。[BSD-3-Clause] 网站
  • QDjango - 一个用 C++ 编写并基于 Qt 库的 Web 框架。尽可能遵循 django 的 API,因此得名。[LGPL]
  • aeronet - 高性能、模块化的 C++ HTTP/1.1、HTTP/2 和 WebSocket 微服务框架,专注于性能和可扩展性。[MIT]
  • Mach - 一个现代 C++20 Web 框架,专注于性能、类型安全和开发者体验。[MIT] 网站。
  • CppCMS - 一个免费的高性能 Web 开发框架(非 CMS)。[LGPLv3]
  • Kore - 用 C 开发的超快速且灵活的 Web 服务器/框架,用于 Web 应用。[ISC]
  • libOnion - 轻量级库,帮助你用 C 编程语言创建 Web 服务器。[LGPLv3]
  • Pistache - Pistache 是一个用纯 C++11 编写的 C++ REST 框架,无外部依赖。[Apache2]
  • Wt - 一个用于开发 Web 应用的 C++ 库。[GPL/专有]

内存分配 ​

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

并发 ​

并发与多线程

  • concurrentqueue - 一个用于C++11的快速多生产者多消费者无锁并发队列。[BSD,Boost]
  • Taskflow - 一个通用并行和异构任务编程系统。(由 Cpp-Taskflow 更名而来)[MIT]
  • ThreadPool - 一个简单的 C++11 线程池实现。[zlib]
  • NCCL - 用于集体多 GPU 通信的优化原语。[BSD]
  • ArrayFire - 一个通用GPU库。[BSD]
  • readerwriterqueue - 一个用于 C++ 的快速单生产者、单消费者无锁队列。[BSD]
  • libmill - 在 C 语言中引入 Go 风格的并发。[MIT]
  • BS::thread_pool - 一个快速、轻量且易于使用的C++17线程池库。[MIT]
  • HPX - 一个通用C++运行时系统,适用于任意规模的并行和分布式应用。[Boost]
  • concurrencpp - 一个通用并发库,包含任务、执行器、定时器和 C++20 协程,以统管一切。
  • libcds - 一个C++并发数据结构库。[BSD]
  • ck - 并发原语、安全内存回收机制和非阻塞数据结构。[BSD]
  • Kokkos - 一个性能可移植的并行执行和内存抽象编程模型。[BSD]
  • libdispatch - Grand Central Dispatch(GCD)由苹果公司开发,是一种基于线程池模式的任务并行技术。libdispatch 是提供 GCD 服务实现的库。[Apache-2.0] 网站
  • libcu++ - NVIDIA C++ 标准库,提供 C++ 标准库设施的异构实现。[Apache-2.0]
  • marl - Marl 是一个用 C++11 编写的混合线程/纤程任务调度器。[Apache-2.0]
  • libdill - 在C中引入结构化并发。[MIT]
  • atomic_queue - 基于环形缓冲区和std::atomic的C++14多生产者多消费者无锁队列。[MIT]
  • moderngpu - moderngpu 是一个用于 GPU 通用计算的生产力库。它是一个为 CUDA 编写的仅头文件的 C++ 库。该库的独特价值在于其用于解决不规则并行问题的加速原语。[FreeBSD 与版权,Sean Baxter]
  • Boost.Compute - 一个用于OpenCL的C++ GPU计算库。[Boost] 网站
  • junction - 一个C++并发数据结构库。[BSD]
  • Async++ - 一个轻量级C++11并发框架,灵感来自Microsoft PPL库和N3428 C++标准提案。[MIT]
  • Neco - C 语言并发库(协程)。[MIT]
  • stdgpu - GPU 上的高效 STL 风格数据结构。[Apache2]
  • C++React - 一个用于C++11的响应式编程库。[Boost]
  • FiberTaskingLib - 基于任务的多线程库,支持具有任意依赖关系的任务图。[Apache]
  • cuda-api-wrappers - 轻量级、现代C++封装的CUDA GPU编程运行时API。[BSD]
  • libfork - 一个基于 C++20 协程构建的前沿、无锁、无等待、延续窃取任务库。[MPL-2.0] 网站
  • Intel Parallel STL - Intel® 为C++11及以上版本实现的C++17 STL。[Apache2]
  • VexCL - 一个用于 OpenCL/CUDA 的 C++ 向量表达式模板库。[MIT]
  • Quantum - 一个基于 Boost.Coroutine2 构建的强大 C++ 协程调度器框架。
  • transwarp - 一个仅头文件的 C++ 任务并发库。[MIT]
  • SObjectizer - 在一个相当小的 C++ 框架中实现了 Actor、发布-订阅和 CSP 模型。[BSD-3-Clause]
  • Channel - 用于线程间共享数据的线程安全容器。[MIT]
  • Intel Games Task Scheduler - 一个专为游戏开发者需求设计的任务调度框架。[MIT]
  • rotor - 事件循环友好的 C++ Actor 微框架。[MIT]
  • Bolt - 一个针对GPU优化的C++模板库。[Apache2]
  • Coros - 一个易用且快速的基于协程的任务并行库。[BSL-1.0]
  • dispenso - 一个高性能C++并行编程库,支持线程池、并行for循环、future、任务图及并发容器。[MIT]
  • TooManyCooks - 高性能 C++20 协程框架,具有先进的硬件检测功能。[BSL-1.0]
  • CUB - CUB为CUDA编程模式的每一层提供最先进、可复用的软件组件。[New BSD]
  • Libclsph - 一个基于OpenCL的GPU加速SPH流体模拟库。[MIT]
  • Kaspar-HFT - 一个C++20 actor框架和交易系统,具有同步消息传递(fast_send)、订单簿重建和队列精确重放模拟器。[MIT]
  • nvthreads - 一个用于在 C/C++ 中实现高效持久线程的库。[LGPL-2.1]
  • alpaka - 用于并行内核加速的抽象库。[LGPLv3+]
  • cupla - 通过Alpaka在OpenMP、Threads、TBB等上运行CUDA/C++的C++ API。[LGPLv3+]
  • Intel TBB - Intel® 线程构建模块。[Apache2]
  • OpenCL - 异构系统并行编程的开放标准。
  • OpenMP - OpenMP API。
  • RaftLib - RaftLib C++ 库,通过类似 C++ iostream 的运算符实现流式/数据流并发。[Apache2]
  • Thrust - 一个类似于 C++ 标准模板库(STL)的并行算法库。[Apache2]
  • STAPL - 一个旨在同时适用于共享内存和分布式内存并行计算机的 C++ 并行编程框架。[BSD]

机器人学 ​

  • PCL - 点云库(PCL)是一个独立的、大规模的开源项目,用于 2D/3D 图像和点云处理。[BSD] 网站
  • Ruckig - 用于机器人和机器的实时运动生成。[MIT] 网站
  • YARP (Yet Another Robot Platform) - 用于通信和设备接口的库和工具包。[BSD-3-Clause] 网站
  • FusionCore - ROS 2 UKF 传感器融合库,融合 GPS、IMU 和轮式里程计,具有自适应噪声和异常值剔除功能,用于稳健的户外定位。[Apache2]
  • SPICE Toolkit - 用于计算几何信息的库和工具包,这些信息用于规划和分析从机器人航天器获得的科学观测数据。[MIT] 网站
  • MOOS-IvP - 一组开源 C++ 模块,用于为机器人平台提供自主性,特别是自主海洋航行器。
  • MRPT - 移动机器人编程工具包。[BSD]
  • Robotics Library (RL) - 一个自包含的 C++ 库,用于机器人运动学、运动规划和控制。[BSD]
  • RobWork - 一组用于机器人系统仿真和控制的 C++ 库。[Apache2] 网站
  • ROS - 机器人操作系统(ROS)提供库和工具,帮助软件开发人员创建机器人应用程序。[BSD]

CLI ​

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

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

编译器 ​

C 或 C++ 编译器列表

  • movfuscator - 单指令 C 编译器,将程序编译为仅包含 mov 指令。[MIT]
  • 8cc - 一个小型 C 编译器。
  • c - 一步编译并执行 C“脚本”![MIT]
  • PCC - 一个非常古老的 C 编译器。支持 C99。
  • Clang - 一个用于 LLVM 的 C 编译器。支持 C++11/14/1z C11。由 LLVM 团队开发。[NCSA]
  • Fil-C - 一个极度兼容的内存安全 C 和 C++ 实现。
  • GCC - GNU 编译器集合。支持 C++11/14/1z C11 和 OpenMP。[GNU GPL3]
  • AMD C++ Compiler - 由 AMD 开发。
  • Intel C++ Compiler - 由 Intel 开发。
  • LLVM - 模块化和可复用的编译器及工具链技术集合。
  • Microsoft Visual C++ - MSVC,由 Microsoft 开发。
  • Open WatCom - Watcom C、C++ 和 Fortran 交叉编译器及工具。[Sybase Open Watcom Public License]
  • Oracle Solaris Studio - 用于 SPARC 和 x86 的 C、C++ 和 Fortran 编译器。支持 C++11。适用于 Linux 和 Solaris。[OTN 开发者许可]
  • TCC - 微型 C 编译器。[LGPL]
  • sierra - 一种面向 CISC 的编程语言,专注于创建可维护的程序。

正则表达式 ​

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

科学计算 ​

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

文档 ​

  • Sphinx - Sphinx使创建智能且美观的文档变得容易。[BSD-2-Clause] 网站
  • doxygen - zap:从带注释的C++源码生成文档的事实标准工具。[GPL2] 网站
  • Sourcey - 静态文档生成器,消费Doxygen XML以及OpenAPI、godoc、MCP和Markdown。[AGPL-3.0] 网站
  • hdoc - 现代C++文档工具。[AGPL/专有] 网站
  • doxyrest - 一个从Doxygen XML到reStructuredText的编译器,用于Sphinx。[MIT]
  • Natural Docs - Natural Docs是一个支持多种编程语言的开源文档生成器。[AGPL/专有] 网站
  • Doxide - 现代C++的现代文档,使用YAML配置,输出Markdown。[Apache 2.0] 网站

音频 ​

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

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

反射 ​

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

串口 ​

字体 ​

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

  • harfbuzz - 一个文本整形引擎。[Old MIT]
  • libschrift - 一个轻量级TrueType字体渲染库。[ISC]
  • otfcc - 一个用于解析和编写OpenType字体文件的C库和实用程序。[Apache-2.0]
  • SheenBidi - 一个复杂的Unicode双向算法实现。[Apache-2.0]
  • Fontconfig - 字体配置和定制库。[MIT] 网站
  • FreeType - FreeType是一个免费可用的软件库,用于渲染字体。[FTL & GPLv2]

视频 ​

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

Yaml ​

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

BitTorrent ​

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

XML ​

XML 很糟糕。真的。没有任何借口。XML 对人类来说解析很讨厌,对计算机来说解析也是一场灾难。那个可怕的垃圾根本没有存在的理由。——林纳斯·托瓦兹

  • TinyXML2 - 一个简单、小巧、高效的 C++ XML 解析器,可轻松集成到其他程序中。[zlib]
  • Mini-XML - 一个用 ANSI C 编写的小型 XML 解析库。[LGPL2 带例外]
  • TinyXML++ - 一个全新的 TinyXML 接口,充分利用了 C++ 的许多优势:模板、异常和更好的错误处理。[MIT]
  • Boost.PropertyTree - 一个属性树解析器/生成器,可用于解析XML/JSON/INI/Info文件。[Boost] 网站
  • Xalan C - 一个库和一个命令行程序,使用符合 XSLT 1.0 标准的样式表转换 XML 文档。[Apache-2.0] 网站
  • Expat - 一个用 C 编写的 XML 解析器库。[MIT]
  • Libxml2 - Gnome 的 XML C 解析器和工具包。[MIT]
  • libxml++ - 一个用于 C++ 的 XML 解析器。[LGPL2]
  • PugiXML - 一个轻量、简单且快速的 C++ XML 解析器,支持 XPath。[MIT]
  • RapidXml - 尝试创建最快的 XML 解析器,同时保持可用性、可移植性和合理的 W3C 兼容性。[Boost]
  • TinyXML - 一个简单、小巧、极简的 C++ XML 解析器,可轻松集成到其他程序中。[zlib]
  • Xerces-C++ - 一个用可移植的 C++ 子集编写的验证性 XML 解析器。[Apache2]

PDF ​

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

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

数据可视化 ​

数据可视化库

  • matplotplusplus - 用于数据可视化的 C++ 图形库。[MIT] 网站
  • matplotlib-cpp - 围绕 matplotlib Python 绘图库的 C++ 封装。[MIT]
  • Plotly++ - 面向 Plotly.js 图形规范的 C++ 接口,用于创建交互式数据可视化。[MIT]
  • mathplot - 基于现代 OpenGL 的 C++ 仅头文件绘图与数据可视化库。[Apache-2.0] 网站
  • gplot++ - 跨平台仅头文件的 C++ 绘图库,与 Gnuplot 交互。[MIT]

容器 ​

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

化学 ​

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

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

CSV ​

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

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

编码风格工具 ​

  • Uncrustify - 代码美化器。
  • cpp-linter-hooks - 由 clang-format 和 clang-tidy 驱动的 C/C++ 预提交钩子。[MIT]
  • Artistic Style - 用于格式化 C/C++/C#/Obj-C/Java 代码的工具。也称为 astyle。
  • ClangFormat - 用于格式化 C/C++/Obj-C 代码的工具。
  • Clang-Tidy - 基于 Clang 的 C++ 代码检查工具。
  • EditorConfig - EditorConfig 帮助在不同编辑器和 IDE 中保持一致的编码风格。

配置 ​

配置文件,INI 文件

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

排序 ​

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

DSP ​

数字信号处理。

  • DSPFilters - 一组用于数字信号处理的有用C++类。[MIT]
  • kissfft - 一个快速傅里叶变换(FFT)库,力求保持简单直接。[BSD-3-Clause]
  • iir1 - IIR实时C++滤波器库。[MIT]
  • wavelib - 一维和二维小波变换的C实现。[BSD-3-Clause]
  • fCWT - 快速连续小波变换(fCWT)是一个用于快速计算CWT的库。[Apache-2.0]
  • pocketfft - 基于FFTPack的FFT实现,但进行了多项改进。[BSD-3-Clause]
  • FFTW - 一个用于计算一维或多维DFT的C库。[GPL]

国际化 ​

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

Office Open XML ​

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

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

网站 ​

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

生物学 ​

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

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

图 ​

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

演讲 ​

标准库 ​

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

在线编译器 ​

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

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

调试器 ​

C 或 C++ 调试器列表

  • Comparison of debuggers - 来自 Wikipedia 的调试器列表。
  • GDB - GNU 调试器。
  • LLDB - LLDB 调试器。
  • Metashell - 交互式模板元编程 Shell,包含 MDB 元调试器。
  • Valgrind - 用于内存调试、内存泄漏检测和分析的工具。
  • x64dbg - 适用于 Windows 的开源 x64/x32 调试器。

播客 ​

  • CppCast - 首个由 C++ 开发者制作、面向 C++ 开发者的播客。
  • CppChat - 每周(有时)与社区嘉宾聊聊 C++ 世界动态。

博客 ​

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

鄂公网安备:42011202001971号      鄂ICP备:2021009343号