# spacetime-module 主工程 crate 占位说明 日期:`2026-04-20` ## 1. crate 职责 `spacetime-module` 是新后端的 SpacetimeDB 主工程 crate,后续负责: 1. 聚合各独立模块 crate 的表定义 2. 聚合各独立模块 crate 的 reducer 3. 聚合各独立模块 crate 的 view / 读模型 4. 生成可发布的 SpacetimeDB wasm 模块 5. 由 `../../scripts/spacetime-dev.ps1` 与 `../../scripts/spacetime-dev.sh` 驱动的本地 standalone 启动链路 ## 2. 当前阶段说明 当前阶段仍未进入具体 schema 与 reducer 实现,但已经补齐本地 standalone 启动脚本,先把 SpacetimeDB 进程入口固定下来。 后续与本 crate 直接相关的任务包括: 1. 建立模块聚合入口 2. 设计表、reducer、view 的聚合方式 3. 接入身份 claims 透传 4. 在实体 module scaffold 落地后接入 publish / dev 循环 当前本地开发脚本约定: 1. `../../scripts/spacetime-dev.ps1` 与 `../../scripts/spacetime-dev.sh` 当前固定执行 `spacetime start` 的 standalone 模式。 2. 默认监听 `127.0.0.1:3001`,避免与 `api-server` 默认 `3000` 端口冲突。 3. 本地数据目录固定到 `server-rs/.spacetimedb/local`,避免污染全局 SpacetimeDB 根目录。 4. 当前阶段暂不自动 publish `crates/spacetime-module`,待 module 实体 scaffold 与聚合入口落地后再扩展。 ## 3. 边界约束 1. `spacetime-module` 只聚合状态模型,不直接承接 HTTP、Cookie、Header、OSS、短信、微信、LLM 等外部副作用。 2. 每个业务模块优先在自己的 `crates/module-*` 中定义状态与规则,再由主工程聚合。 3. 主工程不重新吞并各模块实现细节,避免回到单大包结构。