finds.dev← search

// the find

godot-rust/gdnative

★ 3,621 · Rust · MIT · updated Dec 2025

Rust bindings for Godot 3

Rust bindings for Godot 3's GDNative interface, letting you write native scripts in Rust that plug into the Godot editor and scene tree instead of GDScript. It's for anyone still shipping a Godot 3 project who wants Rust's type system and performance for gameplay code.

The macro-driven API (#[derive(NativeClass)], #[methods]) maps cleanly onto Godot's node/script model without much boilerplate. Godot 3.5.1 support is first-class and custom engine builds are supported via a custom-godot feature flag for pinned/older versions. Ten runnable examples cover real scenarios (signals, RPC, async/Tokio, scene instancing, custom resources), not just a hello-world toy. CI matrix (full-ci.yml, minimal-ci.yml) suggests the bindings were exercised across configurations rather than tested ad hoc.

The README leads with a maintenance notice: this library is dead, all effort moved to gdext for Godot 4, and 'no large-scale features are planned anymore' — anything you build on this has a shrinking support horizon. Hard-locked to Godot 3, which itself is EOL upstream, so you're binding Rust to an engine version nobody's patching. GDNative's API doesn't strictly follow SemVer and Rust can't model Godot's default-parameter methods 1:1, which the docs admit causes friction keeping bindings in sync with engine versions. Linux users get a specific warning about Flatpak/Snap/AppImage Godot builds silently breaking native library loading — a footgun baked into the platform, not the bindings.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →