# 当前阶段先建立虚拟 workspace。 # 后续按“主工程 crate + 独立模块 crate”模式逐项补充 members。 [workspace] resolver = "2" default-members = [ "crates/api-server", ] members = [ "crates/api-server", "crates/module-ai", "crates/module-assets", "crates/module-auth", "crates/module-big-fish", "crates/module-combat", "crates/module-inventory", "crates/module-custom-world", "crates/module-match3d", "crates/module-npc", "crates/module-puzzle", "crates/module-progression", "crates/module-quest", "crates/module-runtime", "crates/module-runtime-story", "crates/module-runtime-item", "crates/module-square-hole", "crates/module-story", "crates/platform-oss", "crates/platform-auth", "crates/platform-llm", "crates/shared-contracts", "crates/shared-kernel", "crates/shared-logging", "crates/spacetime-client", "crates/spacetime-module", "crates/tests-support", ] [workspace.package] edition = "2024" version = "0.1.0" license = "UNLICENSED" [workspace.dependencies] # 本地 workspace crate 路径统一在这里维护,成员 crate 只声明 feature 差异。 module-ai = { path = "crates/module-ai", default-features = false } module-assets = { path = "crates/module-assets", default-features = false } module-auth = { path = "crates/module-auth", default-features = false } module-big-fish = { path = "crates/module-big-fish", default-features = false } module-combat = { path = "crates/module-combat", default-features = false } module-custom-world = { path = "crates/module-custom-world", default-features = false } module-inventory = { path = "crates/module-inventory", default-features = false } module-match3d = { path = "crates/module-match3d", default-features = false } module-npc = { path = "crates/module-npc", default-features = false } module-progression = { path = "crates/module-progression", default-features = false } module-puzzle = { path = "crates/module-puzzle", default-features = false } module-quest = { path = "crates/module-quest", default-features = false } module-runtime = { path = "crates/module-runtime", default-features = false } module-runtime-item = { path = "crates/module-runtime-item", default-features = false } module-runtime-story = { path = "crates/module-runtime-story", default-features = false } module-square-hole = { path = "crates/module-square-hole", default-features = false } module-story = { path = "crates/module-story", default-features = false } platform-auth = { path = "crates/platform-auth", default-features = false } platform-llm = { path = "crates/platform-llm", default-features = false } platform-oss = { path = "crates/platform-oss", default-features = false } shared-contracts = { path = "crates/shared-contracts", default-features = false } shared-kernel = { path = "crates/shared-kernel", default-features = false } shared-logging = { path = "crates/shared-logging", default-features = false } spacetime-client = { path = "crates/spacetime-client", default-features = false } argon2 = "0.5" async-stream = "0.3" axum = "0.8" base64 = "0.22" dotenvy = "0.15" hmac = "0.12" http-body-util = "0.1" image = { version = "0.25", default-features = false } jsonwebtoken = "9" log = "0.4" rand_core = "0.6" reqwest = { version = "0.12", default-features = false } serde = { version = "1", features = ["derive"] } serde_json = "1" serde_urlencoded = "0.7" sha2 = "0.10" spacetimedb = "2.2.0" spacetimedb-sdk = "2.2.0" spacetimedb-lib = { version = "2.2.0", default-features = false } time = "0.3" tokio = "1" tokio-stream = "0.1" tower = "0.5" tower-http = "0.6" tracing = "0.1" tracing-subscriber = "0.3" url = "2" urlencoding = "2" uuid = "1" webp = "0.3" [profile.dev] opt-level = 0 # 默认 0,有人手滑改 1/2 会慢 debug = 1 # line-tables-only 比 full 快 30 % codegen-units = 16 # 多单元并行 CodeGen lto = false # dev 别开 LTO incremental = true [profile.release] opt-level = 3 # 最大优化等级 lto = "thin" # 启用 Thin LTO,平衡编译时间和性能 codegen-units = 1 # 减少并行代码生成单元,提升优化但增加编译时间