I gave myself a goal to write a #rustlang GUI app that does following:

1. app pops up as text input where you enter a query
2. app seeks the query on Wikipedia and shows combo box with possible Wikipedia pages
3. you choose and hit enter
4. app fetches summary (forst paragraph(s)) and displays the text under combo box

a) GTK - mature but total mess and sorcery
b) equi - very early, widget poor
c) iced -very early, lacks docs, but doable

1/2

I realized that Rust and decent GUI doesn't exist yet. The projects lack changelogs, tutorials, good docs, migration guides. When I updated Iced 0.10 - 0.12 the app completely broke. No migration notes, no changelog with noteds. Even such small thing as programmatically focusing a text input is gone now. So - TUI:

d) ratatui - very early, lacks detailed docs, still dont know how to create a text input
e) no UI - a prompt, select "widget" (inquire crate), pure output - BOOM, done

2/2
#rustlang

@n1 I agree with you that Rust isn't completely ready for beatiful GUIs yet. But I think that egui is the best option for a functional GUI. Ratatui is the one for a TUI, but this is a different category. From my experience, they are well documented (not perfect though) and have many official examples. If you need any help with them, don't hesitate to ping me :)
@mo8it thanks ... the question here is how do I ping you ... just realized Mastodon lacks private messages :)
@n1 You can send private messages on Mastodon. I will send you one.
@n1 did you try #relm4? It is GTK but idiomatic
n1 (@[email protected])

@[email protected] Just checked that. Sadly you still have to tinker around with @strong macros and the update() method, that grows into one huge match {} over time is just gross. Damn it.

Fosstodon

@n1
Try #Relm4 for easier access to #GTK in Rust.

#rust

@chfkch isn't it just a wrapper around GTK?
@n1
Yes, but it abstracts most of the confusing stuff away.
@chfkch Just checked that. Sadly you still have to tinker around with @strong macros and the update() method, that grows into one huge match {} over time is just gross. Damn it.
@n1
Yes, a big state machine would be awesome.
@n1 I've built a relatively complex app using qt/qml combined with rust through #cxxqt. Its pretty good. Or #slint is basically the same but more rusty if you don't need to run a web view.

@chriscochrun Qt is great, what a shame it cannot be utilized directly with Rust.

Slint is a whole another level of sorcery with their Slint language. Basically whole UI is one big macro.