rs-zero
rs-zero 是一个 Rust-first 微服务框架,借鉴 go-zero 的工程默认值,同时使用 Rust 生态中稳定的运行时、Web、RPC、观测和代码生成能力。它不是 go-zero 的逐行移植,也不承诺生成 Go 代码的字节级兼容。
适合使用 rs-zero 的场景:
- 想用 Rust 快速搭建 REST 或 RPC 服务。
- 需要统一响应、错误、配置、tracing、优雅停机、超时、限流和熔断等默认能力。
- 希望用 go-zero 风格
.api或 SQL schema 生成 Rust-first skeleton。 - 希望按模块接入 discovery、observability、database、cache 和生产 adapter。
不适合的场景:
- 需要完整替代
goctl的所有语言生成器。 - 需要默认测试连接真实数据库、Redis、etcd、Kubernetes 或 OTLP collector。
- 需要完整 protobuf 编译链或完整 MySQL 语法解析器。
能力速览
| 能力 | crate / 文档 | 说明 |
|---|---|---|
| REST runtime | rs-zero feature rest / REST 手册 |
基于 axum、tower、tower-http,提供统一响应、错误和默认中间件边界。 |
| RPC helper | rs-zero feature rpc / RPC 手册 |
基于 tonic,提供 client endpoint、request-id interceptor 和 health server helper。 |
| API DSL/codegen | rzcli api(rs-zero-cli)/ API 教程 |
解析 go-zero 风格 .api,导出 OpenAPI,并生成 Rust REST skeleton。 |
| Model/cache | rzcli model(rs-zero-cli)/ Model 教程 |
从 MySQL/goctl 或显式 PostgreSQL SQL schema 生成 entity、repository trait、SQLx skeleton 和 cache key helper;可显式选择 MySQL/PostgreSQL backend。 |
| Discovery | rs-zero feature discovery / Discovery 手册 |
static、memory、DNS adapter,以及 etcd/Kubernetes adapter feature 边界。 |
| Observability | rs-zero feature observability / Observability 手册 |
Prometheus 文本指标、REST metrics middleware、OpenTelemetry/OTLP 配置入口。 |
| DB/cache adapters | rs-zero features db-*、cache-redis / 生产 adapter |
SQLx SQLite helper、MySQL/PostgreSQL feature helper、cache trait、in-memory backend、Redis facade。 |
| CLI | rzcli(rs-zero-cli crate)/ CLI 手册 |
REST scaffold、API validate/format/openapi/gen、model gen、rpc gen、goctl compatibility matrix。 |
| goctl compatibility | 兼容矩阵 | 记录 API/model/RPC 的已支持、部分支持、未支持和有意差异。 |
快速开始
前置条件:安装 Rust stable toolchain。
运行 REST 示例:
运行 RPC health 示例:
使用 CLI 生成项目骨架:
# MySQL backend:
# PostgreSQL schema:
安装 CLI 后可直接使用 rzcli:
# 本仓库开发时可使用本地路径安装:
生成项目默认只依赖 rs-zero 运行时 crate,例如:
= { = "0.1", = ["rest"] }
完整上手步骤见 快速开始。
文档导航
- 新手入口:文档总览 / 快速开始
- 教程:REST 服务 / API codegen / RPC 服务 / Model/cache
- 用户手册:CLI / REST / RPC / API DSL / Model/cache
- 生产能力:Discovery / Observability / Production adapters / 生产检查清单
- 开发建议:最佳实践 / 排障手册
- 兼容与路线图:go-zero 映射 / goctl 兼容矩阵 / MVP roadmap
工作区结构
src/:rs-zero运行时模块,包括core、rest、rpc、resil、db、cache、discovery、observability。crates/rs-zero-cli/:rzcli工具链 crate,内聚 API/model/RPC parser 和 codegen。examples/:可运行示例和 adapter 示例。tests/:workspace 级集成测试和兼容测试。docs/:教程、手册、最佳实践、排障和兼容文档。.helloagents/plans/:项目方案包和交付记录。
验证命令
提交前至少运行:
文档链接和敏感信息检查由 tests/docs_links.rs 覆盖,会随 cargo test --workspace 一起运行。