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