GitHub的项目-图轻
- 桌面端:Tauri 2 + Rust,图片全在本机处理不上传,体积小性能好
- 前端:Next.js + TypeScript + Vite 多套构建配置(Web 版/桌面版分开)
- Web 版:纯浏览器本地处理(GitHub Pages 静态部署),也能 Docker 自托管,配了 nginx + systemd)
- 数据层:Drizzle ORM 管理数据库 schema
- 质量保障:有压缩策略的单元测试 + CDP 冒烟测试
双引擎架构
| 场景 | 引擎 | 实现 |
|---|---|---|
| 桌面端 | Rust | lib.rs 用 image + webp crate 编码,走 Tauri IPC 传二进制 |
| Web 端 | 浏览器 | Canvas 绘制 + canvas.toBlob 编码 |
| 动图 GIF | 分端处理 | Web 端用浏览器 ImageDecoder 逐帧解码 + gifenc 重编码;桌面端走 Rust 的 GifEncoder/动态 WebP 编码器 |
亮点:压缩“择优”逻辑是真比较真编码结果。
