Current state of GUI development in Rust?


Rust with gtk-rs, along with gstreamer-rs are working fine for me writing Linux GTK+/GStreamer desktop applications. D with GtkD is also very good though, and in some ways better, on some ways not so good.


I really find I need a GUI library for my purposes, and I have been watching every thread about ui development in RUST with great anticipation.

I have tinkered with gtk-rs, writing a custom browser which interfaces with a restful backend for an asset management prototype. I definitely feel that it worked pretty well. Most of my problems had to do with issues with gtk: Lack of documentation for gtk3 for doing more advanced things, missing functionality with table views, really weird limitations with tree views, etc…

I think that the authors are doing a very good job, and it is the most mature of the frameworks that i have played with, although, I have encountered some performance issues with resizing windows.

I have also played with Azul, and I enjoyed the api, but it had definite issues with laying out components, non-unform scaling, etc.

I really like the feel of Cursive (tui), which relies on channels to handle events. But, its a tui not a GUI.

I also liked Conrod, although I was a bit confused by the lack of a fully abstracted back end, as well as very limited default primitives ( no shadows, single border color, no ramps, etc. It seems like it would be a lot of work to customize the widgets to make them look professional). It appears to be written with a very particular ui style in mind, as evidenced by the main author’s ui work. Not really styled for the desktop.

I ultimately miss Qt widgets though. A lot of effort has gone into Qt and many graphics intensive applications are written using it (maya, houdini, nuke, katana,etc.)


What problems did you have with Azul specifically? Layout is still a bit problematic in regards to layouting text, otherwise it should technically work. What do you mean by “non-uniform scaling” - do you mean the HiDPI factor?


at least on os x, most of the examples flash red before drawing - the more complex the example, the longer it stays red.
when scaling a window the examples (the table example) would squash or stretch (thats what i meant by non-uniform scaling) and only redraw widgets with correct aspect ratios on mouse up. Stuff like that.

Desktop GUI - What should I use?

flutter-rs might be another choice. But the UI code would be mainly written in Dart, while Rust can take the work that concerns performance, or invoking native libraries.


I like to write UI in plain C, currently on IUP Library. Yes i know, there is a rust binding, but this is not up to date and i like up to date libs. The same i tried with wxWidgets and c++ but…yes…its c++…so i will take plain c. Based on personal reasons i don’t like web based ui.

I tried gtk but currently i am working on windows and was not able to build all the requirements by myself, but i like to build all by myself, too. :slight_smile:

Maybe someone did the same or can point some alternatives? I like small binaries with a low level memory footprint in process,