rusteal 0.8.0

Rust bindings for Unreal Engine 5.8.2
rusteal-0.8.0 is not a library.

Rusteal

Crates.io License dependency status


Rust bindings for Unreal Engine 5.8

Rusteal lets you write Unreal Engine games and plugins in Rust: gameplay, reusable gameplay systems, editor tools. Your Rust code compiles to a shared library that is loaded by a small UE C++ plugin. All UE API calls cross the FFI boundary through a function pointer table, no C++ compilation required during Rust iteration.

⚠️ Early Stage Project — Rusteal is under active development and not ready for production use. APIs will change without notice, documentation is incomplete, and many UE features are not yet covered. Contributions and feedback are welcome, but please do not use this for shipping projects.


Why use Rusteal

When gameplay becomes too complex or demanding for Blueprint graphs, the usual next step is C++. Rusteal makes Rust an alternative for that transition, bringing native performance with compiler checks against common memory and concurrency errors. Because your gameplay builds independently of Unreal’s C++ pipeline and reloads into the running editor, moving to native code also preserves a quick cycle of making changes and trying them in the game. Your Rust classes remain available to Blueprints, so designers can keep building on that logic as it grows. You also gain access to Rust’s ecosystem of crates.

Future migration to UE6

We are aware of the deep changes Unreal Engine 6 makes to the engine's foundations: gameplay moving to Verse, Scene Graph replacing Actors and Components, and Blueprints being deprecated once the new framework matures. We follow them in Epic's own UE6 development stream (ue6-main in Epic's Unreal Engine repository), and Rusteal's adaptation happens on the ue6 branch, which stays apart from main until UE6 ships.

So far, adapting Rusteal to UE6 looks feasible, with limited impact: Verse is being built on the same UObject reflection and Unreal Header Tool that Rusteal generates its bindings from. What changes, what Rusteal depends on and the open questions are tracked in the UE6 radar, on the ue6 branch.

Getting started

Making a game or a plugin

The Rusteal game developer's handbook is where everything about using Rusteal lives, from installing the CLI to shipping the game.

Chapter What you find there
Getting started The prerequisites on Linux and Windows, installing the CLI, your first project, its layout, upgrades, and adding Rusteal to an existing project.
Templates Every engine template with its gameplay written in Rust (first-person, third-person, top-down, vehicle, vr, ar, intro), each variant with its screenshot, controls and classes.
Features Gameplay any template can take with --feature: copycat mannequins, checkpoints, triggers and doors, the tour pieces, and the RustRover setup.
The rusteal CLI The build pipeline, binding more of the engine, development and release builds, platform optimizations.
The iteration loop Hot reload, rusteal watch, console commands, logging and tests without the engine.
Classes and the engine API Declaring classes, properties, components, events, functions, interfaces, structs and enums; calling the engine, spawning, assets, timers, traces, delegates and errors.
Gameplay recipes Movement, cameras, animation, combat, projectiles, pickups, physics, UI, AI, vehicles, VR, AR, saving and more, taken from the templates.
Systems and plugins Subsystems, project settings, console variables, background work, data assets; gameplay plugins, editor tools and packaging them.
Shipping and reference Packaging the game; every command, attribute and type, the known limits and troubleshooting.

Contributing to Rusteal

The Rusteal developer's handbook explains how Rusteal works inside and how to change it: its crates, the rusteal CLI and the Unreal Engine plugins.

Chapter What you find there
How Rusteal works From the engine's reflection to the bindings, the boundary between Rust and C++, Rust classes the engine sees, hot reload, games and plugins.
Setting up a checkout The prerequisites, .env and cargo xtask dev-setup for clangd and the C# exporter.
Testing a change The workspace checks, a test project on the checkout, and --runtime-path.
Templates Porting an engine template to Rust, the template directories, features.
Releases and versions One version for everything, where it comes from, and the pipeline that publishes it.

Acknowledgments

Rusteal is a hard fork of uika by VioletHelianthus, who designed and wrote the foundation this project stands on: the reflection-driven code generator, the UHT exporter plugin, the reification of Rust structs as UClasses, and the runtime. Thank you.

Rusteal does not intend to stay compatible with the original uika, unless its author wants to port the improvements back. From here on it develops the Unreal bindings independently.

Platform support

Platform Status
Linux (x64) Supported
Windows (x64) Supported
macOS Not yet tested

Rusteal does not build for Android, iOS or consoles yet; that work is under way (Known limits).

License

Licensed under either of:

at your option.