编程语言

C++

共 241 个项目
← 项目库
JoltPhysics
C++第 124 期

JoltPhysics

《死亡搁浅 2》背后的物理引擎。这是一款用 C++ 编写的刚体物理与碰撞检测库,支持多核并发和确定性模拟。它提供球体、方块、胶囊体等形状的连续碰撞检测,以及多种约束类型、软体、毛发模拟等功能,《地平线:西之绝境》和《死亡搁浅 2》等游戏均采用了该库。

luanti
C++第 123 期

luanti

开源体素游戏创作平台。这是一个开源体素游戏引擎,可以用 Lua 快速做出自己的 3D 方块游戏。它内置内容商店可直接下载来自社区的模组和游戏,支持单人、局域网和多人联机,可在 Windows、macOS、Linux 和 Android 上运行。

SpeedyNote
C++第 123 期

SpeedyNote

老旧平板也能用的手写笔记工具。这是一款专为低成本设备优化的跨平台手写笔记应用,目标是在老旧平板上实现接近 iPad 的书写体验。它支持压感书写、多图层、PDF 批注和手写 OCR,可在 Windows、macOS、Linux、Android 和 iPadOS 上运行。作者想让无纸化学习平民化,同时为那些被遗忘在角落的旧设备注入新的活力。

o3de
C++第 122 期

o3de

免费开源的 3D 引擎。这是一款免费、开源、实时的 3D 引擎,可用于开发 3A 级游戏、电影级画质的 3D 场景和仿真应用,支持 Windows、Linux 平台。

opentoonz
C++第 122 期

opentoonz

吉卜力工作室同款 2D 动画制作软件。这是一款开源的 2D 动画制作软件,由知名动画工作室吉卜力深度定制演化而来,提供扫描、上色、合成、特效和影片输出等数字动画制作流程,支持 Windows、macOS、Linux 平台。

GameLib
C++第 121 期

GameLib

拷贝一个头文件就能做游戏的 C++ 库。这是一款面向 C++ 初学者的单头文件 2D 游戏开发库,无需安装或链接任何库,内置窗口、绘图、精灵动画、键鼠输入、音效和碰撞检测等功能。

OrcaSlicer
C++第 121 期

OrcaSlicer

支持多品牌 3D 打印机的开源切片软件。这是一款开源的 3D 打印切片工具,内置流速调节、温度塔、回抽测试等校准套件,支持 Bambu Lab、Prusa、Creality 等主流打印机品牌,适用于 Windows、macOS 和 Linux 平台。

mujoco
C++第 120 期

mujoco

开源的高性能通用物理引擎。该项目是由 Google DeepMind 开源的通用物理仿真引擎,专注于复杂关节结构与环境交互模拟。它内置可视化交互式界面,支持使用 MJCF 描述场景,适用于机器人、具身智能、生物力学、动画和机器学习等场景。

RCLI
C++第 120 期

RCLI

专为 macOS 打造的本地语音 AI 助手。这是一款针对苹果芯片优化的本地语音 AI 命令行工具,集成了语音识别、LLM、VLM 和语音合成功能,全流程本地推理不依赖云端服务,支持语音控制音乐播放、创建提醒、调节音量等操作,并可分析屏幕或图片内容。

MFCMouseEffect
C++第 119 期

MFCMouseEffect

Windows 鼠标特效增强工具。这是一款轻量级的 Windows 桌面鼠标/光标特效工具,支持点击波纹、粒子拖尾、悬停发光、漂浮文字等多种鼠标特效。

来自 @sqmw 的分享
暂无截图
C++第 119 期

zvec

轻量级进程内向量数据库。该项目是阿里开源的进程内向量数据库,无需独立部署即可直接使用。它基于 Proxima 引擎构建,提供本地化、低延迟的向量数据管理和语义检索能力,支持混合搜索、数据持久化、重排序等功能。```python import zvec# Define collection schema schema = zvec.CollectionSchema(name="example",vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),)# Create collection collection = zvec.create_and_open(path="./zvec_example", schema=schema)# Insert documents collection.insert([zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),])# Search by vector similarity results = collection.query(zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]),topk=10)# Results: list of {'id': str, 'score': float, ...}, sorted by relevance print(results)```

GeminiWatermarkTool
C++第 118 期

GeminiWatermarkTool

Gemini 生成图片水印清除工具。这是一款用于移除 Gemini Nano Banana 和 Pro 生成图片右下角可见水印的工具,不支持隐形水印(SynthID)。它跨平台、无需联网、开箱即用,支持自动识别图片尺寸和批量处理等功能。

Hapticpad
C++第 118 期

Hapticpad

自制带力反馈旋钮的宏键盘。这是一款配备力反馈旋钮和 OLED 显示屏的 6 键宏键盘,支持 256 个配置文件切换、三种旋钮模式和自定义 RGB 灯环。可通过修改 SD 卡上的 XML 文件进行配置,无需安装特殊驱动或客户端即插即用。

toasty
C++第 118 期

toasty

轻量级 Windows 通知命令行工具。这是一款零依赖、轻量级的 Windows 平台 Toast 通知命令行工具,体积仅 230KB。它能够自动检测并集成 Claude Code、Gemini CLI 和 GitHub Copilot 等主流 AI 命令行编程助手,在任务完成时发送带对应图标的桌面通知,让你无需守在终端前等待 AI 结果。

iDescriptor
C++第 117 期

iDescriptor

跨平台的 iOS 设备管理工具。这是一款免费、开源、跨平台的 iPhone/iPad 设备管理工具,支持文件管理、导入相册、虚拟定位、AirPlay 投屏、数据线真伪识别等功能,适用于 Windows、Linux 和 macOS 系统。

crossdesk
C++第 116 期

crossdesk

支持 Web 端的远程桌面工具。这是一款开源、轻量级的跨平台远程桌面工具,支持不同设备间(Windows、Linux 和 macOS)的远程桌面控制和音视频传输,特点是可直接通过浏览器控制远程设备,无需额外安装任何应用。

来自 @Junkun Di 的分享
MouseClick
C++第 116 期

MouseClick

开源的鼠标连点工具。这是一款基于 Qt6 构建的鼠标连点器,仅适用于 Windows 系统。它开箱即用、操作简单,支持自定义鼠标点击间隔和快捷键功能。

来自 @SeaEpoch 的分享
objcurses
C++第 116 期

objcurses

命令行查看 3D 模型的工具。这是一款极简的 3D 模型查看器,能够将 3D 模型文件以 ASCII 字符方式渲染展示在终端里,支持 3D 对象的实时预览、旋转和交互操作。

来自 @CN1998Ft 的分享
seekdb
C++第 116 期

seekdb

开箱即用的轻量级向量数据库。该项目是 OceanBase 团队开源的一款轻量级 AI 原生搜索数据库,支持关系型、向量和文本数据的统一存储与检索。它提供嵌入式和服务器两种模式,最低仅需 1C1G 即可运行,并兼容 MySQL 协议。

暂无截图
C++第 115 期

chrome_plus

开箱即用的 Chrome 增强工具。这是一款基于 DLL 劫持技术的 Chrome 浏览器增强工具,支持双击或右键关闭标签、鼠标悬停标签栏时滚轮切换、强制保留最后一个标签防止浏览器意外关闭,以及自定义老板键快速隐藏窗口等功能。兼容所有 Chromium 内核浏览器,只需将 DLL 文件放入浏览器目录即可使用。

来自 @孤胆枪手 的分享
quill
C++第 115 期

quill

