| ▲ | IshKebab 2 hours 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 an hour ago | parent | next [-] | |||||||
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. | ||||||||
| ▲ | WD-42 2 hours ago | parent | prev | next [-] | |||||||
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. | ||||||||
| ||||||||
| ▲ | chiffaa 2 hours ago | parent | prev | next [-] | |||||||
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 | ||||||||
| ||||||||
| ▲ | cess11 2 hours ago | parent | prev [-] | |||||||
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. | ||||||||