# server-rs 工作区占位说明 日期:`2026-04-20` ## 1. 目录用途 `server-rs/` 是本项目新 Rust 后端的固定根目录,用于承载以下重写目标: 1. `Axum` HTTP / SSE 边界层 2. `SpacetimeDB` 状态机模块 3. `阿里云 OSS` 资产接入与应用层编排 该目录固定放在仓库根目录,与 `server-node/`、`src/`、`docs/` 同级。 ## 2. 当前阶段说明 当前目录已经完成以下三十项初始化: 1. 为新后端预留正式目录并把路径固定到仓库结构中。 2. 创建虚拟 workspace `Cargo.toml`,后续 package 会逐项挂入。 3. 明确内部采用“`apps/*` 主工程 + `packages/*` 独立模块包”的多 package 组织方式。 4. 创建 `apps/api-server/` 目录占位,固定 Axum 主工程落位。 5. 创建 `apps/spacetime-module/` 目录占位,固定 SpacetimeDB 主工程落位。 6. 创建 `packages/module-auth/` 目录占位,固定鉴权模块 package 落位。 7. 创建 `packages/module-runtime/` 目录占位,固定运行时状态基座模块 package 落位。 8. 创建 `packages/module-story/` 目录占位,固定故事主循环模块 package 落位。 9. 创建 `packages/module-combat/` 目录占位,固定战斗规则模块 package 落位。 10. 创建 `packages/module-inventory/` 目录占位,固定背包与物品变更模块 package 落位。 11. 创建 `packages/module-npc/` 目录占位,固定 NPC 状态与互动模块 package 落位。 12. 创建 `packages/module-progression/` 目录占位,固定成长与章节推进模块 package 落位。 13. 创建 `packages/module-quest/` 目录占位,固定任务运行时模块 package 落位。 14. 创建 `packages/module-runtime-item/` 目录占位,固定运行时物品模块 package 落位。 15. 创建 `packages/module-custom-world/` 目录占位,固定自定义世界与 agent 模块 package 落位。 16. 创建 `packages/module-assets/` 目录占位,固定资产任务与对象绑定模块 package 落位。 17. 创建 `packages/module-ai/` 目录占位,固定 AI 编排模块 package 落位。 18. 创建 `packages/shared-contracts/` 目录占位,固定前后端兼容 contract 共享 package 落位。 19. 创建 `packages/shared-kernel/` 目录占位,固定跨模块共享领域内核 package 落位。 20. 创建 `packages/platform-auth/` 目录占位,固定鉴权平台适配 package 落位。 21. 创建 `packages/platform-oss/` 目录占位,固定 OSS 平台适配 package 落位。 22. 创建 `packages/platform-llm/` 目录占位,固定大模型平台适配 package 落位。 23. 创建 `packages/spacetime-client/` 目录占位,固定 SpacetimeDB 客户端适配 package 落位。 24. 创建 `packages/tests-support/` 目录占位,固定测试支撑共享 package 落位。 25. 创建 `scripts/dev.ps1`,固定 Windows 本地开发入口。 26. 创建 `scripts/dev.sh`,固定 Unix-like 本地开发入口。 27. 创建 `scripts/test.ps1`,固定 Windows 本地测试入口。 28. 创建 `scripts/test.sh`,固定 Unix-like 本地测试入口。 29. 创建 `scripts/check.ps1`,固定 Windows 本地统一检查入口。 30. 创建 `scripts/check.sh`,固定 Unix-like 本地统一检查入口。 后续任务会继续在本目录内按顺序补齐: 1. smoke 脚本 2. SpacetimeDB 本地开发脚本 ## 3. 已冻结边界 本目录后续落地时必须继续遵守 `M0` 已冻结的边界: 1. 迁移期保留 `server-node/`,不提前删除。 2. 前端在 `M0 ~ M6` 期间只访问 Axum,不直连 SpacetimeDB。 3. 外部副作用统一收口在 Axum / package 内应用层 / infra。 4. `apps/api-server` 只组合与暴露协议,不直接吞并业务模块实现。 5. `apps/spacetime-module` 只负责汇总各模块 package 的表、reducer、view。 ## 4. 关联文档 1. [../docs/technical/SPACETIMEDB_AXUM_OSS_BACKEND_REWRITE_DESIGN_2026-04-20.md](../docs/technical/SPACETIMEDB_AXUM_OSS_BACKEND_REWRITE_DESIGN_2026-04-20.md) 2. [../backend-rewrite-tasklist/M0_REPOSITORY_BOUNDARY_DECISIONS_2026-04-20.md](../backend-rewrite-tasklist/M0_REPOSITORY_BOUNDARY_DECISIONS_2026-04-20.md) 3. [../backend-rewrite-tasklist/01_M0_M2_FOUNDATION_AND_AUTH.md](../backend-rewrite-tasklist/01_M0_M2_FOUNDATION_AND_AUTH.md)