this post was submitted on 23 Sep 2025
24 points (96.2% liked)

Rust

7364 readers
10 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 2 years ago
MODERATORS
 

I can't figure out which crate(s) I should be using to create GUI applications. I only want to create simple 2D games like Conway's Game of Life, so I don't need anything fancy. At most I would like to be able to easily create polygons.

I've already looked at Are we game yet?, but it would be a waste of time to learn 20 different crates in order to decide on which one to use. Bevy is far too heavy and doesn't even work if you are low on memory. SDL3 isn't natively supported without some workarounds (but SDL2 is fine). Winit tries to use insecure X11 unless I manually add it as a dependency with the Wayland feature. I plan to eventually learn GTK4+Adwaitta, but that's unnecessary for simple games.

GUI in Rust seams like a mess. There's so many crates ranging from simple to complicated. Information becomes outdated quickly, so LLMs often fail to help. There's few clear comparisons between crates to help you decide, so it becomes a headache. I'm just looking for a modern, safe, easy, minimal GUI crate.

Does anyone have any advice?

you are viewing a single comment's thread
view the rest of the comments
[–] TehPers@beehaw.org 3 points 5 days ago* (last edited 5 days ago)

The title seems a bit confusing. Do you want a game library, or a GUI library?

Assuming you're doing game dev, bevy is probably the furthest along, though there are a few alternatives. You can enable only the features and plugins you need to lower the memory footprint, though it's not clear to me how low of memory you're looking for.

As far as I know, everything uses winit. If you need the feature enabled, you can add it as a dependency directly (in Cargo.toml) and enable the feature.

If you're having a hard time, maybe consider a completed game engine. Have you looked at Godot? Does it need to be in Rust?