Welcome to the
godot-rust book! This is a work-in-progress user guide for the Rust bindings to GDNative.
If you're new to
godot-rust, try the Getting Started tutorial first!
For more information about architecture with
godot-rust, the GDNative Overview gives a broad overview for how
godot-rust can be used with a few different use-cases as well as some indepth information for the underlying API.
If have specific code questions that are not covered in the Getting Started guide, please check out the Frequently Asked Questions or Recipes for some additional resources related to configuring
If you're new to Rust, before getting started, it is highly recommended that you familiarize yourself with all of the concepts outlined in the officially maintained Rust Book before you getting started with
If you have used earlier versions of
godot-rust before, see Migrating from godot-rust 0.8 for a quick guided tour to the new API.
Outside of personal preference, Rust may be a good choice for your game for some of the following reasons:
- Native levels of performance.
- Memory safety validated at compile time.*
- Fearless Concurrency.*
- The leveraging the cargo build system to build the GDNative library.
- The ability to leverage Rust's crate ecosystem from crates.io.
*: Compile time memory and thread safety guarantees only apply to the Rust code. As the user is allowed to call into the Godot engine (C++ code, via GDNative Foreign Function Interface) or into user-defined scripts (GDScript), some of the validity checks are outside godot-rust's control. However,
godot-rust guides the user by making clear which operations are potentially unsafe.
For more information about the
godot-rust project and how it may be useful to you, please refer to the FAQ Section for project specific information.
The source repository for this book is hosted on GitHub.
godot-rust bindings, and this user guide, are licensed under the MIT license.