Desktop GUI - What should I use?

Whilst searching for a GUI framework for Rust, for a semi-pet project, I've come across many frameworks for GUIs. Many of them are awesome, but may of them are unstable or dead.
A few that I found include:

  • orbTk (one of the best I've found.) gitlab origin here.
  • GTK-rs (unstable, dependant on GTK and therefore painful on Windows and MacOS)
  • Azul (unstable, webrender-based, actively developed)
  • Conrod (unstable, incomplete, lacking in documentation)
  • Relm (unstable, dependant on GTK and therefore painful on Windows and MacOS)
  • Windows GUI (unmaintained, alpha, windows-only)
  • Cedar (unstable, uncomplete)
  • Limn (unstable, linux-only, inactive)

There are probably others, but they're hard-to-find, probably with similar problems.
I'm asking for a real app, to be deployed on Windows, MacOS and Linux, to all kinds of people (including power users and accesability tool users), what is the best library to use?

4 Likes

In my opinion, gtk-rs is the safest platform for writing a cross platform GUI application completely in Rust. It wraps a pretty accomplished library - one that has been used to write GIMP, which certainly qualifies as a "real app". gtk-rs has regular releases, and a large number of contributors.

But a lot depends upon the type of application you are going to write. What does it actually do? What widgets will you need? Does the toolkit in question have you covered? Can you find clear documentation and/or examples?

Personally, for GUI applications, I tend to reach for Qt (even though I work at the company where FLTK was born) and C++, or PyQt/PySide.

2 Likes

Did you try azul? I am curious how it scales from small projects to bigger one...

As said, I need support for Windows, MacOS and Linux, preferably first class, one install (this tends to mean no dynamic linking or weird terminal stuff for the end user, which is why I'm unsure about GTK.).

The product is a "mass communication tool", which gives you an idea of what widgets it'll need - simple text inputs, possibly ritch text inputs, small and large buttons, switcher bars, embedded images, etc.

PS. Just found this reddit post, links some things that may be useful for bundling gtk into a one-click installer.

I haven't tried it, but others have had problems with it.

Hopefuly these issues are fixed soon, as Azul shows great promise, and will be in some ways familliar to many web developers and electron users.

2 Likes