HelloGitHub Vol.71
HelloGitHub shares interesting and beginner-friendly open source projects on GitHub, updated on the 28th of each month. Here you will find fun and beginner-level open source projects, open source books, practical projects, and enterprise-level projects, allowing you to quickly appreciate the charm of open source and develop an interest in it.
迷你 C 编译器。虽然它只是一个玩具级的编译器,但是实现了大多数 C11 特性,而且能够成功编译几十万行的 C 语言项目,其中包括 Git、SQLite 等知名项目。而且它项目结构清晰、每次提交都是精心设计、代码容易理解,对编译器感兴趣的同学可以从第一个提交开始学习
高性能 HTTP 服务器。相较于传统 Web 服务器,它充分利用了 HTTP/2 的资源加载优先级和服务器推送技术,所以在静态文件方面性能明显优于 Nginx 服务器

执行外部命令的 C# 库。提供启动进程、输入/输出重定向、等待完成、管道等功能,支持 Windows、Linux、macOS 操作系统
using CliWrap; var result = await Cli.Wrap("path/to/exe") .WithArguments("--foo bar") .WithWorkingDirectory("work/dir/path") .ExecuteAsync(); // 输出包括: // -- result.ExitCode (int) // -- result.StartTime (开始时间) // -- result.ExitTime (结束时间) // -- result.RunTime (执行命令耗时)

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

在线文件管理工具。在浏览器上管理 FTP、SFTP、Git、S3、MySQL、Dropbox 等服务中的文件和数据,支持编辑文件、图片管理、视频转码、Office 文档、全文搜索等功能

Go 原生图表库。支持折线图、柱状图、饼图等
package main import ( "os" "github.com/wcharczuk/go-chart/v2" ) func main() { graph := chart.Chart{ Series: []chart.Series{ chart.ContinuousSeries{ XValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0}, YValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0}, }, }, } f, _ := os.Create("output.png") defer f.Close() graph.Render(chart.PNG, f) }

离线查询 IP 地理信息和 CDN 服务提供商的命令行工具
$ nali 1.2.3.4 1.2.3.4 [澳大利亚 APNIC Debogon-prefix网络]
Unlocking MySQL's Horizontal Scaling Capabilities. This is a distributed database cluster system designed specifically for MySQL, used for deploying, scaling, and managing large MySQL instance clusters. By encapsulating sharding logic, it reduces the complexity of application programs and database queries. It supports dynamic sharding split/merge, high-throughput, and low-latency database operations, making it suitable for enterprise applications that require horizontal scaling of MySQL databases.

流畅快速的 Android 图片加载库。为了实现快速加载和展示图像,Glide 会自动缩减像素采样、缓存、积极重用减少垃圾回收。使用上一行代码就可以实现图片加载和展示,同时网络请求部分可灵活接入任何库
Glide.with(fragment).load(url).into(imageView);

Oracle 开源的高性能跨语言虚拟机。用它启动的程序占用内存更低、启动时间更短,而且支持运行多种编程语言,比如 Python、Ruby、C/C++、Java 等。通过 Polyglot API 更是打破了不同语言之间的壁垒,实现多语言混合编程。目前部分功能还处于实验阶段,生产环境慎用。官网
import org.graalvm.polyglot.*; class Polyglot { public static void main(String[] args) { Context context = Context.newBuilder().allowIO(true).build(); Value array = context.eval("python", "[1,2,42,4]"); int result = array.getArrayElement(2).asInt(); System.out.println(result); } } /** * 运行结果 * 执行:javac Polyglot.java * 输出:42 */

适用于 Java 和 Android 的 JWT(JSON Web Token)库
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.security.Keys; import java.security.Key; Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256); String jws = Jwts.builder().setSubject("HelloGitHub").signWith(key).compact(); // 得到 JWS 字符串
完全开源的物联网 IoT 平台。它使用行业的标准物联网协议 MQTT、CoAP 和 HTTP 连接设备,支持数据收集、处理、可视化和设备管理等功能。通过该项目可快速实现物联网平台搭建,从而成为众多大型企业的首选,行业覆盖电信、智慧城市、环境监测等

可直接在 Node.js 上执行 TypeScript 代码的库。通过 JIT 方式将 TypeScript 代码转换成 JavaScript,实现不需要预编译即可在 Node.js 上运行 TypeScript 代码

