其他优秀项目
有用代码、片段等的集合。
- awesome - zap: - 精选的 awesome 列表集合。
- free-programming-books - 免费编程书籍列表。
- papers-we-love - 计算机科学社区供阅读和讨论的论文。
- Awesome interview questions - 最流行技术(包括 C 和 C++)的面试问题列表集合。
- Projects - 任何人都可以用任何编程语言解决的实用项目列表。
- awesome-awesomeness - 精选的 awesome 列表合集。
- awesome-algorithms - 精选的学习和/或练习算法的好去处。
- awesome-static-analysis - 适用于所有编程语言的静态分析工具精选列表。
- Awesome Modern C++ - 现代 C++ 资源集合。
- Awesome C - 1
- lists - GitHub 上精选的(awesome)列表集合。
- nothings/single_file_libs - zap: - 单文件 C/C++ 库列表。
- awesome-talks - 大量截屏视频、用户组聚会和会议演讲的录制。
- algorithms_and_data_structures - C++ 中算法和数据结构的实现。
- algorithms - C++ 中的算法与数据结构。
- C++ links - C++ 资源分类列表。
- awesome-hpp - 精选的仅头文件 C++ 库列表。
- Awesome C - 2
- c-algorithms - C 算法库。
- AwesomePerfCpp - 精选的 C/C++ 性能优化资源列表。
- 30 Seconds of C++
- awesome-ld-preload - 与 LD_PRELOAD 相关的资源精选列表。
- cpp_functional_programming - C++ 函数式编程的材料和链接列表。
- Awesome C++ - LibHunt 的镜像。
- Inqlude - Qt 库存档。
书籍
优秀的 C 或 C++ 相关书籍。
- Free C Books - vhf/free-programming-books/C。
- Free C++ Books - vhf/free-programming-books/C++。
- List of Free C or C++ Books
- cppbestpractices - C++ 最佳实践协作合集。
- Practical Guide to Bare Metal 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++ 相关视频。
- List of C or C++ YouTube Videos
- Awesome C Programming Tutorials in Hi Def [HD] - 面向初学者和新程序员的 C 语言编程教程合集。
- C++ - 由 VoidRealms 制作。
- C++ Qt Programming - 由 VoidRealms 制作。
- C++ Programming Tutorials Playlist - TheNewBoston 官方 Bucky 的 C++ 编程教程播放列表。
- C++ Programming Tutorials from thenewboston - 这些是 thenewboston 的全部 C++ 编程教程。
- C++ GUI with Qt Playlist - thenewboston 的 C++ GUI 与 Qt 教程官方播放列表。
- Caleb Curry's C Programming Tutorials - 一个包含 C 语言编程教程的综合播放列表。
- C Programming Tutorials - TheNewBoston 的所有 C 语言编程教程都在这里。
- Bo Qian's playlist - Boost 库、C++ 标准库、现代 C++、高级 C++、高级 STL 等。
- The Cherno's C++ Playlist - 由 The Cherno 制作的详尽 C++ 教程系列。
- Code for Yourself C++ Playlist - 一门完整的 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]
编码风格
- C++ Core Guidelines - 由 C++ 作者审阅的“官方”C++ 指南集。
- google-styleguide - Google 开源项目的风格指南。
- C++ Dos and Don'ts - Chromium 项目 > 面向开发者 > 编码风格 > C++ 注意事项。
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- LLVM Coding Standards
进程间通信
- 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++ 相关文章。
- modern-cpp-features - 现代 C++ 语言和库特性速查表。
- CppCon 2014 Presentation Materials - CppCon 2014 演示材料。
- CppCon 2017 Presentation Materials - CppCon 2017 演示材料。
- CppCon 2016 Presentation Materials - CppCon 2016 演示材料。
- CppCon 2015 Presentation Materials - CppCon 2015 演示材料。
- CppCon 2020 Presentation Materials - CppCon 2020 演示材料。
- CppCon 2018 Presentation Materials - CppCon 2018 演示材料。
- CppCon 2019 Presentation Materials - CppCon 2019 演示材料。
- C++ Compilation - C++ 编译过程的简要说明。
- cpp17_in_TTs - C++17 特性描述,主要以“Tony Tables”形式呈现。
- CppCon 2022 Presentation Materials - CppCon 2022 演示材料。
- C++Now 2017 Presentations - 在 C++Now 2017 上展示的演示材料。
- C++Now 2014 Presentations - 在 C++Now 2014 上展示的演示材料。
- CppCon 2023 Presentation Materials - CppCon 2023 演示材料。
- C++Now 2015 Presentations - 在 C++Now 2015 上展示的演示材料。
- C++Now 2013 Presentations - 在 C++Now 2013 上展示的演示材料。
- C++Now 2012 Presentations - 在 C++Now 2012 上展示的演示材料。
- C++Now 2018 Presentations - 在 C++Now 2018 上展示的演示材料。
- CppCon 2021 Presentation Materials - CppCon 2021 演示材料。
- C++Now 2019 Presentations - 在 C++Now 2019 上展示的演示材料。
- C++Now 2023 Presentations - C++Now 2023 演示材料。
- C++Now 2016 Presentations - 在 C++Now 2016 上展示的演示材料。
- C++Now 2021 Presentations - 在 C++Now 2021 上展示的演示材料。
- C++Now 2022 Presentations - C++Now 2022 演示材料。
- All C++20 core language features with examples - 所有 C++20 核心语言特性参考,附示例。
- Memory Footprint of GUI Toolkits - 各种 GUI 工具包内存占用对比。
- C++ UI Libraries - C++ UI 解决方案的全面列表。
- Books on C++17 - C++17 相关书籍列表。
- Choosing Some C++ Over C - 关于何时使用 C++ 而非 C 的文章。
- C++ 17 Features - C++17 特性的全面列表。
- Master C Programming with Open Source Books - 精选的 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] 网站
串口
- Asio - Asio 包含以可移植方式创建和操作串口的类。[Boost] 网站
- Serial Communication Library - 用 C++ 编写的跨平台串口库。[MIT] 网站
- Boost.Asio - Boost.Asio 包含以可移植方式创建和操作串口的类。[Boost] 网站
- CSerialPort - 轻量级跨平台串口库。[LGPL3]
- Libserial - C++ 串口编程。[BSD-3-Clause]
字体
用于解析和操作字体文件的库。
- 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
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
数字信号处理。
国际化
- 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++ 相关网站。
- CppPatterns - 一个现代 C++ 模式和惯用法的仓库。网站
- Function Pointers - 一份理解 C/C++ 中函数指针的指南。
- Standard 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++ 编程语言的掌握程度。
- Guru of the Week - 由 Herb Sutter 创作和编写的定期 C++ 编程问题系列。
- Meeting C++
- PVS-Studio’s challenge - PVS-Studio 的 C++ 测验,要求你在开源项目的代码片段中找出错误。
- Udemy C++ Courses and Tutorials
- C++ Hints - 每个工作日都会收到来自 PVS-Studio 团队关于最常见 C++ 错误及其解决方法的提示。
- C++ tutorial - 一个用户排名的在线教程库网站,展示多种学习 C++ 的课程。
- C++ Tutorial for Beginners - 由训练有素的专家策划的全面 C++ 教程。
- C++ for yourself - 一门关于现代 C++ 的全面教程,涵盖从基础到软件设计的全部内容。
- CompileBytes C++ Compiler - – 在线 C++ 编译器和交互式代码执行环境。
- C++ Resources - 一个包含书籍、文章和工具等 C++ 资源的集合。
生物学
生物信息学、基因组学、生物技术
演讲
- Quick game development with C++11/C++14 - CppCon 2014 演讲,由 Vittorio Romeo 主讲。
- C++ Conferences - C++ 会议目录
- Presentation on Hana for C++Now 2015
- CppCon Talks - zap: - C++ 会议。
- Meeting Cpp - Meeting C++ YouTube 频道
标准库
C++ 标准库——包括 STL 容器、STL 算法、STL 函数对象等。
- C++ Standard Library - 一组类和函数的集合,使用核心语言编写,是 C++ ISO 标准本身的一部分。
- Standard Template Library - 标准模板库(STL)。
- C POSIX library - 针对 POSIX 系统的 C 标准库规范。
- ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21——C++ 标准委员会。网站
- The GNU C Library - 本手册旨在告诉您如何使用 GNU C 库的功能。
在线编译器
在线 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++ 调试器列表
博客
有用的 C 或 C++ 相关博客。
- Coding For Speed - Coding For Speed DOT COM,更短的执行时间。
- Eric Niebler
- Sticky Bits
- Paul Fultz II's Blog
- ridiculousfish - 它会优化吗?
- Embedded in Academia
- Simplify C++
- Fluent C++
- Bartek's Coding Blog
- Kenny Kerr
- Sutter’s Mill
- Vorbrodt's C++ Blog
- foonathan::blog()
- C++ Team Blog - 来自 Microsoft Visual C++ 团队的开发博客