《HelloGitHub》第 71 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。
迷你 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网络]
用于横向扩展 MySQL 数据库的集群系统。基于 Go 语言的并发特性,它能够轻松处理数千个连接。还可以根据配置好的规则,自动优化影响数据库性能的查询,运维方面支持自动处理主故障转移和备份等功能
流畅快速的 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 脚本,比如图片添加水印、批量下载图片、发送电子邮件、定时截屏等
用 Rust 打造终端界面的框架。这是一个用于构建终端用户界面(TUI) 的 Rust 库,源自 tui-rs 项目的分支。它提供了一组小部件和工具,支持跨平台、即时渲染、灵活布局和自定义样式,能够帮助开发者创建复杂的终端界面。
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 格式化、正则匹配、时间戳转化等,而且还会根据剪贴板的内容,自动推荐对应的处理工具,实用且高效
高效的分布式人工智能训练系统。它能帮助用户在提升人工智能训练效率的同时降低训练成本,从而适应快速迭代的算法和模型,将 AI 大模型以低成本便捷推广到更多应用场景
开源电子平台,可用来制作嵌入式项目。Arduino 提供的电路板安装简单、价格便宜,而且电路图完全开源。官方还提供了配套的开发工具,加上交互式的开发模式使得上手变得极为简单。软硬件的完全开源让开发者社区十分活跃,为社区提供了丰富的教程、实战项目、三方资源。如果你想动手做个机器人,就从 Arduino 开始吧!官网
程序员做饭指南。一份极其详尽的菜谱,里面没有模糊的量词和看不懂的操作,菜品从主食到甜品应有尽有
在线体验 macOS 系统。该项目使用 Svelte 复刻了 macOS 操作系统的部分操作体验,虽然已实现的功能较少,但更新积极未来可期。在线查看
无 APP 推送服务。该项目可以实现不安装庞大的应用,就可以收到自定义的及时推送、告警和通知。还可以选择自行搭建服务(免费)或使用已有的在线服务(收费),支持快应用、iOS、macOS、Android 等客户端
- C 项目
- C# 项目
- C++ 项目
- CSS 项目
- Go 项目
- Java 项目
- JavaScript 项目
- Kotlin 项目
- PHP 项目
- Python 项目
- Rust 项目
- Swift 项目
- 人工智能
- 其它