Has anyone here ever tried using Rust’s Qt or GTK bindings, or another library, to make a complex GUI beyond a few simple forms or dialog boxes? I keep hearing that the language’s architecture makes it really hard to do any sort of advanced GUI development on it, but what’s the actual experience like? How would you compare it to say, native Qt or GTK using C++/C respectively, or things like JavaFX or Flutter? Maybe even the .NET Framework or whatever Apple uses for their platform? Would you actually recommend Rust over any of those?
haven’t done much GUIs on rust but i can say the Qt/GTK experience isn’t good, Qt/GTK rely too much on multiple ownership and on rust that’s a big no-no (basically, you either have to put everything behind a
RefCell
or useunsafe
everywhere)thankfully that problem can be avoided by simply writing the library in rust (although that does bring other problems)
The only GUI software written in Rust I’ve seen so far is Fractal but I’m not sure we could say it’s a complex GUI tho :/
They are actually working on rewriting the software from scratch with GTK4We are working on rewriting Fractal from scratch using GTK4 and the matrix-rust-sdk. This effort is called fractal-next.
Lots of other Gnome apps are written in Rust as well.
Oh I didn’t know that! :o
Well tbh I don’t usually use Gnome apps.
Depending on how serious your work is, you might want to consider https://github.com/antoyo/relm . It let’s you work with an easier Elm-like abstraction on top of Gtk. Also have at look at this for the general state of the GUI ecosystem: https://www.areweguiyet.com/
I’ve only played around with some, but my personal favorite was iced. The GTK and QT binding frameworks seemed overly complex for 99% of use cases.
Czkawka is a rewrite/improved version of FSlint written in Rust. It finds duplicate, broken, and excess files. And it can compare images and videos to find similar media. It uses Gtk (and Glade).
Edit: Oh, and RedoxOS is an entire GUI OS written in rust.
Sorry, I don’t personally have any experience programming Rust. But both of the projects I listed have pretty rapid development so I can’t imagine it’s insanely difficult. Then again maybe the devs are just coding geniuses. The guy that does Redox also works for System76 and a lot of their software is written in Rust.