gdnative VS bevy

Compare gdnative vs bevy and see what are their differences.


Rust bindings for Godot 3 (by godot-rust)


A refreshingly simple data-driven game engine built in Rust (by bevyengine)
Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Access the most powerful time series database as a service
  • SaaSHub - Software Alternatives and Reviews
gdnative bevy
87 494
3,296 22,844
2.4% 5.7%
9.3 9.9
8 days ago 1 day ago
Rust Rust
MIT License MIT OR Apache-2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of gdnative. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-16.


Posts with mentions or reviews of bevy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-26.
  • What’s an actual use case for Rust
    14 projects | | 26 Mar 2023
    Game engines (Bevy, Fyrox)
  • How do you feel about comments made by Tim Sweeney?
    5 projects | | 26 Mar 2023
  • Bevy Jam #3
    3 projects | | 23 Mar 2023
    After the quick start there isn't as much documentation yet as one might hope, but I find you can learn to do just about anything you need by reading the extensive examples. There are tons of them in GitHub of which a subset have been turned into interactive WebGL apps on the main site.
  • Writing a Compiler and a Virtual Machine in Rust
    2 projects | | 20 Mar 2023
    well, wasm threads are weird for some reason. Issues like remind me that wasm is still a moving target.
  • 3D character animation example for Bevy
    2 projects | | 19 Mar 2023
    There are some examples here:
  • OK so whose gonna tell them
    5 projects | | 12 Mar 2023
    Rust is much newer a language than Java. Give it time. There is clearly industry interest: check out the sponsors list on
  • Fellow Rust enthusiasts: What "sucks" about Rust?
    25 projects | | 10 Mar 2023
    Binaries file-sizes in debug are just insanely big, a Hello World will be around ~4MB, an empty Bevy project will be around ~600MB.
  • Announcing!
    13 projects | | 7 Mar 2023
    $ git clone ; cd bevy $ cargo install --locked cargo-public-api $ cargo public-api -ss -p bevy_utils diff v0.9.1..v0.10.0 Removed items from the public API ================================= (none) Changed items in the public API =============================== (none) Added items to the public API ============================= +pub use bevy_utils::<> +pub use bevy_utils::petgraph +pub use bevy_utils::thiserror +pub fn bevy_utils::synccell::SyncCell::read(&self) -> &T where T: core::marker::Sync +pub mod bevy_utils::syncunsafecell +pub use bevy_utils::syncunsafecell::UnsafeCell +#[repr(transparent)] pub struct bevy_utils::syncunsafecell::SyncUnsafeCell +impl bevy_utils::syncunsafecell::SyncUnsafeCell +pub fn bevy_utils::syncunsafecell::SyncUnsafeCell::from_mut(t: &mut T) -> &bevy_utils::syncunsafecell::SyncUnsafeCell +pub const fn bevy_utils::syncunsafecell::SyncUnsafeCell::get(&self) -> *mut T +pub fn bevy_utils::syncunsafecell::SyncUnsafeCell::get_mut(&mut self) -> &mut T +pub const fn bevy_utils::syncunsafecell::SyncUnsafeCell::raw_get(this: *const Self) -> *mut T ...
  • Bevy 0.10: data oriented game engine built in Rust
    5 projects | | 6 Mar 2023
    Firstly, Bevy has an internal crate called bevy_reflect, and it can handle most of the things you would usually use reflection for. For example, exists which uses Bevy's internal reflect derive to make the values available via an egui-based UI. Changing simple values (like an f32, or a boolean) can be done at runtime, and if I remember correctly all you actually need to do is to add the plugin. Taking a look at the README you can "patch" types with new values, iterate over struct fields, serialize + deserialize, and generally do stuff like that.
    3 projects | | 6 Mar 2023
    It doesn't work currently. The only problem is that plugin initialization must be asynchronous, so you have to pass control back to the browser to allow it to initialize the WebGPU api properly[1]. I hacked async plugin initialization into a fork for Bevy 0.8[2], but I never got it to 100% work because Chrome had already moved onto a newer WGSL syntax. In theory if you do the same changes for 0.10 as I did for 0.8 it should allow WebGPU to work (and I plan on doing this in the next couple days).


What are some alternatives?

When comparing gdnative and bevy you can also consider the following projects:

Amethyst - Data-oriented and data-driven game engine written in Rust

Godot - Godot Engine – Multi-platform 2D and 3D game engine

Fyrox - 3D and 2D game engine written in Rust

RG3D - 3D and 2D game engine written in Rust [Moved to:]

piston - A modular game engine written in Rust

specs - Specs - Parallel ECS

ggez - Rust library to create a Good Game Easily

wgpu - Safe and portable GPU abstraction in Rust, implementing WebGPU API.

macroquad - Cross-platform game engine in Rust.

raylib - A simple and easy-to-use library to enjoy videogames programming

egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

mediapipe - Cross-platform, customizable ML solutions for live and streaming media.