面向程序员的本地 Markdown 笔记工具。一款适合程序员的笔记工具,拥有和其它工具不一样的体验
- 技术笔记:可直接在文档中运行代码块(默认支持 JS 代码,其它语言需配置)
- 制作辅助工具:可在文档中嵌入 HTML 组件来制作辅助工具
- 画图和图表:支持嵌入多种图形、思维导图、Plantunl、Drawio、Mermaid 、ECharts
- 工作日报:支持任务代办列表,使用“宏替换”功能可以方便地生成日报周报

加速 Android APK 编译的插件。它会自动识别未改动模块并在编译流程中替换为 AAR,最后只编译改动过的模块,从而实现加速的效果
// app module 的 build.gradle 加入 apply plugin: 'com.rocketx' // 在根目录的 build.gradle 加入 buildscript { dependencies { classpath 'io.github.trycatchx:rocketx:1.0.17' } } 依赖 AS 插件 android studio setting->plugins-> marketplace 搜索 RocketX 安装

由蒲公英团队开源的代码托管平台。界面清爽后端采用 PHP 编写,支持 Docker 一键部署
- ❤️ 完整开源:毫无保留的完整开源,无任何编译或加密代码
- ⌨️ 代码对比:支持提交代码的不同版本支持高亮显示对比
- 🙅🏻♀️ 分支保护:分支保护功能让代码提交安全可控,代码 Review 更容易清晰
- 👥 多人协作:支持多人团队协作,并可以设置每个成员的角色和权限
- 🔌 Webhook:支持 Webhook 功能,可轻松和其它系统进行集成

用 Python 实现所有算法。该项目是用 Python 语言实现各种算法的集合,主要用于教育和学习。包括搜索、排序、数据结构、机器学习、密码、神经网络等方面

一个简单的 Python 迷你脚本集合。虽然代码简单但其中不乏实用的 Python 脚本,比如图片添加水印、批量下载图片、发送电子邮件、定时截屏等
Crafting Terminal UI Frameworks with Rust.This is a Rust library for building Terminal User Interfaces (TUIs), originating from a branch of the tui-rs project. It offers a suite of widgets and tools that support cross-platform functionality, instant rendering, flexible layout, and custom styling, enabling developers to create sophisticated terminal interfaces.
use crossterm::event::{self, Event}; use ratatui::{text::Text, Frame}; fn main() { let mut terminal = ratatui::init(); loop { terminal.draw(draw).expect("failed to draw frame"); if matches!(event::read().expect("failed to read event"), Event::Key(_)) { break; } } ratatui::restore(); } fn draw(frame: &mut Frame) { let text = Text::raw("Hello World!"); frame.render_widget(text, frame.area()); }

macOS 上的开发者实用工具箱。单机应用无需联网,内含开发者开发时经常用到的 30 多种工具,比如:URL 解码、JSON 格式化、正则匹配、时间戳转化等,而且还会根据剪贴板的内容,自动推荐对应的处理工具,实用且高效

Making Large AI Models More Cost-Effective, User-Friendly, and Scalable. An efficient distributed AI training system. It helps users improve AI training efficiency while reducing training costs, thus adapting to rapidly iterating algorithms and models, and promoting large AI models to more application scenarios at a lower cost and with greater convenience.

开源电子平台,可用来制作嵌入式项目。Arduino 提供的电路板安装简单、价格便宜,而且电路图完全开源。官方还提供了配套的开发工具,加上交互式的开发模式使得上手变得极为简单。软硬件的完全开源让开发者社区十分活跃,为社区提供了丰富的教程、实战项目、三方资源。如果你想动手做个机器人,就从 Arduino 开始吧!官网

程序员做饭指南。一份极其详尽的菜谱,里面没有模糊的量词和看不懂的操作,菜品从主食到甜品应有尽有
在线体验 macOS 系统。该项目使用 Svelte 复刻了 macOS 操作系统的部分操作体验,虽然已实现的功能较少,但更新积极未来可期。在线查看

无 APP 推送服务。该项目可以实现不安装庞大的应用,就可以收到自定义的及时推送、告警和通知。还可以选择自行搭建服务(免费)或使用已有的在线服务(收费),支持快应用、iOS、macOS、Android 等客户端

- C
- C#
- C++
- CSS
- Go
- Java
- JavaScript
- Kotlin
- PHP
- Python
- Rust
- Swift
- AI
- Other