docs: switch rust backend to multi-package layout

This commit is contained in:
2026-04-21 00:41:21 +08:00
parent c16a554934
commit e12037740c
9 changed files with 178 additions and 59 deletions

View File

@@ -1,5 +1,5 @@
# 当前阶段先建立虚拟 workspace。
# 各 crate 创建完成后,再按任务清单逐项补充 members。
# 后续按“主工程 apps + 独立模块 packages”模式逐项补充 members。
[workspace]
resolver = "2"

View File

@@ -14,24 +14,37 @@
## 2. 当前阶段说明
当前目录已经完成以下项初始化:
当前目录已经完成以下项初始化:
1. 为新后端预留正式目录并把路径固定到仓库结构中。
2. 创建虚拟 workspace `Cargo.toml`,后续 crate 会逐项挂入。
3. 创建 `crates/api-server/` 目录占位,固定 Axum 入口 crate 落位
2. 创建虚拟 workspace `Cargo.toml`,后续 package 会逐项挂入。
3. 明确内部采用“`apps/*` 主工程 + `packages/*` 独立模块包”的多 package 组织方式
4. 创建 `apps/api-server/` 目录占位,固定 Axum 主工程落位。
后续任务会继续在本目录内按顺序补齐:
1. `crates/spacetime-module`
2. `crates/application`
3. `crates/domain`
4. `crates/contracts`
5. `crates/auth-service`
6. `crates/oss-service`
7. `crates/llm-service`
8. `crates/spacetime-client`
9. `crates/tests`
10. `scripts/*`
1. `apps/spacetime-module`
2. `packages/module-auth`
3. `packages/module-runtime`
4. `packages/module-story`
5. `packages/module-combat`
6. `packages/module-inventory`
7. `packages/module-npc`
8. `packages/module-progression`
9. `packages/module-quest`
10. `packages/module-runtime-item`
11. `packages/module-custom-world`
12. `packages/module-assets`
13. `packages/module-editor`
14. `packages/module-ai`
15. `packages/shared-contracts`
16. `packages/shared-kernel`
17. `packages/platform-auth`
18. `packages/platform-oss`
19. `packages/platform-llm`
20. `packages/spacetime-client`
21. `packages/tests-support`
22. `scripts/*`
## 3. 已冻结边界
@@ -39,8 +52,9 @@
1. 迁移期保留 `server-node/`,不提前删除。
2. 前端在 `M0 ~ M6` 期间只访问 Axum不直连 SpacetimeDB。
3. 外部副作用统一收口在 Axum / application / infra。
4. `spacetime-module` 只负责状态、规则、reducer、view 与读模型
3. 外部副作用统一收口在 Axum / package 内应用层 / infra。
4. `apps/api-server` 只组合与暴露协议,不直接吞并业务模块实现
5. `apps/spacetime-module` 只负责汇总各模块 package 的表、reducer、view。
## 4. 关联文档

View File

@@ -1,10 +1,10 @@
# api-server crate 占位说明
# api-server 主工程 package 占位说明
日期:`2026-04-20`
## 1. crate 职责
## 1. package 职责
`api-server` 是新后端的 Axum 入口 crate后续负责
`api-server` 是新后端的 Axum 主工程 package后续负责
1. `main.rs` 启动入口
2. `Router` 装配
@@ -16,7 +16,7 @@
当前提交仅完成目录占位,不提前进入具体实现。
后续与本 crate 直接相关的任务包括:
后续与本 package 直接相关的任务包括:
1. 搭建 `main.rs` / `Router` / `with_state`
2. 接入统一配置加载
@@ -29,6 +29,6 @@
## 3. 边界约束
1. `api-server` 负责 HTTP、SSE、Cookie、Header、路由与协议装配。
2. 业务编排下沉到 `application` crate
3. 外部副作用通过 `auth-service``oss-service``llm-service` 与后续基础设施适配层完成。
2. 业务逻辑优先通过独立模块 package 暴露能力,再由主工程组合
3. 外部副作用通过 `platform-auth``platform-oss``platform-llm` 与各模块 package 的应用层完成。
4. 不把领域规则直接堆在 handler 中。