rusty_spine 0.2.0

Spine runtime for Rust (and wasm!) transpiled from the official C Runtime.
Documentation

rusty_spine

Spine runtime for Rust (and wasm!) transpiled from the official C Runtime. Supports Spine 4.1.

[dependencies]
rusty_spine = "0.2.0"

Online demo!

Rust API

A Rust API is provided on top of the C API, because working with C APIs directly in Rust is tedious and error prone. It's made to be as thin a wrapper as possible.

The Rust API is unstable and changes often.

Rust API Documentation

C API

If you wish to use the C API directly (either because the Rust API lacks a feature or for performance reasons), it is available under the rusty_spine::c import. See the C example.

C API Documentation

License

Because this project uses the official Spine Runtime, you must follow the Spine Runtimes License Agreement. If using the libc crate (via the use_libc feature), then see the libc crate for licensing. If using the built-in (wasm compatible) libc implementation, you must follow the BSD 3-clause license of The Regents of the University of California. See the LICENSE file for complete licenses. The Rust code is licensed under dual MIT / Apache-2.0 but with no attribution necessary. All contributions must agree to this licensing.

Features

use_libc

Default: no

A small subset of libc is provided in this repo to avoid a dependency on libc and to allow the code to run in the wasm32-unknown-unknown target. However, it's possible to rely on the OS implementation of libc instead by using the use_libc feature.

draw_functions

Default: yes

Provides helper functions for generating mesh data, as well as the SkeletonController helper struct.

egui_debugger

Default: no

Provides an egui debugger window for viewing skeleton and animation state. See it in action by running the bevy example with this feature enabled:

cargo run --release --example bevy --features egui_debugger