top | item 47003441

(no title)

paddy_m | 16 days ago

I'd love to read a writeup of the state of Rust GUI and the ecosystem if you could point me at one.

discuss

order

IshKebab|16 days ago

https://www.boringcactus.com/2025/04/13/2025-survey-of-rust-...

I started writing a program that needed to have a table with 1 million rows. This means it needs to be virtualised. Pretty common in GUI libraries. The only Rust GUI library I found that could do this easily was gpui-component (https://github.com/longbridge/gpui-component). It also renders text crisply (rules out egui), looks nice with the default style (rules out GTK, FLTK, etc.), isn't web-based (rules out Dioxus), was pretty easy to use and the developers were very responsive.

Definitely the best option today (I would say it's probably the first option that I haven't hated in some way). The only other reasonable choices I would say are:

* egui - doesn't render very nicely and some of the APIs are amateurish, but it's quick and it works. Good option for simple tools.

* Iced - looks nice and seemed to work fairly well. No virtualised lists though.

* Slint (though in some ways it is weird and it requires quite a lot of boilerplate setup).

All the others will cause you pain in some way. I think the "ones to watch" are:

* Makepad - from the demos I've seen this looks really cool, especially for arty GUI projects like synthesizers and car UIs. However it has basically no documentation so don't bother yet.

* Xilem - this is an attempt to make an 100% perfect Rust GUI library, which is cool and all but I imagine it also will never be finished.

nicoburns|16 days ago

I wouldn't bother watching Makepad. They're in the process of rewriting the entire thing with AI and (it seems to me) destroying any value they has accumulated. And I also suspect Xilem will never be finished.

Beyond egui/Iced/Slint, I'd say the "ones to watch" are:

* Freya

* Floem

* Vizia

I think all three of those offer virtualized lists.

Dioxus Native, the non-webview version of Dioxus is also nearing readiness.

eviks|10 days ago

> * Makepad - from the demos I've seen this looks really cool, especially for arty GUI projects like synthesizers and car UIs. However it has basically no documentation so don't bother yet.

Have you seen their intro that also has an image viewer building tutorial?

https://publish.obsidian.md/makepad-docs/Makepad+Introductio...

WD-42|16 days ago

I’m currently writing an application that uses virtual lists in GTK: GtkListView, GtkGridView, there may be others. You ruled out GTK because of its looks I guess, I’m targeting Linux so the looks are perfect.

cess11|16 days ago

I've been somewhat involved in a project using Iced this week, seems pretty reasonable. Not sure how tricky it would be to e.g. invent custom widgets though.

chiffaa|16 days ago

I believe latest Iced versions do have a `Lazy` widget wrapper, but I believe that effectively means you need to make your own virtual list on top of it