生成的项目
elura init all 会创建一个可编译的上层应用。Elura 提供模板,但生成的文件 属于你的应用,应该按业务需要继续修改。
CLI 并非必需。参阅手动搭建,使用普通 Rust 文件组装最小的 Gateway 与 World 应用。
text
.
├── Cargo.toml
├── Dockerfile
├── .dockerignore
├── .gitignore
├── .env.example
├── config
│ ├── README.md
│ ├── elura.env.example
│ ├── application.env.example
│ ├── gateway.json
│ ├── world.json
│ ├── distributed.json
│ └── realm-gateways.json
├── deploy
│ ├── README.md
│ ├── docker-compose.yml
│ └── kubernetes
│ ├── README.md
│ ├── kustomization.yaml
│ ├── namespace.yaml
│ ├── secret.example.yaml
│ ├── discovery-config.yaml
│ ├── gateway.yaml
│ ├── world.yaml
│ └── network-policy.yaml
└── src
└── bin
├── gateway.rs
└── world.rs组合根
src/bin/gateway.rs 和 src/bin/world.rs 是应用的组合根。每个入口都会:
- 定义应用自有的
AppConfig。 - 读取 JSON 与环境变量。
- 将密钥写入被 Serde 跳过的运行时配置字段。
- 构造所选的服务发现或基础设施适配器。
- 注册业务路由并启动 Launcher。
Elura 不会代替应用读取配置。你可以把 AppConfig::load() 替换成配置中心、 密钥管理器或其他文件格式,而无需修改运行时。
生成的默认值
JSON 文件只包含安全的非密钥开发默认值。运行时配置使用严格的 deny_unknown_fields,拼错的字段会在启动时失败,而不是被静默忽略。
敏感值通过环境变量注入:
APP_TICKET_KEY用于签发和验证客户端认证票据。APP_INTERNAL_TOKEN用于认证 Gateway 到 World 的命令。APP_ADMIN_TOKEN保护指标、调试和管理操作端点。
环境变量参考列出了模板使用的全部变量。
依赖与功能开关
生成的清单默认启用 adapters:
toml
[dependencies]
prost = "0.14"
elura = { version = "0.1.1", features = ["adapters"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "signal"] }只启用应用真正需要的功能。例如 Redis:
toml
elura = { version = "0.1.1", features = ["redis"] }完整矩阵见 Crate 与功能开关。