CLI 命令
elura 是项目脚手架工具。它不会启动服务器,并且除非传入 --force,否则 不会修改已有文件。
CLI 并非必需:手动搭建展示如何直接使用 Rust 源码和 JSON 配置创建可运行的 Gateway 与 World。
通用语法
text
elura init <TARGET> [OPTIONS]通用选项:
| 选项 | 含义 |
|---|---|
-d, --dir <PATH> | 输出目录,默认为 . |
-f, --force | 覆盖已存在的生成路径 |
--dry-run | 只显示创建、覆盖和冲突,不写文件 |
-h, --help | 显示当前上下文帮助 |
使用 elura help init <target> 查看目标专属帮助。
生成目标
| 目标 | 输出 |
|---|---|
config | 运行时 JSON、环境变量示例和配置说明 |
gateway | src/bin/gateway.rs |
world | src/bin/world.rs |
monolith | 单体入口、JSON 配置和 Compose 文件 |
module | 指定名称的 World 模块骨架 |
route | 类型化 Rust 路由与 protobuf 定义 |
docker | Docker Compose 文件与环境变量示例 |
k8s | Kubernetes/Kustomize 基础配置;kubernetes 是别名 |
all | 项目清单、配置、Gateway、World、Docker 和 Kubernetes |
生成模块
名称必须以小写 ASCII 字母开头,并且只能包含小写字母、数字和下划线。
bash
elura init module --name inventory --dir .命令会创建 src/world/inventory/mod.rs。将模块加入应用模块树,并通过 World::install(或 Monolith::install)安装。
生成路由
应用路由 ID 从 100 开始。1 到 4 由运行时保留,低于 100 的其他值 保留给未来协议扩展。
bash
elura init route \
--module inventory \
--name equip_item \
--id 120 \
--dir .生成:
text
proto/inventory/v2/equip_item.proto
src/world/inventory/equip_item.rs生成器不会修改 mod.rs 或 build.rs。生成的 Rust 文件包含该路由的 Route 实现和注册函数。请在应用中显式接入新模块,使路由所有权保持清晰可审查。
客户端 SDK
CLI 不再生成或安装客户端 SDK。Rust、C++20 和 C# / Unity SDK 分别由独立的 官方 GitHub 仓库维护。仓库地址、安装方式与传输行为见 客户端 SDK。
安全地重新生成
更新基础设施前先执行 dry run:
bash
elura init k8s --dir . --dry-run如果存在冲突,先比较自定义文件与当前模板,再决定是否使用 --force。 生成文件属于应用代码,不是可随意丢弃的构建产物。