Elura
Elura is a Rust framework for online game servers. It provides gateways, world servers, sessions, routing, real-time communication, infrastructure adapters, and third-party service integrations.
The project is currently under active 0.x development, and its API may change.
Gateway and World are independent runtime crates in one Cargo workspace. They share
protocol and discovery contracts through elura-core, while elura-monolith is the
only composition crate that depends on both concrete runtimes.
Workspace
| Crate | Purpose |
|---|---|
elura |
Unified entry point for applications |
elura-core |
Protocols, sessions, routing, and cross-process contracts |
elura-runtime |
Shared lifecycle, security, admin, and observability runtime |
elura-gateway |
Client-facing Gateway runtime |
elura-world |
World command and player-state runtime |
elura-monolith |
Single-process Gateway and World assembly |
elura-adapters |
Redis, SQL, and Kubernetes adapters |
elura-providers |
Identity, messaging, and payment providers |
elura-cli |
Project scaffolding tool |
elura-load |
Connection and request load-testing tool |
Usage
Install the project generator from crates.io:
Then run it in the application directory:
The all target creates a compilable Rust project, local runtime configuration,
a multi-stage Dockerfile, Docker Compose services, and Kubernetes manifests.
Inspect the files that would be generated before writing them:
Generate the ELR2 Gateway-to-client protocol SDKs for C++, C#, and TypeScript:
# Or select one: --language cpp, csharp, or typescript
Run elura --help for the target list, or elura init route --help for
target-specific options. Existing files are preserved unless --force is provided.
Development
This runs formatting, Clippy, tests, Rustdoc, and package validation.
Documentation
Detailed integration, protocol, deployment, and operations documentation will be maintained in a separate GitHub Pages project alongside this repository. This repository only keeps the brief information required for development and the Rustdoc embedded in the source code.