Rust bindings for the Godot 3 game engine, enabling game development with Rust's type safety and performance.
gdnative is a Rust library that provides native bindings for the Godot 3 game engine, allowing developers to write game logic and extensions in Rust. It enables Rust code to be attached to Godot scene nodes as native scripts, similar to GDScript, leveraging Rust's type safety and performance within the Godot ecosystem.
Game developers using Godot 3 who want to write performance-critical or complex game components in Rust, or Rust developers looking to integrate with a game engine while maintaining Rust's safety guarantees.
Developers choose gdnative for its strong type safety, which reduces runtime errors, and its performance benefits from Rust's zero-cost abstractions, all while integrating seamlessly with the Godot editor for property exports and signals.
Rust bindings for Godot 3
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Rust's strong type system to reduce runtime errors in game logic, as emphasized in the value proposition for minimizing bugs.
Utilizes Rust's zero-cost abstractions for efficient execution of performance-critical components like physics or AI, offering a speed advantage over GDScript.
Native scripts appear in the Godot editor with support for property exports and signals, enabling visual development workflows similar to GDScript.
Supports custom Godot engine versions via feature flags, allowing compatibility with modified or older releases, as detailed in the compatibility list.
No longer actively maintained after Godot 4's release, with the community shifting to GDExtension, limiting bug fixes and long-term support.
Requires Rust toolchain installation, building cdylib libraries, and careful handling of Godot binary versions, with noted compatibility issues on Linux.
Only compatible with Godot 3, and even within that, support is restricted to specific minor releases, necessitating custom builds for others.
Async functionality is labeled as work-in-progress and may not be stable for production use, relying on low-level APIs and external crates like Tokio.