shura

shura is a safe, fast and cross-platform 2D component-based game framework written in rust. shura helps you to manage big games with a component system, scene managing and its group system. See the features section for all of shura's features.

shura is currently in an early beta version and many features most likely have some issues, so feedback is very welcome.

Getting started

Get started by copying the template. The template includes the library and has some additional config to make sure your game runs on all supported platforms.

If you don't care for other platforms than PC you can just add the following to your Cargo.toml:

[dependencies] shura = "*"

A good way to learn shura is through the provided examples or through reading the code documentation.

Features

Future features:

Safety:

The entire engine including the component system is completely without any unsafeties except some data conversion mandatory to pass data to the GPU.

Cross-platform

shura is currently only tested on Windows 10 / 11, Linux, Android and on the web with WASM. macOS and iOS are currently untested, but are likely to work.

All examples are running on said platforms, but not every example has support for mobile.

The template uses run-wasm to run on the web and cargo-apk to run on android.

Android

When compiling for android make sure the following is added in the Cargo.toml:

[lib] crate-type = ["cdylib"] path = "src/main.rs"

Run Examples

Checkout some cross-platform examples in the examples directory.

Run a postprocessing example (Located in /examples/postprocessing):

Native: cargo run --release

Android (See Android) : cargo apk run --release

Browser (Make sure that hardware acceleration is enabled) http://3.71.15.62 Or build it yourself: cargo run-wasm --release --package bunnymark