跳到正文

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、环境变量示例和配置说明
gatewaysrc/bin/gateway.rs
worldsrc/bin/world.rs
monolith单体入口、JSON 配置和 Compose 文件
module指定名称的 World 模块骨架
route类型化 Rust 路由与 protobuf 定义
dockerDocker Compose 文件与环境变量示例
k8sKubernetes/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 开始。14 由运行时保留,低于 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.rsbuild.rs。生成的 Rust 文件包含该路由的 Route 实现和注册函数。请在应用中显式接入新模块,使路由所有权保持清晰可审查。

客户端 SDK

CLI 不再生成或安装客户端 SDK。Rust、C++20 和 C# / Unity SDK 分别由独立的 官方 GitHub 仓库维护。仓库地址、安装方式与传输行为见 客户端 SDK

安全地重新生成

更新基础设施前先执行 dry run:

bash
elura init k8s --dir . --dry-run

如果存在冲突,先比较自定义文件与当前模板,再决定是否使用 --force。 生成文件属于应用代码,不是可随意丢弃的构建产物。

基于 MIT 许可证发布。