低延迟的异步 C++ 日志库。这是一款高性能异步 C++ 日志库,专为低延迟、性能敏感型应用设计。它通过将日志格式化与 I/O 操作交由后台线程处理,减少对主线程的性能影响,适用于高频交易、游戏引擎等场景。来自 [@沐怡旸](https://hellogithub.com/user/76dhrs54nQGLuge) 的分享```c++int main(){quill::Backend::start();quill::Logger* logger = quill::Frontend::create_or_get_logger("root", quill::Frontend::create_or_get_sink("sink_id_1"));LOG_INFO(logger, "Hello from {}!", std::string_view{"Quill"});}```

Vita3K
C++第 115 期

Vita3K

开源的 PSV 游戏模拟器。这是一款实验性的 PS Vita 模拟器,支持 Windows、Linux、macOS 和 Android 平台,能够运行大多数 PSV 游戏和自制程序。目前已成功运行《女神异闻录 4:黄金版》等热门游戏,并提供详细的游戏兼容性列表。项目正处于活跃开发阶段,尽管可能存在崩溃或卡顿等问题,但整体体验已相当出色。

来自 @天涯孤雁 的分享
暂无截图
C++第 114 期

Crow

类 Flask 的轻量级 C++ Web 框架。这是一款专为 C++ 开发者设计的轻量级 Web 框架,仅需引入头文件即可轻松集成。它拥有类似 Python Flask 的简洁易用路由 API,只需少量代码即可快速搭建 Web 服务,大幅降低 C++ Web 开发的门槛。```cpp#include "crow.h"int main(){crow::SimpleApp app;CROW_ROUTE(app, "/")([](){return "Hello world";});app.port(18080).multithreaded().run();}```

ShaderGlass
C++第 114 期

ShaderGlass

为 Windows 桌面实时添加酷炫特效。这是一款适用于 Windows 系统的着色器工具,能够实现图像特效、复古显示、视觉增强等多种叠加效果。它可以为你的屏幕或应用窗口,实时添加一层“特效滤镜”,内置 CRT、图像放大、像素化、色彩校正等经典着色器。

vicinae
C++第 114 期

vicinae

极速的原生桌面启动器。这是一款基于 C++ 开发的桌面启动器,不依赖 Electron 或浏览器。它速度快、易扩展、界面简洁,专注于提升桌面操作效率,支持文件搜索、剪贴板历史、内联计算器等功能。

Inkeys
C++第 113 期

Inkeys

好用的开源屏幕批注工具。这是一款免费开源的 Windows 屏幕批注工具,拥有流畅的画笔体验和丰富的绘图、标注功能,让屏幕演示变得简单高效。适用于教学授课、远程演示、日常办公等多种场景。

来自 @Alan-CRL 的分享
暂无截图
C++第 113 期

tinyxml2

C++ 开发者的高效 XML 解析库。这是一个简单易用的 C++ XML 解析库,体积小、依赖少,便于集成和移植。它能够将 XML 文档解析为易于操作的 DOM 树,并提供读取、修改、生成和保存等功能,适用于嵌入式、游戏、工具开发等场景。

windhawk
C++第 113 期

windhawk

Windows 应用的自定义与扩展工具。这是一款专为 Windows 平台设计的软件定制与扩展框架,类似 Windows 版的 LSPosed。它通过全局注入和 Hook 技术,将原本需要手动修改二进制或注册表才能实现的界面与功能调整,做成可一键安装的 mod(插件)。用户可以像安装插件一样,轻松获取、安装和管理各种 mod,实现自定义目标程序的界面、功能和交互方式。

来自 @Flashlightning 的分享
d2mcpp
C++第 112 期

d2mcpp

动手学现代 C++ 语言特性。这是一套完全开源的现代 C++ 语言特性互动教程。它把 C++11 的核心语言特性(如类型自动推导、移动语义等),拆成可运行的迷你练习,通过自研的 xlings 工具,实现一键安装依赖和实时判题等功能。

LunaTranslator
C++第 112 期

LunaTranslator

开源的视觉小说翻译工具。这是一款专为 Windows 平台设计的视觉小说(Galgame)翻译器,支持 HOOK、OCR、剪贴板等多种文本提取方式,可灵活切换,并提供在线翻译、离线翻译、语音合成等功能。

WindowsAppSDK
C++第 112 期

WindowsAppSDK

为旧桌面应用注入新活力的 SDK。该项目是微软官方开源的 Windows 桌面应用开发组件和工具集,旨在帮助传统的 Win32、WPF、WinForms 等应用,轻松集成最新的 Windows UI 和平台功能。只需引入一个 NuGet 包,就能为原应用引入更美观的 UI 和推送通知、窗口圆角等功能。

defendnot
C++第 111 期

defendnot

一键关闭 Windows Defender 的工具。这是一款用于禁用 Windows Defender 的工具,支持一键安装和持久生效。它通过直接调用 Windows 安全中心(WSC)接口,注册虚拟杀毒软件,实现对系统自带的 Defender 实时防护服务的彻底禁用。同时,支持开机自启,确保重启后禁用状态依旧生效。

OpenSpeedy
C++第 111 期

OpenSpeedy

开箱即用的游戏变速器。这是一款完全免费、开源的 Windows 游戏加速工具。它通过 Hook 系统时间函数,实现对游戏速度的灵活调节,并提供简单易用的界面,兼容多种单机游戏。请勿用于网络游戏,以免导致账号被封!

来自 @game1024 的分享
暂无截图
C++第 111 期

USearch

更快且小巧的向量检索与聚类引擎。这是一款高性能、轻量级的相似搜索和聚类引擎,单头文件设计,可嵌入主流数据库,支持向量和多模态数据(文本、图像、地理坐标)。它基于 HNSW 算法实现高效的近似最近邻搜索,兼容多种编程语言和精度类型,适用于推荐系统、向量数据库、智能检索、地理空间分析等场景。```c++#include#include using namespace unum::usearch;int main(int argc, char **argv) {metric_punned_t metric(3, metric_kind_t::l2sq_k, scalar_kind_t::f32_k);// If you plan to store more than 4 Billion entries - use `index_dense_big_t`.// Or directly instantiate the template variant you need - `index_dense_gt`.index_dense_t index = index_dense_t::make(metric);float vec[3] = {0.1, 0.3, 0.2};index.reserve(10); // Pre-allocate memory for 10 vectors index.add(42, &vec[0]); // Pass a key and a vector auto results = index.search(&vec[0], 5); // Pass a query and limit number of results for (std::size_t i = 0; i != results.size(); ++i)// You can access the following properties of every match:// results[i].element.key, results[i].element.vector, results[i].distance;std::printf("Found matching key: %zu", results[i].member.key);return 0;}```

EmptyEpsilon
C++第 110 期

EmptyEpsilon

多人协作式星舰模拟游戏。这是一款开源的多人星舰模拟游戏。玩家可通过 Windows、Linux 或 macOS 等不同终端联网合作,各自扮演舰长、驾驶员、工程师等不同岗位,实时协作共同操控一艘星舰,完成各种任务和挑战。游戏采用 C++ 开发,支持 Lua 脚本扩展,方便玩家创建个性化的游戏内容和任务场景。

JarkViewer
C++第 110 期

JarkViewer

便捷的 Windows 图片浏览工具。这是一款简单高效的 Windows 看图软件,适用于日常图片浏览及专业摄影作品预览等多种场景。它操作方便,支持多种快捷键,例如按下 I 键可快速查看图片详细信息。还支持读取 AI 生成图像的提示词(如有)、自动记忆上次窗口的位置和大小等实用功能。

来自 @JARK006 的分享
PlotJuggler
C++第 110 期

PlotJuggler

专业级时间序列数据可视化工具。这是一款开源的时间序列数据可视化工具,支持 CSV、ROS、ULog、MQTT 等多种数据格式及实时数据流。它拥有简单易用的界面,能够快速处理大量数据,适用于机器人、自动驾驶、物联网、实验科学等多种数据分析场景。

perfetto
C++第 109 期

perfetto

Google 开源的性能分析工具。该项目是谷歌开源的面向生产环境的性能分析与追踪工具,适用于 Android、Linux 和 Chrome。它提供可视化追踪数据的 Web 界面,支持系统与应用级的追踪、Java 堆栈分析、SQL 分析等功能。

redex
C++第 109 期

redex

Android 应用的字节码优化器。这是一款由 Meta 开源的字节码优化工具,能够显著缩小 APK 体积、提升应用运行效率。它提供了一套完整的 DEX 文件读写和分析框架,并内置了多种优化模块,适用于体积较大、对性能有较高要求的应用优化场景。

来自 @想念小鱼干的清蒸 的分享
Diagon
C++第 108 期

Diagon

交互式 ASCII 图表生成器。这是一个交互式的 ASCII 风格图表生成器,可以将类似 Markdown 的表达式转换为 ASCII 艺术形式。它支持生成数学表达式、序列图、树形图、表格、流程图等,并可以将图表导出为 WebAssembly,在网页中展示和交互。

ggwave
C++第 108 期

ggwave

通过声音传输数据的工具。这是一款创新的数据传输工具,通过声音在设备间传输少量数据。它采用频移键控(FSK)传输协议,并结合错码(ECC)提升数据传输的可靠性,传输速度在每秒 8-16 字节。

wukong-minimap
C++第 108 期

wukong-minimap

《黑神话:悟空》小地图插件。这是一款专为《黑神话:悟空》设计的实时地图插件。它完全免费且安装简单,支持实时位置追踪、导航、关键点位,以及地图放大、缩小和隐藏等功能。

champ
C++第 107 期

champ

开源的四足机器人控制开发框架。这是一个开源的四足机器人开发框架,可用于构建四足机器人和开发控制算法。它提供轻量级的头文件库和丰富的 ROS 工具包,支持完全自主导航、Gazebo 仿真环境以及多种硬件平台,为开发者提供了完整的四足机器人控制框架和开发工具。

cling
C++第 107 期

cling

交互式的 C++ 开发环境。这是一个基于 LLVM 和 Clang 构建的交互式 C++ 解释器。它提供了直观的交互式命令行界面,支持即时编写、执行和调试 C++ 代码,并可以与 Jupyter 集成。

来自 @chenxu 的分享
MusicPlayer2
C++第 107 期

MusicPlayer2

多功能的 Windows 音乐播放器。该项目是一款由 C++ 编写的简约、小巧、多功能的 Windows 本地音乐播放器,支持常见音频格式,并提供歌词显示、卡拉 OK 模式、歌词编辑、专辑封面展示、频谱分析和音效调节等功能。

来自 @wyf9 的分享
Memento
C++第 106 期

Memento

边看视频边学日语的视频播放器。这是一款基于 mpv 的开源视频播放器,专为学习日语而设计。它能够帮助用户在观看视频时学习日语,支持弹出式词典、字幕浏览、生成和同步生词卡等功能。

mixxx
C++第 106 期

mixxx

免费开源的 DJ 混音软件。该项目是一款用 C++ 开发的专业级 DJ 软件,完全免费。它提供了丰富的功能和硬件兼容性,支持自动 BPM 检测、实时效果处理、录音和直播等功能,适用于 Windows、macOS 和 Linux 平台。

parallel-hashmap
C++第 106 期

parallel-hashmap

高性能的 HashMap 库。该项目提供了多种高性能、内存友好、线程安全的哈希表和 B 树容器实现。它基于 Google 的 Abseil 库进行开发和优化,支持 C++11 标准和头文件形式,无需编译即可直接使用。```c++#include#include#include using phmap::flat_hash_map;int main(){flat_hash_map nickname ={{ "tom", "tomcat"},{ "jim", "jimoby"}};for (const auto& n : nickname)std::cout

upx
C++第 106 期

upx

压缩可执行文件的工具。这是一款开源的可执行文件压缩工具,支持多种可执行文件格式(Windows、Linux、macOS)。它拥有出色的压缩比(50-70%),压缩后的文件可直接运行,适用于程序分发和大规模存储的场景。

love
C++第 105 期

love

完全免费的 2D 游戏引擎。这是一款免费、开源、可商用的 2D 游戏开发框架,支持使用 Lua 语言开发跨平台的 2D 游戏,兼容 Windows、macOS、Linux、Android 和 iOS 平台。

WLED
C++第 105 期

WLED

无线控制 LED 灯带。该项目是一个运行在 ESP32 和 ESP8266 上的 Web 服务器,可实现通过 WiFi 控制 LED 灯带的颜色和效果,支持 100 种特效、50 种调色板、250 个用户自定义预设等功能。

carla
C++第 104 期

carla

开源的自动驾驶研发模拟平台。这是一款用于自动驾驶研究的开源模拟器,专为自动驾驶系统的开发、训练和验证提供虚拟环境。它包含免费的数字资产库,包括城市布局、建筑和车辆模型等,支持灵活配置传感器套件和环境条件。还提供了容易上手的 Python API,方便开发者进行车辆控制、传感器配置和环境参数调整。

PrismLauncher
C++第 104 期

PrismLauncher

开源的 Minecraft 启动器。该项目是基于 MultiMC 开发的 Minecraft 启动器,旨在帮助用户轻松管理多个 Minecraft 版本和实例。它优化了启动器的使用体验,支持快速切换不同版本、模组配置和游戏设置,兼容 Windows、Linux 和 macOS 平台。

zeal
C++第 104 期

zeal

实用的离线文档浏览工具。该项目是受 Dash 启发、专为开发者打造的离线文档查询工具,无需联网即可访问各种编程语言和框架的 API 文档。它提供简洁的界面和多种编辑器插件,并支持自定义文档的创建和导入,适合在没网的环境下查看技术文档。

暂无截图
C++第 103 期

aria2

超快的命令行下载工具。这个跨平台命令行下载工具由 C++ 开发,支持 HTTP(S)、FTP、SFTP、BitTorrent 等多种协议。它操作简单、体积小、下载速度快,并提供后台运行、速度限制、分段下载和 BitTorrent 扩展等功能。

来自 @刘睿华 的分享
fast_float
C++第 103 期

fast_float

速度与精准兼具的 C++ 数字解析库。该项目是用于快速解析数字字符串的 C++ 库,实现了类似 from_charts 函数的功能。它是一个速度极快、仅头文件的库,比标准库快数倍。支持解析 float、double 和整数类型的字符串,已被广泛应用在 Chromium、Redis 和 LLVM 等知名项目中。```c++#include "fast_float/fast_float.h"#include int main() {const std::string input = "3.1416 xyz ";double result;auto answer = fast_float::from_chars(input.data(), input.data()+input.size(), result);if(answer.ec != std::errc()) { std::cerr

mame
C++第 103 期

mame

开源的街机模拟器。这是一款支持海量街机游戏的模拟器。它通过模拟多种硬件平台,实现了在电脑上运行各种复古软件的功能。不仅支持街机,还有老式电脑和游戏机。

alien
C++第 102 期

alien

强大的人工生命模拟工具。该项目是基于 CUDA 的 2D 粒子引擎构建的人工生命模拟工具。它提供了图形化用户界面和粒子编辑器,能够轻松模拟软体、流体、数字生物体、遗传和进化等过程。生物行为由神经网络控制,支持实时交互和模拟百万量级的粒子。

vcmi
C++第 102 期

vcmi

《英雄无敌 III》的开源重制版。该项目是经典策略游戏《魔法门之英雄无敌 III》的开源重制版,它采用 C++ 重新编写了游戏引擎,支持更高的分辨率、多人游戏和自定义地图等功能,可以在 Windows、macOS、Android 和 iOS 等系统上运行,但需要自行准备启动游戏所需的数据文件。

lnav
C++第 101 期

lnav

强大的终端日志文件查看工具。这是一款用于查看和分析日志文件的轻量级工具。它无需配置、开箱即用,可自动识别日志格式并解压文件,支持同时处理多个文件和目录、实时更新、文本高亮、正则与 SQL 过滤日志等功能,特别适合在服务器和开发环境中使用。

来自 @DeShuiYu 的分享
shadPS4
C++第 101 期

shadPS4

开源的 PS4 模拟器。这是用 C++ 编写的 PlayStation 4(PS4)模拟器,支持在 Windows、Linux 和 macOS 系统上玩 PS4 游戏。虽然项目仍处于早期开发阶段,能运行的游戏有限,但最新版已经能够成功运行《血源诅咒》和《黑暗之魂II》等游戏。

diff-pdf
C++第 100 期

diff-pdf

直观比较两个 PDF 文件的工具。这是一款用 C++ 编写的 PDF 文件比较工具。它支持两种查看方式,将文件内容的差异输出到一个新的 PDF 文件,或直接在 GUI 中查看。```// 输出差异diff-pdf --output-diff=diff.pdf a.pdf b.pdf// 直接查看diff-pdf --view a.pdf b.pdf```

ladybird
C++第 99 期

ladybird

真正独立的开源浏览器。该项目作者想要从头构建一个真正独立的 Web 浏览器,所以他从自己写的 SerenityOS 操作系统中分离出浏览器引擎部分,计划基于此做一个全新、跨平台的开源浏览器。目前项目处于早期阶段,尚未发布可供下载的安装包。

mosh
C++第 99 期

mosh

适用于移动端的远程终端工具。这是一款专为移动和不稳定的网络环境设计的远程终端工具,它能够在网络切换、高延迟和 IP 变化的情况下,保持远程会话的稳定和更快的响应,适用于 Android、iOS、Linux 和 macOS 等系统。

OpenArk
C++第 99 期

OpenArk

专业的 Windows 恶意程序分析与清理工具。这是一款 Windows 平台上的对抗和清理 Rootkit(恶意程序)工具,它能够帮助程序员发现系统中隐藏的恶意软件,支持查看进程、进程注入、内核驱动模式和扫描等功能。

来自 @SHOWTA 的分享
caesium-image-compressor
C++第 98 期

caesium-image-compressor

免费的图片压缩软件。这是一款用 C++ 编写的图片压缩工具,它拥有简洁的中文界面,支持 JPG、PNG 和 WebP 格式的无损压缩,同时配备了实时预览和批量处理的功能。此外,还提供了 Windows、Linux 和 macOS 客户端,以及无需安装的 Web 版本。

暂无截图
C++第 98 期

concurrentqueue

C++ 的高性能无锁并发队列。该项目是用 C++11 编写的快速、无锁、并发队列,支持多个线程同时进行生产者和消费者操作。它具有无需使用锁和单头文件的特点,适用于需要高性能并发处理的各种场景。```c++#include "concurrentqueue.h"moodycamel::ConcurrentQueue q;q.enqueue(25);int item;bool found = q.try_dequeue(item);assert(found && item == 25);```

input-overlay
C++第 98 期

input-overlay

显示用户操作输入的 OBS 直播插件。该项目是用来在直播中显示键盘按键、鼠标移动和游戏手柄按钮的插件,适用于 Windows 和 Linux 上的 OBS 直播软件,可用于游戏直播和教学演示等场景。

cppinsights
C++第 97 期

cppinsights

从编译器的视角看 C++ 的代码。这是一个基于 Clang 的开发工具,它可以将源代码转化成编译器的推导结果,让用户从编译器的视角深入了解代码的内部机制,可以用来展示和讲解抽象语法树(AST)和 C++ 语言的新特性。

stellarium
C++第 97 期

stellarium

一款开源的天象模拟软件。该项目是天文爱好者必备神器,它能够精确地模拟/展示出头顶星空的景象,包括恒星、星座、行星、彗星等天体,支持选择时间和地点、放大观察、图解星座等功能,提供了 Windows、Linux、macOS、iOS 和 Android 在内的多个平台客户端。

VideoPipe
C++第 97 期

VideoPipe

跨平台的视频结构化和分析框架。这是一个用于视频分析和结构化的框架,采用 C++ 编写、依赖少、易上手。它就像一个管道每个节点相互独立,可自行搭配构建出不同类型的视频分析管道,适用于视频结构化、图片搜索、人脸识别、安防领域的行为分析(如交通事件检测)等场景。

来自 @周智 的分享
ada
C++第 96 期

ada

快如闪电的 URL 解析利器。该项目是用 C++ 写的符合 WHATWG 规范的 URL 解析器,解析速度是 curl 的数倍,目前已成为 Node.js 默认 URL 解析器(18.16.0 及以上),注意仅仅是 URL 地址解析不是请求。

keepassxc
C++第 96 期

keepassxc

一款开源、安全、跨平台的密码管理器。该项目是采用 C++ 开发的免费、离线、无广告的密码管理工具,它提供了简洁直观的用户界面,可轻松管理各种应用/网站的账号密码,支持多平台、浏览器插件、自动填充、密码生成等功能。

TranslucentTB
C++第 96 期

TranslucentTB

自定义 Windows 任务栏透明度的小工具。该项目是采用 C++ 开发的用于调整 Windows 任务栏透明度的工具,它体积小、免费、简单易用,支持 5 种任务栏状态、6 种动态模式、Windows 10/11 操作系统。

暂无截图
C++第 96 期

tugraph-db

支付宝背后的分布式图数据库。该项目是由蚂蚁集团和清华大学共同研发的高性能分布式图数据库,支持事务处理、TB 级大容量、低延迟查找和快速图分析等功能。

endless-sky
C++第 95 期

endless-sky

一款开源的 2D 太空模拟类游戏。这是一款免费、开源的太空探索类游戏。玩家将扮演一位小型宇宙飞船的舰长,在沙盒式的太空环境中展开探险。通过做任务、运送乘客或货物、护航、交易或掠夺敌方飞船,玩家可以赚取金钱,进而购买更强大的飞船并升级武器与引擎,探索更广阔的太空。游戏对硬件配置要求低,支持 Windows、Linux 和 macOS 平台。

Hyprland
C++第 95 期

Hyprland

一个灵活、强大的 Wayland 合成器。这是一个高度可定制的动态平铺 Wayland 合成器,用于 Linux 系统的自定义桌面环境。Wayland 是新一代的 Linux 桌面后端服务器协议。该项目提供了多应用程序窗口管理、自动调整、切换和切分窗口的功能。它还支持多显示器设置、自定义外观和丰富的插件扩展。

images
C++第 95 期

images

一个缓存和调整图像尺寸的服务。这个项目是用 C++ 编写的图像处理服务,使用了 Nginx、libvips 和 Cloudflare 等技术。它具备调整图像大小和加速访问的功能,支持多种图像格式,包括 JPEG、PNG、BMP、GIF、TIFF、WebP、PDF 和 SVG 等。来自 [@孤胆枪手](https://hellogithub.com/user/i1wAIyo6P3NXkxm) 的分享``````

Shell
C++第 95 期

Shell

一款强大的 Windows 上下文菜单管理工具。这项目是一个用于管理 Windows 文件资源管理器上下文菜单的程序。简单来说,就是扩展了 Windows 右键菜单的功能。该工具免费、开源、无广告、轻巧,支持所有文件系统对象,如文件、文件夹、桌面和任务栏。它提供了一系列提升效率的功能,包括拷贝文件地址、快速打开目录、终端打开、自定义外观以及复杂的嵌套菜单等。

暂无截图
C++第 94 期

abseil-cpp

谷歌开源的 C++ 基础库。这是一个在 Google 内部被广泛应用的 C++ 公共库,它提供了一系列高质量、可靠、高效的基础模块,其中包括字符串处理、并发、时间、STL 容器、测试、日志等实用函数。

来自 @张程林 的分享
gpupixel
C++第 94 期

gpupixel

高性能跨平台实时美颜滤镜库。这是一个用 C++11 编写的高性能图像和视频处理库,内置基于 GPU 的美颜特效滤镜,效果可以达到商业级别水平。支持磨皮、美白、瘦脸、大眼等特效,适用于 iOS、macOS 和 Android 平台。

来自 @Zhaoyou Ge 的分享
qtrvsim
C++第 94 期

qtrvsim

面向教育的 RISC-V CPU 模拟器。这是一个采用 Qt 实现的 RISC-V CPU 模拟器,由捷克理工大学计算学院开发。

暂无截图
C++第 93 期

Modern-CPP-Programming

现代 C++ 编程课程。该教程面向有一定编程基础的人,内容涵盖 C++ 编程的基础知识、高级 C++ 语义和概念。

WechatExporter
C++第 93 期

WechatExporter

微信聊天记录迁移和备份工具。这是一个用于导出微信聊天记录的工具,支持以 HTML、PDF 或文本格式保存聊天内容,适用于 Windows 和 macOS 系统。

olcNES
C++第 92 期

olcNES

用 C++ 写一个 NES 模拟器。这是一份教你用 C++ 写 NES/FC 游戏模拟器的视频教程和源码,作者是油管大神 javidx9。

olive
C++第 92 期

olive

一款免费、开源的非线性视频剪辑工具。非线性视频剪辑是指将图片、音乐、特效等素材与视频进行混合编辑,虽然该项目完全免费,但目前还处于迭代中并不稳定,适用于 Windows、macOS 和 Linux 系统。

KeyDB
C++第 91 期

KeyDB

多线程版的 Redis。该项目是由 Snapchat 开源的支持多线程的 Redis,它具有高性能、更高的吞吐量、完全兼容 Redis 协议等特点。有了多线程就可以放心大胆地执行 KEYS 和 SCAN 命令,不用再担心阻塞 Redis 了。

MuseScore
C++第 91 期

MuseScore

一款免费开源的写谱工具。这是一款用 C++ 编写的创建和编辑乐谱的桌面工具,它拥有精美的界面、中文语言和丰富的功能,重点是免费畅用无限制。支持为包括钢琴、吉他等 500 多种乐器编曲,适用于 Windows、Linux 和 macOS 系统。

rpcs3
C++第 91 期

rpcs3

流畅运行 PS3 游戏的开源模拟器。该项目是用 C++ 写的 PlayStation 3(PS3) 模拟器,安装后使用默认配置,就能较为流畅地运行多种 PS3 主机上的游戏,适用于 Windows、Linux、macOS 和 FreeBSD 操作系统。

tiled
C++第 91 期

tiled

一款强大的 2D 游戏关卡编辑工具。该项目是一款完全由社区驱动、功能强大、容易上手的 2D 游戏场景编辑器,它能够帮助开发者快速制作 2D 游戏地图和设计关卡,支持灵活的对象图层、自由放置图像、对齐像素、图块动画和碰撞编辑器等功能。

duckdb
C++第 90 期

duckdb

一款类似 SQLite 的分析型数据库。该项目是用 C++ 写的 OLAP(联机分析处理)数据库,没有外部依赖项、不作为独立进程运行,可以看作是 OLAP 版本的 SQLite。它方便、快速、易于使用,提供了丰富的 SQL 方言,支持 JOIN、聚合、窗口函数、直接查询 CSV 和 JSON 文件等功能。```SELECT * FROM 'HelloGitHub.csv';SELECT * FROM 'HelloGitHub.parquet';```

kakoune
C++第 90 期

kakoune

一款神似 Vim 的代码编辑器。拥有极简的界面和便捷的编辑模型的代码编辑器,虽然它的设计灵感源自 Vim,但在功能和交互性上“青出于蓝而胜于蓝”。操作上更加的快捷方便,默认支持语法高亮、自动补全等功能,适用于 Linux 和 macOS 操作系统。

SafeLine
C++第 90 期

SafeLine

一款简单好用的 Web 应用防火墙。该项目底层基于 Nginx 的 Web 网关,作为反向代理接入网络。采用智能语意分析算法,清洗来自黑客的恶意流量,保护你的网站不受黑客攻击。它安装简单、免费版功能够用,但项目仅开源了核心算法和底层引擎。

来自 @孤胆枪手 的分享
smartknob
C++第 90 期

smartknob

自己动手制作一款触感智能旋钮。这是一款开源的智能旋钮设备,可自定义端点位置、虚拟制动、触觉反馈,并带有一个圆形 LCD,十分炫酷好玩。

typesense
C++第 90 期

typesense

一款快如闪电的开源搜索引擎。该项目是用 C++ 编写的即时搜索引擎,具有开箱即用、搜索速度快、自动更正拼写错误、地理搜索、默认分词器支持中文等特点。

implot
C++第 89 期

implot

实时绘图的 GUI 库。该项目可根据用户交互和数据更新,实时更新图像的 Dear ImGui 绘图库,支持 GPU 加速、多种绘图类型、混合绘图等功能。仅需少量的代码,就能集成实时数据可视化的功能。```int bar_data[11] = ...;float x_data[1000] = ...;float y_data[1000] = ...;ImGui::Begin("My Window");if (ImPlot::BeginPlot("My Plot")) {ImPlot::PlotBars("My Bar Plot", bar_data, 11);ImPlot::PlotLine("My Line Plot", x_data, y_data, 1000);...ImPlot::EndPlot();}ImGui::End();```

wslg
C++第 89 期

wslg

在 Windows 上运行 Linux 图形化应用的工具。该项目是微软开源的支持在 Windows 操作系统上,运行 Linux GUI 应用的工具。提供了原生和自然的 Linux GUI 应用使用体验,比如跨 Windows 和 Linux 应用的剪切粘贴等功能。WSLg 已内置在 Windows 10 及以上的系统中,可直接通过 wsl 命令启动。

暂无截图
C++第 88 期

clink

Windows 命令行增强工具。该项目可以让 Windows 原生的 cmd.exe 拥有类似 bash 一样强大的自动补全、历史记录、行编辑等功能,就像在 Linux 终端上一样。

来自 @孤胆枪手 的分享
miniob
C++第 88 期

miniob

从 0 到 1 数据库内核实战教程。该项目是 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、从零上手数据库的学习项目。它结构简单、代码简洁,不仅有文字讲解和视频教程,还有由浅入深的题目。通过理论+实战的方式,帮忙初学者迅速掌握内核模块功能和协同关系,提高工程编码能力,有助于在面试和工作中脱颖而出。

来自 @wangyunlai 的分享
geometrize
C++第 87 期

geometrize

将图像用几何图形重绘的工具。该项目可以用圆形、三角形、矩形等几何图形重新绘制图像,并将结果导出为 SVG、PNG、JPG、GIF 等格式。

primihub
C++第 87 期

primihub

由密码学专家团队打造的开源隐私计算平台。随着《数据安全法》和《个人信息保护法》的相继颁布,隐私计算技术在近两年迎来了前所未有的热度。该项目是由密码学专家团队打造的隐私计算平台,它开箱即用、安全可靠,支持隐匿查询、隐私求交、联合统计、数据资源管理等功能,实现了“数据可用不可见”,为数据安全流通保驾护航。```# 第一步:下载git clone https://github.com/primihub/primihub.git# 第二步:启动容器cd primihub && docker-compose up -d# 第三步:进入容器docker exec -it primihub-node0 bash# 第四步:执行隐私求交计算./primihub-cli --task_config_file="example/psi_ecdh_task_conf.json"I20230616 13:40:10.683375 28 cli.cc:524] all node has finished I20230616 13:40:10.683745 28 cli.cc:598] SubmitTask time cost(ms): 1419# 查看结果cat data/result/psi_result.csv"intersection_row"X3...```

redpanda
C++第 87 期

redpanda

与 Kafka API 完全兼容的流数据平台。这个项目可以看作是用 C++ 重新编写的 Kafka,它更轻、更快、更省钱,部署简单使用方便,完全不受 JVM、ZooKeeper 等外部依赖的影响。

shotcut
C++第 87 期

shotcut

一款功能强大的免费视频剪辑软件。这款软件虽然免费但在功能上完全不输收费的视频剪辑工具,可作为 Pr 的开源替代品。它拥有中文和直观的操作界面,支持数百种音频和视频格式、素材原生编辑、多时间线等功能,适用于 Windows、Linux、macOS 系统。

sqlitebrowser
C++第 87 期

sqlitebrowser

SQLite 可视化管理工具。这是一款实用的 SQLite 数据库桌面管理工具,它支持创建和编辑 SQLite 数据库文件,可通过图形化界面创建、定义、修改、删除表和索引,以及执行 SQL 和导出数据等操作。

azerothcore-wotlk
C++第 86 期

azerothcore-wotlk

启动你专属的魔兽世界服务。它是用 C++ 编写的开源魔兽世界(WoW)服务器端,支持经典的巫妖王之怒(3.3.5a)游戏版本和 Docker 启动。该项目由社区驱动,运行稳定、社区活跃、对新手友善。

kdeconnect-kde
C++第 86 期

kdeconnect-kde

Linux 上的设备互联工具。这是一款由 KDE(知名 Linux 桌面环境) 开源的,方便手机与电脑实现无线互联的应用。支持手机和电脑之间共享剪贴板、通知、文件、运行命令等功能,还可以将手机作为电脑的触控板、键盘和幻灯片遥控器等外接设备。

暂无截图
C++第 86 期

pybind11

简化 Python 调用 C++ 代码的库。这是一个仅头文件的 C++ 库,它可以将 C++ 代码转化成 Python 可直接引用的模块,轻松实现 Python 调用 C++ 代码。通过这种混合编程的方式,可以提高 Python 代码的性能。```手动编译 C++ 代码$ c++ -O3 -Wall -shared -std=c++11 -fPIC $(python3 -m pybind11 --includes) example.cpp -o example$(python3-config --extension-suffix)然后在 Python 代码中直接 import 即可使用$ python Python 3.9.10 (main, Jan 15 2022, 11:48:04)[Clang 13.0.0 (clang-1300.0.29.3)] on darwin Type "help", "copyright", "credits" or "license" for more information.>>> import example>>> example.add(1, 2)3```

wondertrader
C++第 86 期

wondertrader

一站式的量化交易框架。这是采用 C++ 开发的一站式量化交易框架,支持量化交易过程中的数据清洗、回测分析、实盘交易、运营调度等环节。可用于多账户交易、极速/高频交易、算法交易等场景。

AirSim
C++第 85 期

AirSim

基于虚幻引擎构建的无人机、汽车模拟器。这是一款微软开源的无人机和汽车的仿真模拟器,支持使用流行的飞行控制器进行软件在环(SIL)仿真,并使用 PX4 进行硬件在环(HIL)模拟,实现物理和视觉上逼真的模拟,可用于试验自动驾驶汽车、计算机视觉和强化学习算法。

来自 @松果 的分享
krita
C++第 85 期

krita

自由开源的免费绘画软件。它强大且完全免费,无需注册、没有广告、试用期和商用限制,让每一位画师都可以有尊严地进行创作。可用于绘制概念草图、插画、漫画、动画、接景和 3D 贴图,支持数位板、压感、防抖、图层、滤镜、色彩管理等功能,适用于 Windows、Linux、macOS 操作系统。

notekit
C++第 85 期

notekit

一款支持手绘笔记的 Markdown 编辑器。这是一个基于 GTK+ 3 开发的笔记工具,支持所见即所得的 Markdown 内容,以及通过鼠标、触摸屏或数字转化器添加手绘笔记。

pcsx2
C++第 85 期

pcsx2

免费、强大的 PlayStation 2 游戏模拟器。它能够运行包括最终幻想 X 和 鬼泣 3 在内的热门游戏,支持中文在内的多国语言,适用于 Windows、Linux 和 macOS 系统。

dragonfly
C++第 84 期

dragonfly

一款为取代 Redis 而生的内存数据库。它与当下最流行的两款内存数据库 Redis 和 Memcached 的 API 完全兼容,所以无需修改代码即可完成迁移。性能上更是爆炸,官方表示单实例可支持数百万量级的 QPS,而且吞吐量是 Redis 的 25 倍,并可以应对 TB 级别的内存数据集。

moonlight-qt
C++第 84 期

moonlight-qt

让你可以在几乎任何设备上玩 PC 游戏的工具。该项目基于 NVIDIA GameStream 协议,通过串流的方式实现在 iOS、Android、电视等设备上玩电脑的 3A 大作。此过程手机无需下载和运行游戏,只需接收游戏画面、反馈操作指令。虽然安装过程有点复杂需要花些时间,但是为了躺着玩 PC 游戏一切都是值得的,感兴趣的小伙伴折腾起来吧!

oceanbase
C++第 84 期

oceanbase

一款国产的原生分布式数据库。这是源自蚂蚁集团的一款基于 Paxos 协议和分布式架构的企业级分布式关系型数据库。它同时支持 OLTP 和 OLAP 的混合负载,具有高可用、高性能、水平扩展、兼容 SQL 语法等特点。

来自 @lijiayun123 的分享
暂无截图
C++第 84 期

rr

Linux 上的轻量级 C/C++ 调试工具。这是一款 Linux 上的轻量级调试 C/C++ 代码的工具,支持录制、重放和反向执行等操作,提供了一个可反复调试的环境,大大提升了调试效率。

Clipboard
C++第 83 期

Clipboard

小巧便捷的命令行剪贴板。一款用 C++ 编写的剪贴板工具,可以在终端的任何地方复制、剪切和粘贴东西,使用起来就像 GUI 一样方便,相见恨晚的命令行工具,适用于 Windows、Linux 和 macOS 操作系统。

doctest
C++第 83 期

doctest

超快的 C++ 单头文件测试框架。这是一款轻量级、快速的 C++ 测试框架,它使用起来十分方便,引入头文件即可使用,而且速度快、编译时间短,支持 C++ 11/14/17/20。```c++#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN#include "doctest.h"int factorial(int number) { return number

pocketpy
C++第 83 期

pocketpy

为嵌入游戏引擎而设计的 Python 解释器。一个 C++ 实现的轻量级的 Python 解释器,包含一个编译器和基于字节码的虚拟机,以及交互式命令窗的实现。所有功能均集成在单个头文件 pocketpy.h 中,不包含外部依赖项可以很方便地嵌入应用,立刻拥有执行 Python 代码的能力。来自 [@最大的梦想家](https://hellogithub.com/user/GvV4jfIDhMEUO5x) 的分享```c#include "pocketpy.h"int main(){// 创建一个虚拟机VM* vm = pkpy_new_vm(true);// Hello world!pkpy_vm_exec(vm, "print('Hello world!')");// 构建一个列表pkpy_vm_exec(vm, "a = [1, 2, 3]");// 对列表进行求和char* result = pkpy_vm_eval(vm, "sum(a)");printf("%s", result); // 6// 释放资源pkpy_delete(result);pkpy_delete(vm);return 0;}```

QGIS
C++第 83 期

QGIS

自由开源的桌面 GIS 软件。该项目采用 C++ 语言编写,GUI 部分使用的是 Qt 库。它提供了 GIS 数据可视化、编辑和分析的功能,支持多种 GIS 数据格式,适用于 Windows、Linux、macOS、BSD 和移动设备。

暂无截图
C++第 82 期

cpp-httplib

一个文件的 C++ HTTP/HTTPS 库。这是一个用 C++11 写的仅头文件、跨平台的 HTTP/HTTPS 服务器端和客户端库,使用时十分方便,只需在代码中引入 `httplib.h` 文件。```c++#define CPPHTTPLIB_OPENSSL_SUPPORT#include "path/to/httplib.h"// HTTPS httplib::Client cli("https://hellogithub.com");auto res = cli.Get("/periodical");res->status;res->body;```

Ripes
C++第 82 期

Ripes

RISC-V 的模拟器和汇编编辑器。该项目可以通过图形化的方式,展示机器代码在各种微架构上运行的过程,可用于探索不同的高速缓存设计对性能的影响等问题。

SFML
C++第 82 期

SFML

简单高效的 C++ 多媒体库。这是一个可用来简化游戏和多媒体应用开发的 C++ 库,因其上手门槛低和良好的生态,成为了众多 C++ 新手入门图形化开发的首选。

来自 @1024 的分享
GASDocumentation
C++第 81 期

GASDocumentation

虚幻引擎 5 之 GAS 插件上手教程。该项目是讲解如何使用虚幻引擎 5 的 GameplayAbilitySystem 插件,作者从什么是 GAS 开始,最后用 GAS 做出了一个简单的多人射击游戏。如果你对虚幻引擎 5 感兴趣而且会 C++ 的话,那么看完这份教程一定会让你有所收获。

organicmaps
C++第 81 期

organicmaps

一款免费、没广告的离线地图应用。适用于旅行者、游客、徒步旅行者和骑行者的 Android 和 iOS 离线地图应用,它使用 OpenStreetMap 数据,支持详细的离线地图、骑行路线、语音导航、等高线、海拔剖面、山峰和坡度等功能。

暂无截图
C++第 81 期

tesseract

一款“老当益壮”的 OCR 引擎。这个项目最早诞生于 1985 年,几经易主在 2005 年的时候 HP 将其开源。目前,Tesseract 已经成为 OCR 领域 Star 数最多的开源项目,它支持包括中文在内的 100 多种语言,具有精准度高、跨平台等特点。

Magisk
C++第 80 期

Magisk

Android 获取 Root 权限的工具。它可以快速、无痛地获得 Android 的超级用户权限,支持 Android 5.0 以上的设备。

osquery
C++第 80 期

osquery

像数据库一样查询设备的工具。它将操作系统抽象成一个数据库,让用户可以通过 SQL 查询操作系统的运行情况,比如运行中的进程、网络连接、文件和用户。攻击者一般会在运行恶意程序后删掉程序,通过 osquery 可以轻松找到没有源文件的进程。```shell osquery> SELECT name, path, pid FROM processes WHERE on_disk = 0;name = Drop_Agent path = /Users/jim/bin/dropage pid = 561```

暂无截图
C++第 79 期

30dayMakeCppServer

从零编写一个 C++ 服务器的教程。该项目包含图文教程和源码,讲解了 socket、epoll、线程池、CMake 等知识点,适合有一定 C/C++ 基础的小伙伴学习。

ImHex
C++第 79 期

ImHex

保护视力的十六进制编辑器。面向逆向工程师和程序员的编辑器,可用来查看、解码、分析和编辑二进制数据。它功能丰富、界面炫酷、多彩高亮,而且项目更新积极,比如最初不支持中文路径的问题,现已解决可正常使用。

NotepadNext
C++第 79 期

NotepadNext

Notepad++ 的替代品。该项目采用 C++ 重写的跨平台文本编辑器,拥有和 Notepad++ 相似的界面和功能。

来自 @孤胆枪手 的分享
srs
C++第 79 期

srs

一款简单、高效的实时视频服务器。高性能的流媒体服务器,支持 RTMP、WebRTC、HLS 和 HTTP-FLV 等协议,常用来构建直播和视频会议的后端服务。

来自 @孤胆枪手 的分享
aseprite
C++第 78 期

aseprite

开源、专业的像素画编辑软件。一款主要用于像素画和 Sprite 动画的图像编辑软件,它拥有图层、自由手绘模式、阴影墨水、自定义笔刷、轮廓线、宽像素、命令行界面、Lua 脚本等特色功能。该软件虽然专业版收费但并不贵,也可选择免费版但无法保存作品。

Cemu
C++第 78 期

Cemu

任天堂 Wii U 游戏机模拟器。用 C++ 编写的开源 Wii U 模拟器,能够运行绝大多数的 Wii U 游戏和自制游戏,支持 Windows、Linux、macOS 操作系统。

kys-cpp
C++第 78 期

kys-cpp

游戏《金庸群侠传》的 C++ 复刻版。基于 SDL2 开发的《金庸群侠传》游戏,资源大部分来自 DOS 版本,目前已完工可以正常运行。

wiliwili
C++第 78 期

wiliwili

专为手柄控制设计的第三方 B 站客户端。一个用 C++ 编写的适用于 Nintendo Switch 的 B 站客户端,拥有接近 B 站官方 PC 客户端的浏览体验,同时支持触屏与手柄按键操控。

annoy
C++第 77 期

annoy

用于近似最近邻搜索的算法库。近似最近邻(ANN)方法是指一系列解决最近邻查找问题的近似算法,多用于内容推荐、搜索等场景。该项目是封装好的 C++/Python Annoy 算法库。Annoy 是用树为数据结构的 ANN 算法实现,它通过随机投影创建二叉树构建索引提升查询效率,采用优先队列和“森林”查询方法提高准确率,实现海量数据下的实时搜索。```python from annoy import AnnoyIndex import random f = 40 # Length of item vector that will be indexed t = AnnoyIndex(f, 'angular')for i in range(1000):v = [random.gauss(0, 1) for z in range(f)]t.add_item(i, v)t.build(10) # 10 trees t.save('test.ann')# ...u = AnnoyIndex(f, 'angular')u.load('test.ann') # super fast, will just mmap the file print(u.get_nns_by_item(0, 1000)) # will find the 1000 nearest neighbors```

RedPanda-CPP
C++第 77 期

RedPanda-CPP

易用的轻量级 C/C++ 集成开发环境。小熊猫 C++ 是一款专为编程新手和学生准备的 IDE,它没有复杂的安装和配置过程开箱即用。支持开发所需的自动补全、语法高亮、编译运行和调试 C/C++ 程序等功能。不仅如此,它还整合了 ege、海龟作图、raylib 等多种学习库,以及试题集和 OJ 功能,便于编程新手学习和使用。

Stockfish
C++第 77 期

Stockfish

强大的国际象棋引擎。它在众多国际象棋引擎评级列表中均名列前茅,棋艺基本上是吊打职业选手。它不仅可以对战,还支持棋局分析、评估棋艺,帮助国际象棋爱好者提升棋技。虽然这是一个引擎不能单独运行,但是社区提供了丰富的 GUI 软件下载就能用,甚至还可以用来解说国际象棋比赛。

xbmc
C++第 77 期

xbmc

强大自由的媒体中心软件。这是一个媒体播放器软件,但折腾一下就是家庭媒体娱乐中心。它不仅支持播放本地视频,还能够安装各种插件以及播放网络存储设备(NAS)、投屏、直播、电视、播客等源。能够运行在 Linux、macOS、Windows、Android、iOS 等设备,界面支持中文更多功能等待你的挖掘。

暂无截图
C++第 76 期

CppCoreGuidelines

C++ 核心指南。一份由 C++ 之父 Bjarne Stroustrup 领导的 C++ 编码指南,目的是为了帮助大家更好地使用现代 C++。这个项目主要讨论的是关于 C++ 编写接口、内存管理、并发等方面的问题,适合有一定 C++ 基础想要进阶的小伙伴。

flatbuffers
C++第 76 期

flatbuffers

谷歌开源的高性能序列化库。类似 Protocol Buffers 的序列化格式,但解析速度更快、占用内存更少,多用于对解析耗时敏感的 Android 应用和游戏。

imgui
C++第 76 期

imgui

游戏行业内流行的轻量级 C++ 图形界面库。这是个即时模式的 GUI 框架,控件都需要手绘。优点是更加灵活和轻量,可以快速构建功能简单、体积小的 GUI 程序,但不适合用来实现复杂动画的 GUI 应用,多用于开发游戏内的 GUI 工具。```C++ImGui::Text("Hello, world %d", 123);if (ImGui::Button("Save"))MySaveFunction();ImGui::InputText("string", buf, IM_ARRAYSIZE(buf));ImGui::SliderFloat("float", &f, 0.0f, 1.0f);```

暂无截图
C++第 75 期

async_simple

阿里开源的轻量级 C++ 异步框架。提供了基于 C++20 无栈协程(Lazy)、有栈协程(Uthread) 以及 Future/Promise 等异步组件,能够轻松完成 C++ 异步的开发,广泛应用于阿里的图计算引擎、时序数据库、搜索引擎等系统。```c++template using Lazy = async_simple::coro::Lazy;Lazy bar() {// ...int r = co_await read_some();// ...co_return r;}Lazy read_some() {// ...int r = co_await read_coro();// ...co_return r;}```

暂无截图
C++第 75 期

folly

Facebook 开源的 C++ 工具库。包含一系列高性能的 C++ 组件库,方便且高效在 Facebook 内部被广泛应用。该项目不仅代码规范测试用例充足,而且源码中包含丰富的注释。同样功能的函数为什么别人写的性能好还健壮,这次终于可以一探究竟了。```AtomicHashMap.h:高性能原子数据结构Bits.h:处理各种位操作的工具Conv.h:处理各种数据类型的转换dynamic.h:动态类型的对象,可用来处理 json-> map...```

暂无截图
C++第 74 期

Cpp_Primer_Practice

《C++ Primer》中文版第 5 版的学习笔记。该项目不仅包含学习笔记还有课后习题的答案

polybar
C++第 74 期

polybar

超酷的 Linux 桌面状态栏工具。使用时无需精通 shell 就能上手,轻松完成高度自定义的状态栏。还有更多现成的主题,拿来即用[点击查看](https://github.com/adi1090x/polybar-themes)

serenity
C++第 74 期

serenity

开源桌面操作系统。一款披着复古外衣现代的类 Unix 开源操作系统。从内核到 Web 浏览器均采用 C++ 编写,没有依赖现成的第三方库,外观模仿 90 年代操作系统界面的风格,我认为这是一封极客致敬经典的情书

FileCentipede
C++第 73 期

FileCentipede

一个用 C++ 和 Qt 编写的跨平台文件下载器。它界面简洁、下载速度快、支持多协议,还有浏览器插件可用来下载网页中的视频和音频

ydb
C++第 73 期

ydb

Yandex 开源的企业级分布式 SQL 数据库。具有高可用、易扩展、事务、强一致性、灾后自动恢复等特点,提供 Web 平台方便查询以及 Go、Java、Python、JavaScript 等多种编程语言 SDK

暂无截图
C++第 72 期

coost

在 C++ 上实现类似 Go goroutine 的库。它实现了协程同步事件、协程锁、协程池、channel、waitgroup,内存占用少实测 1000 万协程占用 2.8G 内存```c++#include "co/co.h"DEF_main(argc, argv) {co::Chan ch;go([ch]() { /* capture by value, rather than reference */ch > v;LOG << "v: " << v;return 0;}```

finalcut
C++第 71 期

finalcut

用于创建基于文本的用户界面的 C++ 库。它除了支持鼠标操作和同时处理多个文本窗,还提供了常见的对话框、按钮、复选框、单选按钮、输入行、列表框、状态栏等控件

vcpkg
C++第 71 期

vcpkg

微软开源的 C/C++ 包管理工具。安装和管理 C/C++ 依赖的命令行工具,适用于 Windows、Linux 和 macOS 操作系统。[快速入门](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md#%E5%85%A5%E9%97%A8)

CGraph
C++第 70 期

CGraph

无第三方依赖的 DAG 调度框架。实现了依赖节点依次执行、无依赖节点并发执行的逻辑。项目结构清晰、文档齐全,不仅代码中包含关键注释,还有示例代码和讲解文章。初学者可以通过该项目学到图调度方式、模块开发、模板编程、多线程编程、设计模式和通用算法的知识```c++void tutorial_simple() {/* 创建一个流水线,用于设定和执行流图信息 */GPipelinePtr pipeline = GPipelineFactory::create();GElementPtr a, b, c, d = nullptr;/*** 其中,MyNode1算子的执行内容为sleep(1s)* MyNode2算子的执行内容为sleep(2s)* 以下几行代码,相当于是设定了一个[b/c]依赖[a],[d]依赖[b/c]的dag流图*/pipeline->registerGElement(&a, {}, "nodeA");pipeline->registerGElement(&b, {a}, "nodeB");pipeline->registerGElement(&c, {a}, "nodeC");pipeline->registerGElement(&d, {b, c}, "nodeD");/* 执行流图框架 */pipeline->process();GPipelineFactory::destroy(pipeline);}```

暂无截图
C++第 70 期

oclint

强大的静态代码分析工具。可以用来检查 C、C++ 和 Objective-C 代码,发现潜在的 Bug 提高代码质量

timg
C++第 70 期

timg

在终端查看图片、动图、视频的命令行工具```timg some-image.jpg # 展示图片timg --loops=3 some-animated.gif # 循环展示三次动图timg some-video.mp4 # 播放视频```

bpftrace
C++第 69 期

bpftrace

Linux 高级追踪工具和语言。该工具基于 eBPF 和 BCC 实现了通过探针机制采集内核和程序运行的信息,然后用图表等方式将信息展示出来,帮助开发者找到隐藏较深的 Bug、安全问题和性能瓶颈

Cataclysm-DDA
C++第 69 期

Cataclysm-DDA

《大灾变:黑暗之日》是一款以世界末日为背景的生存游戏。游戏中没有任何任务,唯一的目标就是活下去。玩家可以通过寻找食物、装备等资源建造避难所,还支持车辆改装、制作物品等特色机制,支持 Windows、Linux、macOS、Android 系统。[下载地址](https://cataclysmdda.org/releases/)

cutter
C++第 69 期

cutter

一款免费开源的逆向工程平台。采用 Rizin 作为核心引擎并集成了 Ghidra 反编译器,它界面简洁功能强大,深受逆向工程师们的喜爱- 支持多种语言和主题- 二进制搜索- 十六进制编辑器- Python 脚本和插件- 支持 Linux、macOS、Windows

leocad
C++第 68 期

leocad

用来创建虚拟乐高模型的 CAD 工具。适用于 Windows、Linux 和 macOS 系统

ppsspp
C++第 68 期

ppsspp

能够运行在 Android 和 PC 上的开源 PSP 模拟器。[下载地址](https://ppsspp.org/index-cn.html)

NanaZip
C++第 67 期

NanaZip

基于 7-Zip 的开源压缩工具。包含多种压缩算法和美观的 Win11 风格 UI,同时适配 Win11 右键菜单操作

nvui
C++第 67 期

nvui

跨平台现代的 Neovim 前端。它使用起来流畅,动画效果细腻、美观,你可以用 Neovim 和 nvui 自由定制出一个高颜值、最懂你的编辑器

btop
C++第 66 期

btop

界面酷炫的命令行资源监视器。可以显示处理器、内存、磁盘、网络和进程的使用情况和统计信息,还支持鼠标操作

libqalculate
C++第 66 期

libqalculate

使用 C++ 编写的多功能计算器桌面应用、库和 CLI 程序。它易于使用功能强大,支持大型可定制函数库、单位计算和转换、符号计算(包括积分和方程)。作为用户你可以直接在命令行中使用,作为开发者你也可以在自己的项目中使用这个库。官方还制作了 [Qt](https://github.com/Qalculate/qalculate-qt) 和 [GTK](https://github.com/Qalculate/qalculate-gtk) 两个版本的 GUI 计算器应用

暂无截图
C++第 66 期

TinyWebServer

Linux 下的 C++ 轻量级 Web 服务器。该项目不仅可以用来搭建 Web 服务,也适合 C++ 初学者作为网络编程实战项目。作者还写了文章讲解相关代码和原理,帮助初学者更好的掌握网络编程相关知识

filament
C++第 65 期

filament

轻量级实时物理渲染引擎。能够用来做游戏渲染引擎或者音视频编辑工程,当你需要处理 3D 渲染效果,又不想引入庞大的游戏引擎时,可以考虑使用它尤其是 Android 平台

Plants-vs.-Zombies-Online-Battle
C++第 64 期

Plants-vs.-Zombies-Online-Battle

在没有游戏源代码的前提下,通过逆向工程和代码注入实现植物大战僵尸局域网对战模式。成功加载后解密模式的最后一关,会变为网络对战关卡。玩法为其中一个玩家放置植物进行防御,另一玩家放置僵尸进攻。项目结合逆向工程、C++和汇编相关技术,在无源代码的前提下为游戏增加功能。对逆向工程感兴趣的小伙可以看看源码

暂无截图
C++第 64 期

xpack

实现 C++ 结构体和 JSON/XML/BSON 互转的库。C++ 初学者可以通过该项目学到高阶的宏技巧和初级的 SFINAE 写法```c++#include#include "xpack/json.h" // 包含该头文件struct User {int id;std::string name;XPACK(O(id, name)); // 添加宏定义XPACK在结构体定义结尾};int main(int argc, char *argv[]) {User u;string data = "{\"id\":12345, \"name\":\"xpack\"}";xpack::json::decode(data, u); // json转结构体cout<<u.id<<';'<<u.name<<endl;string json = xpack::json::encode(u); // 结构体转json cout<<json<<endl;return 0;}```

暂无截图
C++第 63 期

rocksdb

用 C++ 编写的高性能键值存储引擎。该项目是由 Fackbook 数据库团队基于 levelDB 开发,键值均支持二进制流,能够充分利用多核 CPU 获得高性能,并兼容 levelDB 的 API 可谓是青出于蓝而胜于蓝。RocksDB 当下十分流行,一些开源数据库底层存储用的就是它

kvrocks
C++第 62 期

kvrocks

基于 RocksDB 并兼容 Redis 协议的 NoSQL 数据库。磁盘类型的 Redis 为降低存储成本而生,存储成本可以降到 Redis 的 1/3 以上

暂无截图
C++第 60 期

jwEngine

一个跨平台、轻量级、支持 C++ 和 Lua 的 Web 框架。支持 TCP、KCP、WebSocket、HTTP 等协议,底层采用 libuv 异步 IO 提高并发,避免多线程上下文切换开销和破坏代码美感,网络部分和逻辑部分使用一个主事件循环驱动。支持 Lua 提高开发效率,适用于小型游戏开发,示例代码:```lua event_init()server = NetServer:new()server.on_accept = function(conn)end server.on_close = function(conn)end server.on_msg = function(conn, msgtype, pack)end server:listen("127.0.0.1", 3001, false)event_run()```

Serial-Studio
C++第 60 期

Serial-Studio

一款 C++ 写的数据可视化桌面工具。支持多平台,效果和操作步骤如下:

winmerge
C++第 59 期

winmerge

一个用 C++ 编写的 Windows 比较和合并工具。它可以比较文件和文件夹,以直观的可视化格式来显示两者甚至三者之间的差异,操作简单

ChordNova
C++第 58 期

ChordNova

一款开源免费的和弦生成工具。我不懂乐理,但单从这个软件的界面就感受到了专业,因为有很多乐理的名词😅

暂无截图
C++第 57 期

fast-cpp-csv-parser

读取 CSV 文件的 C++ 库(仅头文件)。示例代码:```c++# include "csv.h"int main(){io::CSVReader in("ram.csv");in.read_header(io::ignore_extra_column, "vendor", "size", "speed");std::string vendor; int size; double speed;while(in.read_row(vendor, size, speed)){// 对 ram.csv 文件中的数据,做你想做的事情吧!}}```

godot
C++第 57 期

godot

一款功能丰富的开源游戏引擎。最初它只是一款 2D 引擎,近期拓展了 3D 部分的能力。相较于 UE4 或者 Unity 这样的成熟商业引擎来说,Godot 还很年轻不够成熟,尤其 3D 方面的能力。但它拥有简易的开发方式,上手简单。而且社区活跃、文档覆盖全面、有较为丰富的示例代码,对于刚入门的游戏开发者友好。同时开源引擎底层代码完全开源,开发者可以阅读和贡献代码,而不是只停留在游戏逻辑开发层面。总而言之 Godot 是一个极有潜力的游戏引擎,推荐给想学习游戏开发的同学

UNO
C++第 57 期

UNO

使用 C++ 编写的命令行 UNO 纸牌游戏。操作方便支持人机或联机对战,游戏基于 Asio 网络库和现代 C++ 开发,也有对 C++17 的尝试。分别实现了服务端、客户端,代码简单对 C++ 新手友好,UNO 的爱好者快来玩一玩吧!

暂无截图
C++第 56 期

spdlog

快速、上手简单的 C++ 日志库。示例代码:```C++#include "spdlog/spdlog.h"int main(){spdlog::info("Welcome to spdlog!");spdlog::error("Some error message with arg: {}", 1);spdlog::warn("Easy padding in numbers like {:08d}", 12);spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);spdlog::info("Support for floats {:03.2f}", 1.23456);spdlog::info("Positional args are {1} {0}..", "too", "supported");spdlog::info("{:<30}", "left aligned");spdlog::set_level(spdlog::level::debug); // Set global log level to debug spdlog::debug("This message should be displayed..");// change log pattern spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");// Compile time log levels// define SPDLOG_ACTIVE_LEVEL to desired level SPDLOG_TRACE("Some trace message with param {}", 42);SPDLOG_DEBUG("Some debug message");}```

srpc
C++第 56 期

srpc

搜狗基于 C++ Workflow 的高性能 RPC 框架。与 thrift/brpc 协议兼容,支持 protobuf/thrift IDL一键迁移,核心代码量仅 1w 行。示例代码:```c++class ExampleServiceImpl : public Example::Service{public:void Echo(EchoRequest *request, EchoResponse *response, RPCContext *ctx) override{response->set_message("Hi, " + request->name());}};int main(){SRPCHttpServer server;ExampleServiceImpl impl;server.add_service(&impl);server.start(1412);pause();server.stop();return 0;}访问:curl 127.0.0.1:1412/Example/Echo -H 'Content-Type: application/json' -d '{message:"from curl",name:"CURL"}'```

暂无截图
C++第 55 期

workflow

搜狗开源的 C++ 服务器引擎。支撑搜狗几乎所有后端 C++ 在线服务,包括所有搜索服务、云输入法、广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数 C++ 后端开发需求

drogon
C++第 54 期

drogon

一款 C++ 的异步非阻塞高性能 Web 框架。功能强大、上手容易,使得用 C++ 语言构建各种类型的高性能 Web 应用,变得更加方便。示例代码:```C++#include using namespace drogon;int main(){app().setLogPath("./").setLogLevel(trantor::Logger::kWarn).addListener("0.0.0.0", 80).setThreadNum(16).enableRunAsDaemon().run();}```

GuiLite
C++第 52 期

GuiLite

引用方便的 C++ 全平台 GUI 库。能够使用在 PC 端、移动设备、物联网设备甚至是没有操作系统的单片机,还支持多种开发语言和三方库

暂无截图
C++第 52 期

html-plus-plus

这个库让你可以使用 C++ 模板编写 HTML。HTML 文档被表示为一个单一的、深层嵌套的类型,相当于 HTML 的模版引擎。代码简单可供新手学习和使用,示例代码:```c++#include#include "html++.h"int main(){html>,body,p,a>> page;std::cout << page.content;return 0;}```

ChineseChess
C++第 51 期

ChineseChess

基于 Qt5 开发的中国象棋网络对战平台,支持单机和网络对战

FlowChar
C++第 50 期

FlowChar

一个用来把伪代码生成纯字符流程图的小工具。让使用者仅需要写一段简单的伪代码,便可以生成对应的流程图。该项目结构清晰、使用简单,代码量少适合使用和“把玩”。示例图如下:

notepanda
C++第 50 期

notepanda

这是一个用 C++ 和 Qt 开发的记事本项目。支持代码高亮、自定义字体样式,还可以命令行呼出:notepanda main.cpp,支持 Windows、Linux 和 MacOS 三大系统。可作为学习 Qt、如何做开源项目的实战

hplayer
C++第 49 期

hplayer

一个基于 C++ 实现的多画面播放器。能播放文件源、网络源、设备捕获源,界面为多画面监控网格,可自由切换多画面风格,支持拖拽与合并。适合想要入门音视频、播放器开发的小伙伴们学习,该项目用到的技术栈:- Qt 实现界面- FFmpeg 获取帧、编解码、转码- OpenCV 处理图片- OpenGL 渲染视频帧

暂无截图
C++第 49 期

interview

C/C++ 技术面试知识集合项目。包括语言、程序库、数据结构、算法、链接装载库等知识

contour
C++第 48 期

contour

一个使用 C++ 17 开发的终端模拟器。可在 Windows、Linux 和 MacOS 三大平台使用,支持字体连字 Font Ligatures(例如 Fira Code 字体)、GPU 加速渲染、背景模糊(Win10、KDE)、256 色、True Color 和配色主题

暂无截图
C++第 48 期

milvus

一款开源的、针对海量特征向量的相似性搜索引擎。相比 Faiss 和 SPTAG 这样的算子库,Milvus 提供完整的向量数据更新,索引与查询框架。Milvus 利用 GPU 进行索引加速与查询加速,能大幅提高单机性能。部署使用简单,降低了 AI 应用落地的难度

暂无截图
C++第 47 期

CPlusPlusThings

这是一个适合 C++ 初学者从入门到进阶的教程。解决了面试者想要深入 C++ 及如何入坑 C++ 的问题。除此之外,该仓库拓展了更加深入的语法分析、多线程并发等的知识,是一个比较全面的 C++ 从入门学习到进阶提升的项目

暂无截图
C++第 47 期

modern-cpp-features

该项目介绍了现代 C++(C++11 以及之后的版本)语言和库的新特性。它能够帮助大家更快地入手新时代的 C++

indicators
C++第 46 期

indicators

一个使用 C++ 编写的进度条库,你可以用它在命令行中实现美观的进度条。它使用方便、线程安全、支持多种进度条样式

sudoku
C++第 46 期

sudoku

C++ 实现的命令行数独游戏。600 余行代码,初学者也可以轻松学习

暂无截图
C++第 45 期

pikiwidb

一个企业级开源的可持久化的大容量(百G)redis 存储服务。兼容 redis 的绝大部分接口,解决 redis 由于存储数据量巨大而导致内存不够用的容量瓶颈。并且可以像 redis 一样,通过 slaveof 命令进行主从备份,支持全同步和部分同步

暂无截图
C++第 45 期

ThreadPool

一个简单的 C++11 线程池实现,代码加起来不到 100 行。示例代码:```c++// create thread pool with 4 worker threads ThreadPool pool(4);// enqueue and store future auto result = pool.enqueue([](int answer) { return answer; }, 42);// get result from future std::cout << result.get() << std::endl;```

xournalpp
C++第 45 期

xournalpp

一款支持 PDF 手写注释的笔记软件,支持 Linux、Windows、macOS 平台。看书的时候喜欢标注、做笔记,那这款工具肯定适合你。[下载地址](https://github.com/xournalpp/xournalpp/releases)

musikcube
C++第 44 期

musikcube

一个使用 C++ 编写的终端的音乐播放器,也可以作为一个音频引擎、元数据索引器和服务器。musikcube 可以在 Windows、MacOS 、Linux 以及带有 raspbian 的树莓派上轻松编译和运行。虽然它只能在终端上使用,但是功能应有尽有。使用方法详见 [User Guide](https://github.com/clangen/musikcube/wiki/user-guide)

Sourcetrail
C++第 44 期

Sourcetrail

一个免费开源、跨平台的可视化源码探索项目。能够十分高效的帮助使用者探索、熟悉陌生的代码,支持 C、C++、Python 和 Java 语言,同时提供了相关 SDK 用于拓展支持其它语言,相信在未来会提供更多语言的支持。程序员在它的帮助下可以快速熟悉陌生项目、学习开源项目、框架等,此等利器赶快去试试吧

暂无截图
C++第 43 期

CppNet

一个封装在 Tcp 协议上的 Proactor 模式 multi-thread 网络库。包含 OS 接口调用、回调处理、定时器、缓存管理等,这里有从操作系统到应用层的所有网络细节,便于初学者学习和实践。- 简单:只导出了最少量的接口,其声明都类似系统 socket API。对客户端而言,只新增了一个 buffer 类型- 快速:采用性能最优的 epoll 和 IOCP 做事件驱动,惊群处理交由内核。每个连接都独享一个内存池,从内存池中申请的内存都由智能指针管理- 清晰:结构上分为事件驱动,会话管理,接口三层,通过回调向上通知。模块之间职责分工明确,最大的类不超过 500 行代码

dbg-macro
C++第 43 期

dbg-macro

打日志是 C++ 开发中必不可少的一种 debug 方式,[dbg-macro](https://github.com/sharkdp/dbg-macro) 受 [rust-lang](https://www.rust-lang.org) 中 的 [dbg](https://doc.rust-lang.org/std/macro.dbg.html) 启发,提供比 printf 和 std::cout 更好的宏函数。主要有如下特点:- 美观的彩色输出(当输出不是交互式终端时,颜色将自动禁用)- 兼容 C++11,并且是 header-only- 支持基础类型和 STL 容器类型的输出- 除了基本信息外,还输出变量名和类型- 启用 DBG_MACRO_DISABLE 生成 release 版```c++#include#include// You can use "dbg(..)" in expressions:int factorial(int n) {if (dbg(n numbers{b, 13, 42};dbg(numbers); // [example.cpp:21 (main)] numbers = {7, 13, 42} (size: 3) (std::vector)dbg("this line is executed"); // [example.cpp:23 (main)] this line is executed factorial(4);return 0;}```

nebula
C++第 42 期

nebula

Nebula Graph 是一款开源图数据库,目标是为超大规模的图数据提供高并发、低延时的读、写及计算服务。目前是世界上唯一能够容纳千亿个顶点和万亿条边、并提供毫秒级查询延时的图数据库解决方案。特点:- 全对称分布式架构- 可扩展- 高可用- 数据强一致- 类 SQL 查询语言

暂无截图
C++第 41 期

awesome-modern-cpp

Wow Awesome!你想将 modern cpp 运用自如吗?那就来看 Awesome-modern-cpp 吧!这里列出了一些有关现代 C++ 的最佳实践、书籍、会议、谈话、播客、博客、网站、各种各样的库以及一些工具,让你不禁 Wow Awesome,这就是你独享的 moment

暂无截图
C++第 41 期

fmt

这是一个开源的 C++ 格式库。它可以作为 (s)printf 和 iostreams 的安全和快速替代品,也是 C++ 20 中 std::format 的一个实现。它的格式化字符串语法类似于 Python 中的 `str.format`,支持用户自己定义的类型,还比 printf 和 iostreams 的常见标准库实现更快!而且 fmt 还非常安全,格式字符串中的错误可以在编译时报告,还可以防止缓冲区溢出错误。示例代码:```c++fmt::print("Hello, {}!", "world"); // 类 Python 的语法风格fmt::printf("Hello, %s!", "world");```

暂无截图
C++第 40 期

muduo

一个依赖 Boost 的非阻塞 IO 和事件驱动 C++ 网络库。实现了对底层系统调用的封装、高性能异步日志的设计、Reactor 多线程并发模式设计、简单的 HTTP 协议的解析。适合开发 Linux 下的多线程服务端应用程序,通过阅读源码还可学习到 C++ 语言、Linux 网络编程等后端知识

marksentence
C++第 39 期

marksentence

这是一个在托福听力中标记句子的工具(即精听工具)。在听力时可文本对照,并且对听力音频中没听懂片段进行标记,并选择标记理由,方便日后的反复复习

暂无截图
C++第 39 期

pprint

一个让输出变得更漂亮的 C++ 库。就像 python 语言的 pprint 库,它对基本类型、字符串、复数、enum 类型、STL 容器等做了输出格式优化,有了缩进和分行才更容易发现这个世界的美好。示例代码如下:```c++#include printer.print(std::map>{{"foo", {1, 2, 3, 3, 2, 1}}, {"bar", {7, 6, 5, 4}}});// 输出结果如下{"bar" : {4, 5, 6, 7},"foo" : {1, 2, 3}}```

terminal
C++第 38 期

terminal

微软开源的一个全新、现代、功能丰富、高效的 Windows 终端应用程序。它支持 Windows 命令行社区最常用的许多命令,还支持选项卡、富文本、全球化、可配置性、主题和样式等功能。一直以来 Windows 不被开发者青睐的原因之一就是终端不好用,现在有了这个我都想买个 Windows 系统的电脑了(确定不是打游戏?)

tinytetris
C++第 37 期

tinytetris

一个用 C++ 编写的终端版俄罗斯方块游戏。提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习

calculator
C++第 36 期

calculator

微软 Windows 系统预装的计算器工具开源了。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。实现语言为 C++ 代码并不复杂,快来看看微软工程师编写的代码吧!运行效果如下:

暂无截图
C++第 35 期

FLIF

免费、新颖的无损图像格式。压缩比方面优于 PNG、lossless WebP、lossless BPG、lossless JPEG2000 等格式

playerdemo
C++第 34 期

playerdemo

开源、入门级视频播放器跨平台视频播放器。该播放器拥有视频播放器基本功能,适合学习播放器开发技术,音频、视频技术

暂无截图
C++第 32 期

oatpp

轻量、高性能、零依赖,纯 C++ 实现的 Web 框架。示例代码片段:```c++ENDPOINT("GET", "demo/api/json", getJson) {auto dto = MyDto::createShared();dto->statusCode = 200;dto->message = "Hello json";return createDtoResponse(Status::CODE_200, dto);}Output:{"message": "Hello json", "statusCode": 200}```

暂无截图
C++第 29 期

BurstLinker

主要为 Android 开发的一个 C++ GIF 编码器。支持多种常见的颜色量化算法、颜色抖动算法

暂无截图
C++第 28 期

cpp-cheat-sheet

能够帮你通过 Google 和 NASA 面试的 C++ 数据结构和算法的 cheat sheet(英文)

taskflow
C++第 28 期

taskflow

一个 C++ 头文件库,让你以简单的几行代码就可以实现高效的并发。示例代码如下:```c++#include "taskflow.hpp" // the only include you need int main(){tf::Taskflow tf(std::thread::hardware_concurrency());auto [A, B, C, D] = tf.silent_emplace([] () { std::cout | B |-----+); // | +---+ |// +---+ +-v-+A.precede(B); // B runs after A // | A | | D |A.precede(C); // C runs after A // +---+ +-^-+B.precede(D); // D runs after B // | +---+ |C.precede(D); // D runs after C // +---->| C |-----+// +---+tf.wait_for_all(); // block until finished return 0;}```

暂无截图
C++第 27 期

apollo

百度自主研发、开源的全面开放自动驾驶平台。它将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统

暂无截图
C++第 27 期

brpc

百度开源的 RPC 框架,拥有超过 100 万个实例和 500 多种服务

暂无截图
C++第 27 期

MyTinySTL

用 C++11 实现的小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合新手学习与参考。示例代码如下:```c++// 在尾部插入元素template void vector::push_back(const value_type& value){if (end_ != cap_){data_allocator::construct(mystl::address_of(*end_), value);++end_;}else{reallocate_insert(end_, value);}}```

TrafficMonitor
C++第 26 期

TrafficMonitor

一款用于 Windows 平台的网速监控悬浮窗软件。可以显示当前网速、CPU及内存利用率、任务栏显示、更换皮肤、历史流量统计等功能

albert
C++第 22 期

albert

Linux 平台下类似于 Mac Alfred 效率神器。支持开机自启动、自定义快捷键等功能

暂无截图
C++第 21 期

OpenCC

中文简繁转化开源项目,[在线尝试](http://opencc.byvoid.com/)- 严格区分 “一简对多繁” 和 “一简对多异”- 完全兼容异体字,可以实现动态替换- 严格审校一简对多繁词条,原则为 “能分则不合”- 支持异体字和地区习惯用词转换,如 “裏” “裡”、“鼠標” “滑鼠”- 词库和函数库完全分离,可以自由修改、导入、扩展- 支持 C++、Python、PHP、Java、Ruby、Node.js 等- 兼容 Windows、Linux、Mac 平台

robomongo
C++第 20 期

robomongo

免费、开源的 MongoDB 跨平台桌面管理工具,支持 Windows、Linux、Mac

vnote
C++第 16 期

vnote

Markdown 编辑软件。舒适的 Markdown 编辑体验,Vim 操作模式,编辑时代码块高亮

bfs
C++第 14 期

bfs

百度文件系统,架构图如下:

暂无截图
C++第 14 期

SQLAdvisor

美团点评公司 DBA 团队开源的一个分析 SQL 并给出索引优化建议的工具,开源内容和内部使用保持一致,文档齐全

暂无截图
C++第 10 期

simhash

此项目用来对中文文档计算出对应的 simhash 值。simhash 是谷歌用来进行文本去重的算法([详见 simhash 算法原理及实现](http://yanyiwu.com/work/2014/01/30/simhash-shi-xian-xiang-jie.html)),现在广泛应用在文本处理中。特征:- 使用 CppJieba 作为分词器和关键词抽取器- 使用 jenkins 作为 hash 函数- hpp 风格,所有源码都是 .hpp 文件里面,方便使用。没有链接,就没有伤害。- 本项目的副产品项目:simhash_server 提供了简单的 simhash HTTP 服务。

暂无截图
C++第 8 期

libco

腾讯的开源项目——libco 是微信后台大规模使用的 C/C++ 协程库,2013 年至今稳定运行在微信后台的数万台机器上。- 无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升- 支持 CGI 框架,轻松构建 Web 服务- 支持 gethostbyname、mysqlclient、ssl 等常用第三方库- 可选的共享栈模式,单机轻松接入千万连接- 完善简洁的协程编程接口- 类 pthread 接口设计,通过 co_create、co_resume 等简单清晰接口即可完成协程的创建与恢复- \_\_thread 的协程私有变量、协程间通信的协程信号量 co_signal- 语言级别的 lambda 实现,结合协程原地编写并执行后台异步任务- 基于 epoll/kqueue 实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器

暂无截图
C++第 7 期

cpr

C++ 版 `Request for human`,[在线文档](https://whoshuu.github.io/cpr/),示例代码:```C++#include int main(int argc, char** argv) {auto r = cpr::Get(cpr::Url{"https://api.github.com/repos/whoshuu/cpr/contributors"},cpr::Authentication{"user", "pass"},cpr::Parameters{{"anon", "true"}, {"key", "value"}});r.status_code; // 200 r.header["content-type"]; // application/json; charset=utf-8 r.text; // JSON text string}```