Smart-Git 是一个高性能的 Git Smart HTTP 转发与缓存服务,旨在加速对 GitHub 等上游仓库的访问,并提供本地镜像缓存。
本项目提供两种语言实现,它们在功能和 API 上保持高度一致,可以根据部署环境灵活选择。
- 高性能: 基于 Touka 框架构建,具备优秀的吞吐能力与扩展性。
- 纯 Go 实现: 使用 Go-Git 处理 Git 协议,无 CGO 依赖。
- 轻量存储: 使用 BoltDB 管理元数据,单文件数据库,部署简便。
- Git 协议与 HTTP 基础能力: 基于 gitserver 提供 Rust 版本的 Git 协议处理与 HTTP 层支持。
- 现代异步: 基于 Axum 和 Tokio 栈,资源占用低且并发性强。
- 稳健的 Git 引擎: 采用 Gix (Gitoxide) 引擎,提供更快的克隆与同步速度。
- 自动刷新: 引入后台扫描任务,根据 TTL 自动更新过期仓库。
- 标准存储: 使用 SQLite 管理元数据,方便进行数据维护。
你可以直接使用以下 Compose 文件快速部署:
更完整的安装步骤见 docs/install.md。
Smart-Git 推荐使用 WANF 配置格式,同时也兼容 TOML。程序启动时会优先寻找 .wanf 配置文件。
Go 与 Rust 两个实现的示例配置、TOML/WANF 对照和字段说明见 docs/config.md。
两套实现在管理接口上保持互换性,当前统一返回 WANF 响应格式。
GET /healthz: 服务健康检查。GET /api/db/data: 返回当前所有缓存仓库的详细记录。GET /api/db/sum: 返回仓库的拉取统计信息(克隆次数、请求次数)。POST /api/cache/{owner}/{repo}/sync: (仅 Rust 版) 手动触发指定仓库的同步。
本项目使用 WJQserver Studio 开源许可证 v2.0。
- Touka
- Go-Git
- Gix (Gitoxide)
- gitserver (Rust 版本的 Git 协议与 HTTP 层能力支持)
- WANF
- erred/gitreposerver (Smart HTTP 实现参考)