- 技术博客
- 文档
- 知识库
【免费下载链接】HelloGitHub
:octocat: 分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.
本文以 HelloGitHub 项目仓库中的 《HelloGitHub》第 101 期月刊 为主体内容,系统整理本期收录的 44 个开源项目,涵盖 C、C++、Go、Java、JavaScript、Python、Rust、人工智能等多个领域,并逐一说明其核心用途、典型场景与可运行示例。读完本文,你将快速掌握这批项目的选型信息与上手要点,也能了解 HelloGitHub 月刊的发布节奏与生成机制,方便按图索骥深入探索。
一、本期概览:每月 28 号更新的开源精选
HelloGitHub 是一个持续分享 GitHub 上有趣、入门级开源项目的月刊仓库,每期内容按月更新(每月28号),在 content 目录 下按期号存放,例如 第 100 期、第 101 期、第 102 期。第 101 期共收录44 个项目,按编程语言与领域分为 14 个板块:
| 板块 | 项目数 | 代表项目 |
|---|---|---|
| C | 3 | austin、chsrc、collectd |
| C# | 2 | LenovoLegionToolkit、PDFQFZ |
| C++ | 2 | lnav、shadPS4 |
| Go | 5 | doggo、glasskube、lancet、neko、sftpgo |
| Java | 2 | JPlag、MooTool |
| JavaScript | 5 | paint-board、PptxGenJS、reactive-resume、vue-xiuxiangame、xyflow |
| Kotlin | 2 | Android-DataBackup、BinaryEye |
| PHP | 2 | cachet、minimalist-web-notepad |
| Python | 5 | Box、Game-Cheats-Manager、linkding、mkdocs-material、SeleniumBase |
| Rust | 4 | abstreet、delta、dust、stalwart |
| Swift | 1 | Pearcleaner |
| 人工智能 | 4 | k8sgpt、llama_index、RAG_Techniques、video2x |
| 其它 | 6 | deskreen、Kazumi、open-and-shut、rime-ice、vCards、Watchy |
| 开源书籍 | 1 | grammar-club |
从整体分布看,本期在“开发者效率工具”(性能分析、日志查看、DNS 查询、diff 增强)、“AI 应用与 RAG 生态”(k8sgpt、llama_index、RAG_Techniques)以及“轻量实用软件”(书签管理、在线记事本、输入法配置)三个方向上的密度最高,适合开发者按自己的技术栈直接取用。
二、C 项目:性能分析与系统监控
1、austin —— 深入 Python 程序性能分析的工具这是一款专为 Python 程序设计的性能分析工具,无需修改代码即可轻松定位 Python 程序的性能瓶颈和内存使用情况。它是采用 C 语言编写的 CPython 帧堆栈采样器,具有体积小、运行速度快、零代码侵入等特点,支持 WebUI、TUI、VSCode 等多种可视化方式(需额外安装)。
2、chsrc —— 全平台通用的换源工具(来自 @ccmywish 的分享) 该项目能够为常见的 Linux 发行版、编程语言和软件切换至国内镜像源,操作简单仅需一条命令。它采用 C 语言编写,具有高效和轻量级的特点,支持测速、多平台以及项目级换源等功能,适用于优化下载速度或解决源受限的场景。
3、collectd —— 灵活的系统信息收集守护进程这是一个功能强大的收集系统信息的守护进程,能够定期收集和统计系统信息。它支持丰富的数据收集插件,可以监控硬件使用情况、系统性能指标、网络流量等多种数据类型,包括 Apache、MySQL、电池、传感器等,并支持将收集的数据输出到 RRDtool、InfluxDB 等多种数据库和监控系统,适用于嵌入式、物联网和服务器集群监控等场景。
三、C# 项目:联想笔记本工具与 PDF 办公
4、LenovoLegionToolkit —— 轻量级的联想拯救者工具箱该项目是专为联想拯救者系列笔记本设计的开源工具,具有小巧轻便、占用内存少、不收集用户信息等优点,支持调节电源模式、显卡工作模式、风扇速度和键盘灯效等功能,提供了中文界面,可作为联想 Vantage 软件的开源替代品。
5、PDFQFZ —— 免费的 PDF 加盖骑缝章工具该项目用于在 PDF 文件上加盖骑缝章,适用于 Windows 平台。它不仅免费且开源,使用时可以指定目录,对多个 PDF 文件进行批量处理,并支持预览、调整印章大小和位置等功能。
四、C++ 项目:日志查看与 PS4 模拟
6、lnav —— 强大的终端日志文件查看工具(来自 @DeShuiYu 的分享) 这是一款用于查看和分析日志文件的轻量级工具。它无需配置、开箱即用,可自动识别日志格式并解压文件,支持同时处理多个文件和目录、实时更新、文本高亮、正则与 SQL 过滤日志等功能,特别适合在服务器和开发环境中使用。
7、shadPS4 —— 开源的 PS4 模拟器这是用 C++ 编写的 PlayStation 4(PS4)模拟器,支持在 Windows、Linux 和 macOS 系统上玩 PS4 游戏。虽然项目仍处于早期开发阶段,能运行的游戏有限,但最新版已经能够成功运行《血源诅咒》和《黑暗之魂II》等游戏。
五、Go 项目:网络诊断、K8s 管理与工具库
8、doggo —— 友好的命令行 DNS 查询工具该项目是用 Go 语言编写的命令行 DNS 客户端工具,安装简单且开箱即用。它提供了友好的命令行界面,可快速显示 DNS 记录信息,支持高亮显示、响应时间和多种 DNS 记录类型等,适用于网络诊断等场景。原文档给出了五类常用命令,覆盖日常诊断的典型需求:
# Simple DNS lookup doggo example.com # Query MX records using a specific nameserver doggo MX github.com @9.9.9.9 # Use DNS over HTTPS doggo example.com @https://cloudflare-dns.com/dns-query # JSON output for scripting doggo example.com --json | jq '.responses[0].answers[].address' # Reverse DNS lookup doggo --reverse 8.8.8.8 --short其中@9.9.9.9表示指定 nameserver 查询,@https://cloudflare-dns.com/dns-query表示走 DoH(DNS over HTTPS)加密查询,--json配合jq可用于脚本化解析,--reverse进行反向解析、--short精简输出,这些组合让 doggo 既能交互诊断也能嵌入自动化流程。
9、glasskube —— 更容易上手的 K8s 包管理器这是一款提供直观图形界面和灵活命令行工具的 Kubernetes 软件包管理工具。它操作简单更容易上手,支持自动处理依赖、GitOps 和自动更新等功能,简化了繁琐的手动配置过程。
10、lancet —— 全面的 Go 语言工具函数库(来自 @两双筷子sqldc 的分享) 这是一个高效且全面的 Go 语言工具函数库,包含 600 多个函数,涵盖字符串处理、切片操作、网络编程、并发、加解密、文件处理、时间/日期、流处理、迭代器等功能。原文档给出的用法非常简洁:引入strutil包后直接调用strutil.Reverse即可实现字符串反转:
package main import ( "fmt" "github.com/duke-git/lancet/v2/strutil" ) func main() { s := "hello" rs := strutil.Reverse(s) fmt.Println(rs) //olleh }类似的按功能域拆包的模块化设计(如slice、cryptor、file等),使 lancet 可以按需引入而不必全量依赖。
11、neko —— 多功能的虚拟浏览器工具(来自 @猎隼丶止戈reNo7 的分享) 该项目是运行在 Docker 容器中的自托管虚拟浏览器环境,为用户提供安全、隔离和功能齐全的虚拟浏览器。此外,它还支持在线共享浏览器和实时互动演示,具备多人访问、管理员用户、文本聊天和双向文件传输等功能。
12、sftpgo —— 集成云存储的 SFTP 服务器(来自 @猎隼丶止戈reNo7 的分享) 该项目是用 Go 编写的功能齐全、灵活可配置的 SFTP 服务器,支持 SFTP、SCP、FTP/S、WebDAV、HTTP/S 等多种文件传输协议,并兼容本地文件系统、S3、谷歌云存储等多种存储后端。此外,它还提供了 Web 界面,便于轻松创建和管理用户、文件夹、群组等资源。
六、Java 项目:代码查重与开发者工具箱
13、JPlag —— 开源的代码抄袭检测工具这是一个用于检测源代码相似度的工具,支持 Java、C/C++、Python、JavaScript 等多种编程语言,适用于识别编程作业中的抄袭行为等场景。
14、MooTool —— 跨平台的开发者工具箱(来自 @周波 的分享) 这是一款用 Java 开发的开发者常用工具的桌面应用,支持 Windows、macOS 和 Linux 系统。它为开发者提供了多种实用工具,如文本转换、时间处理、JSON 格式化和正则匹配测试等。
七、JavaScript 项目:画板、PPT 生成与流程图引擎
15、paint-board —— 简洁易用的 Web 端创意画板(来自 @Leo Song 的分享) 这是一款支持移动端的 Web 画板应用,集成了多种创意画笔和绘画功能,支持形状绘制、橡皮擦、自定义画板等操作,并可以将作品保存为图片。
16、PptxGenJS —— 创建演示文稿(PPT)的 JavaScript 库(来自 @Fenix 的分享) 这是一个用于生成 PPT 文件的 JavaScript 库,上手无门槛、功能强大,支持添加图表、表格、SVG、GIF 等内容,并且生成的文件兼容 PowerPoint 和 Keynote 等应用。原文档给出的核心流程是“创建 Presentation → 添加 Slide → 添加对象 → 保存文件”四步:
import pptxgen from "pptxgenjs"; // 1. Create a new Presentation let pres = new pptxgen(); // 2. Add a Slide let slide = pres.addSlide(); // 3. Add one or more objects (Tables, Shapes, Images, Text and Media) to the Slide let textboxText = "Hello World from PptxGenJS!"; let textboxOpts = { x: 1, y: 1, color: "363636" }; slide.addText(textboxText, textboxOpts); // 4. Save the Presentation pres.writeFile();其中x、y指定文本框位置(英寸单位),color指定文字颜色,addText还可以继续扩展为表格、图表、图片等多种对象,最终统一通过writeFile输出为.pptx文件。
17、reactive-resume —— 免费开源的简历设计平台这是一个免费、开源、无广告的在线简历制作平台,内置 12 款专业的简历模板,支持多语言、PDF 导出和 OpenAI 集成等功能。
18、vue-xiuxiangame —— 开源的文字修仙游戏这是一个基于 Vue.js 开发的修仙模拟器,互动式的文字游戏,适合喜欢放置类和修仙题材游戏的玩家。
19、xyflow —— 强大灵活的流程图引擎(来自 @塔咖 的分享) 该项目用于构建基于节点的编辑器和交互式图表,支持 React 和 Svelte 框架。它开箱即用且高度可定制,适用于开发工作流和流程图等场景。原文档展示了它的核心数据模型——用nodes描述节点位置与标签、用edges描述连线,再交给<ReactFlow>组件渲染,并内置MiniMap、Controls、Background等配套组件:
const initialNodes = [ { id: '1', position: { x: 0, y: 0 }, data: { label: '1' } }, { id: '2', position: { x: 0, y: 100 }, data: { label: '2' } }, ]; const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }]; function Flow() { const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes); const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges); const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]); return ( <ReactFlow nodes={nodes} edges={edges} onNodesChange={onNodesChange} onEdgesChange={onEdgesChange} onConnect={onConnect} > <MiniMap /> <Controls /> <Background /> </ReactFlow> ); }通过useNodesState/useEdgesState管理状态、onConnect处理节点间连线,xyflow 把“节点编辑器”这类复杂交互封装成了声明式的 React 组件,开发者只需关注业务数据。
八、Kotlin 项目:Android 数据备份与扫码
20、Android-DataBackup —— Android 的数据备份应用该项目为 Android 7.0 及以上系统提供应用数据的备份和恢复功能,解决了换机后应用需要重新登录或下载额外数据包等问题。
21、BinaryEye —— Android 的条形码扫描应用这是一款简单易用、无广告的 Android 条形码和二维码扫描器,支持快速识别多种类型的条形码和二维码,并提供二维码/条形码生成功能。
九、PHP 项目:状态页与极简记事本
22、cachet —— PHP 写的服务运行状态页面该项目是采用 Laravel+Bootstrap 构建的服务状态监控和管理平台,免费且开源。它不仅可以自动监控服务的正常运行时间,还提供了管理后台支持主动记录和维护事故信息,支持多语言、自托管、移动端适配和邮件通知等功能。
23、minimalist-web-notepad —— 极简的在线记事本应用该项目是采用 PHP 编写的 Web 记事本工具,核心功能仅通过一个文件实现。它提供了在线编辑、自动保存和分享笔记的功能,用户无需注册和登录即可使用,适合临时记录、快速保存和分享文字的场景。
十、Python 项目:字典增强、书签管理与自动化测试
24、Box —— 高级字典操作的 Python 库(来自 @Bit0rls1Mc 的分享) 这是一个提升 Python 字典易用性的库,兼容原生字典。它支持点表示法(dict.user.name)轻松访问和设置值,并能自动创建缺失的键,避免出现KeyError异常。原文档示例展示了从构造、点访问到 JSON 序列化/反序列化的完整闭环:
from box import Box hg_box = Box({ "HelloGitHub": { "star": "89k", "fork": "9.5k" } }) hg_box.HelloGitHub.star # 89k hg_box.to_json(filename="hg.json") new_box = Box.from_json(filename="hg.json") new_box.keys() # dict_keys(['HelloGitHub'])可以看到Box把嵌套字典的访问从d["HelloGitHub"]["star"]简化为hg_box.HelloGitHub.star,并且to_json(filename=...)与from_json(filename=...)成对出现,让配置类数据的读写更加直观。
25、Game-Cheats-Manager —— 游戏修改器管理工具这是一款强大的游戏修改器管理工具,支持搜索、下载、启动、导入和更新游戏修改器等功能。
26、linkding —— 极简的浏览器书签管理平台该项目是基于 Django 构建的浏览器书签管理平台,提供了简洁易用的 Web 界面和强大的搜索功能,支持标签分类、批量编辑和稍后阅读等功能,并配有 Chrome 和 Firefox 插件,方便用户随时随地保存和访问书签。
27、mkdocs-material —— 快速生成 Material 风格的文档网站(来自 @猎隼丶止戈reNo7 的分享) 该项目是基于 MkDocs 构建的美观且功能丰富的文档网站生成器,支持 Markdown、搜索、移动端适配、多语言等功能,适用于快速创建技术文档、产品手册和教程等类型的网站。
28、SeleniumBase —— 功能全面的浏览器自动化框架该项目是基于 Selenium 的 Python 自动化测试框架,集成了爬虫、自动化测试和生成报告等多种功能。它提供了丰富的示例,并且独特的 UC 模式可以帮助开发者在进行浏览器自动化操作时避免被检测出来。原文档演示了如何用继承BaseCase的方式编写一个完整登录测试:
from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class TestSimpleLogin(BaseCase): def test_simple_login(self): self.open("seleniumbase.io/simple/login") self.type("#username", "demo_user") self.type("#password", "secret_pass") self.click('a:contains("Sign in")') self.assert_exact_text("Welcome!", "h1") self.assert_element("img#image1") self.highlight("#image1") self.click_link("Sign out") self.assert_text("signed out", "#top_message")open、type、click、assert_*这些方法让浏览器操作几乎接近自然语言,配合BaseCase.main(__name__, __file__)即可直接以命令行方式运行测试。
十一、Rust 项目:模拟、diff 增强与邮件服务
29、abstreet —— 开源的城市交通模拟器这是一个用 Rust 编写的城市交通模拟工具,支持模拟多种交通方式,包括私家车、公共交通、步行和自行车。用户可以在软件中模拟不同的交通策略和基础设施调整。
30、delta —— 提升 Git 差异可读性的命令行工具(来自 @DeShuiYu 的分享) 这是一个用 Rust 写的命令行工具,能够以更清晰、美观的方式展示 Git 的 diff、blame 和 grep 命令。它支持显示行号、语法高亮和更智能的行内差异显示等功能,可无缝集成到 Git 工作流中。
31、dust —— 快速显示硬盘使用情况的命令行工具(来自 @DeShuiYu 的分享) 这是一个可视化磁盘使用情况的命令行工具,名字源自 du 和 Rust 编程语言组合。它体积小巧、运行速度快,能够以直观的方式展示磁盘空间概览。
32、stalwart —— 安全且易于部署的邮件服务(来自 @Mauro D. 的分享) 该项目是用 Rust 编写的邮件服务器,支持 SMTP、IMAP 和 POP3 等常见邮件协议,内置强大的垃圾邮件和钓鱼网站过滤器。
十二、Swift 项目:Mac 应用清理
33、Pearcleaner —— 免费的 Mac 应用清理工具这是一款免费开源的 Mac 应用清理工具,能够彻底卸载应用并清理残留文件。它采用 SwiftUI 开发,提供了简单易用的界面,支持右键卸载、迷你模式和 Homebrew 清理等功能。
十三、人工智能:K8s 诊断、RAG 与视频放大
34、k8sgpt —— Kubernetes 故障诊断 AI 助手该项目利用 LLM 自动分析 Kubernetes 集群问题,并给出故障诊断和优化建议。它通过读取集群的状态数据和配置,生成靠谱的诊断报告。
35、llama_index —— 大型语言模型的数据框架该项目是专为 LLM 应用设计的数据框架,帮助开发者将私有数据与 LLM 轻松结合。它提供了数据连接器,支持从 API、PDF、文档、SQL 等多种数据源构建索引,并简化数据导入和查询操作,让初学者也能用几行代码完成 LLMs 上下文增强。原文档展示的流程非常精炼:读目录 → 建索引 → 转查询引擎 → 提问:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader documents = SimpleDirectoryReader("data").load_data() index = VectorStoreIndex.from_documents(documents) query_engine = index.as_query_engine() response = query_engine.query("Some question about the data should go here") print(response)SimpleDirectoryReader负责把目录下的文档加载为documents,VectorStoreIndex.from_documents完成向量索引构建,随后即可通过query_engine.query(...)对私有数据做自然语言问答,这正是 RAG(检索增强生成)应用的最小落地范式。
36、RAG_Techniques —— 检索增强生成(RAG)教程集合该项目提供了 20 多种先进的 RAG 技术教程,包含实现指南和示例代码,并定期更新。内容涵盖检索查询、上下文增强、融合检索(Fusion Retrieval)、分层索引、上下文压缩、知识图谱整合等多种 RAG 技术。
37、video2x —— 视频和图像无损放大工具该项目集成了多种超分辨率算法(如 Waifu2x、Anime4K、Real-ESRGAN),能够有效提高视频和图像的分辨率,并提供了图形界面(GUI)、Docker 和命令行界面(CLI)的使用方式。
十四、其它:投屏、追番、输入法与开源硬件
38、deskreen —— 能将任何设备变为电脑第二屏幕的工具该项目利用 WebRTC 技术将电脑屏幕通过 WiFi 镜像到具有 Web 浏览器的设备屏幕上,实现屏幕共享功能,使其成为电脑的辅助显示器。
39、Kazumi —— 跨平台的追番神器(来自 @Micro·J 的分享) 这是一款采用 Flutter 开发的番剧采集应用,用户可以通过自定义 Xpath 规则,实现采集、追踪、搜索和在线观看动漫,支持字幕、弹幕、时间表、硬件加速和无线投屏等功能,适用于 Android、Windows 和 macOS 等平台。
40、open-and-shut —— 笔记本盖的新玩法这是一个通过反复合上和打开笔记本电脑的盖子,输入摩斯电码的工具。
41、rime-ice —— 开箱即用的 RIME 输入法配置这是一份 RIME 输入法的配置文件,需要配合 RIME 客户端使用。它提供了高质量、长期维护的简体中文词库,并优化了英文输入体验。
42、vCards —— 开源的电子名片文件(来自 @Mingo 的分享) 该项目收集并整理了常用联系人的号码和头像,优化了手机来电和通讯录信息界面的体验,支持订阅(自动更新)和手动导入 vcf 文件两种使用方式。
43、Watchy —— 开源电子墨水屏智能手表该项目是采用 ESP32-PICO-D4 和电子墨水屏制作的一款智能手表,支持日历、闹钟、步数、手势检测,以及 WiFi 和蓝牙等功能。
十五、开源书籍:英语语法入门
44、grammar-club ——《语法俱乐部》这是旋元佑老师写的一本英语语法书籍,旨在帮助读者建立扎实的语法基础,适合各个水平的英语学习者。
十六、延伸阅读:月刊背后的自动化生产线
本期月刊之所以能保持统一的排版结构和发布节奏,离不开仓库中两套配套脚本,值得一并了解:
1. 月刊生成脚本 make_content.py每期内容遵循统一格式,如果通用部分需要修改,逐期手动修改是不优雅的,因此仓库用脚本生成月刊。其核心机制是模板占位符替换:
- 模板中通过
{{ hello_github_content }}占位符插入当期项目内容、通过{{ hello_github_num }}占位符插入期数; - 运行方式为
python make_content.py 期数(生成指定期)或python make_content.py all(重新生成所有期),需在项目根目录下运行(详见 make_content 使用说明); - 从源码结构看,脚本会校验 content 与 template 文件是否存在,再执行“读模板 → 替换期数 → 替换内容 → 写出
HelloGitHub{num}.md”的流程。
2. 项目收集脚本 github_bot月刊内容的源头来自对 GitHub 优秀项目的收集。该脚本用于收集项目素材,运行前需要配置ACCOUNT(GitHub 帐号)、MAIL(发送邮件的 SMTP 信息,默认smtp.qq.com:465)和RECEIVERS(接收邮件的邮箱地址列表)等参数,然后执行pip install -r requirements.txt安装依赖、python github_bot.py运行。开发日志显示其能力是逐步完善的:从请求 GitHub API 获取关注用户 star 的项目并按 star 数从高到低展示、过滤内容、定时发邮件,到后来增加 star 临界值收集、错误日志落盘等。
因此,HelloGitHub 的完整链路是:github_bot 采集项目 → 人工筛选编写当期内容 → make_content 脚本套用模板生成月刊 → 按content/HelloGitHub{期数}.md归档,并且每期还提供 英文版 便于国际读者阅读。
结语
《HelloGitHub》第 101 期共 44 个项目,覆盖 11 种编程语言与人工智能、开源硬件、开源书籍等多个方向,其中 doggo、lancet、PptxGenJS、xyflow、Box、SeleniumBase、llama_index 等 7 个项目在原文档中给出了可直接运行的代码示例,本文已完整保留并补充了参数说明。如果你想继续追更,可以翻阅 第 100 期 与 第 102 期;如果你对月刊的“生产线”感兴趣,可以从 make_content.py 和 github_bot.py 入手。最后提醒:月刊遵循 CC 署名-非商业性使用-禁止演绎 4.0 国际许可协议,转载引用时请保留出处。
- 技术博客
- 文档
- 知识库
【免费下载链接】HelloGitHub
:octocat: 分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.
相关推荐
Home Assistant Snapcast Snapshot 动作实战:快照与恢复多房间音频播放状态
Home Assistant Snapcast Snapshot 动作实战:快照与恢复多房间音频播放状态 本文围绕 Home Assistant 用户文档中 S
技术博客文档知识库HelloGitHub 第 123 期开源项目精选:38 个有趣开源项目的全景导读
HelloGitHub 第 123 期开源项目精选:38 个有趣开源项目的全景导读 本篇文章以 HelloGitHub 仓库中的 content/HelloGi
技术博客文档知识库《HelloGitHub》第 03 期:九个有趣入门级开源项目详解
《HelloGitHub》第 03 期:九个有趣入门级开源项目详解 本文基于仓库中的 content/HelloGitHub03.md https://link
技术博客文档知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考