rs-zero 0.2.6

Rust-first microservice framework inspired by go-zero engineering practices
Documentation
# 0.1.x 迁移基线

`0.1.x` 是 rs-zero 的早期生产能力成形阶段。项目尚未承诺 `1.0` 稳定,但从本基线开始,用户可按 [API 稳定性](../api-stability.md) 文档判断哪些变化需要迁移说明。

## 当前基线

- workspace 版本:`0.2.3`
- Rust edition:`2024`
- MSRV:Rust `1.87`
- 发布 crate:`rs-zero``rs-zero-cli`
- CLI binary:`rzcli`
- 默认 runtime features:`core``rest``rpc``resil``cache``discovery``observability``db-sqlite`
- 外部 adapter features:`cache-redis``discovery-etcd``discovery-kube``otlp``profiling``db-mysql``db-postgres`

## 升级检查清单

升级到新的 `0.1.x` patch 版本时:

1. 阅读 changelog 和本目录新增条目。
2. 运行项目默认测试:`cargo test --workspace`3. 如使用 no-default features,复跑自己的 feature 组合。
4. 如使用外部 adapter,按 [External integration CI]../external-integration-ci.md 运行对应 ignored tests。
5. 如依赖生成代码,重新生成到临时目录并对比公开 trait、repository 方法和 Cargo feature。

## 已记录迁移条目

### RPC 生成代码切换到 Tower-first skeleton

- 影响版本:`0.2.3` 后续 patch
- 影响范围:generated code / observability / resilience
- 破坏性:否。旧 helper 仍保留,但新生成代码形态变化。
- 旧行为:`rzcli rpc gen` 生成 `RpcRequestParts``*_with_parts`,并在 unary method 中显式调用 `RpcResilienceLayer::run_unary*`- 新行为:`rzcli rpc gen` 默认导出并使用 `RpcServerLayerStack`,service 内只保留业务 `handle_*`,metadata、观测和韧性由 tonic server 外层 Tower layer 处理。
- 迁移步骤:
  1. 旧项目可以继续编译,不需要立即修改。
  2. 重新生成 RPC skeleton 后,在 tonic server builder 上挂载 `service.server_layer_stack().into_layer()`  3. trait method 内可直接 `request.into_inner()`,不再需要手动构造 `RpcRequestParts`- 验证命令:`cargo test -p rs-zero-cli --test rpc_codegen_integration`

## 未来条目模板

复制下面模板记录破坏性或需用户操作的变化:

```markdown
### 标题

- 影响版本:`0.1.x` -> `0.1.y`
- 影响范围:crate API / CLI / generated code / config / feature / observability
- 破坏性:是 / 否
- 旧行为:...
- 新行为:...
- 迁移步骤:
  1. ...
  2. ...
- 验证命令:`cargo test ...`
```