So I have read some more about the whole #dioxus vs #tauri plus #leptos plus #axum for a #rust #rustlang #desktop app.

From what I read by now, I would say that I will try the tauri route next. I would still prefer if Dioxus would just work, but what makes me wary about whether Dioxus would be a sustainable choice is that there's a lot of issues in the Dioxus repository that do not even have a reply by a maintainer. My own issues (which are relatively young!) have only little interaction. I get that this is an open source project and maintainer overload and so on, sure. But there's also something about Dioxus being funded? So there are full-time devs (plural!) working on it? What can I say? This makes me wary.

Going down that tauri route would mean that I would need to build the whole thing myself. That could work, but is more than I would have liked to do. I want to develop my app functionality, not set up a GUI development environment.

I could also go for a TUI first, but tbh, I would rather like to have a GUI first, with a clean API that I can then reuse to build a TUI on top of it. Not sure why, the other way around would probably work as well 🤔.

Either way, I would then try leptos as framework for the app, because it looks rather good from what I can read from its documentation, and I can use axum in the backend, which I think fits my needs as well. (Btw developing this with ratatui with a axum backend would also be possible, but that's not the "native way" for a ratatui app, but much more for a leptos app as I understand it, so I expect less headaches here).

I hope I can get a MVP fast, so I can get back to developing my core application stuff, because there's sooo much missing still.

@musicmatze

What do you need from the desktop app, requirements wise? Since you mentioned even considering a TUI app, i might have some ideas:

  • egui.rs is probably the easiest to use UI framework for Rust. with eframe you can make desktop and web apps in it. Probably the fastest to build a MVP.
  • bevys UI framework is slooowly getting there. Its still far from ideal out of the box, but theres quite a few community plugins to improve it and its pretty flexible. if your project could benefit from 3d or 2d rendering at all, it may be worth a try. Plus: really active maintainers.

those are the ones i can "recommend" (ehh, more point out as options) as i've used them myself

@laund RE Requirements:well... it should be a normal desktop app. The backend code might be decoupled (a local service that the GUI connects to) at some point,... but that really is it.

I had a look at egui some time ago (maybe a year) and while I liked the idea, I think the whole webview thing is a more sustainable route. I also played with Slint and liked the general idea, but still ... the webview way feels better somehow. Also the licensing situation with slint is just ... not to my taste if I may say.

All of this is "for fun", so there's no business case behind this. So far, the webview stuff did not make me mad, so there's still "having fun" involved... I might resort to Slint or egui if I get frustrated (likely in this order), but I am not there yet 😆

@laund re requirements "normal desktop app"... so: notifications, filesystem access, networing, all that stuff ... that's what I mean by "normal desktop app"

@musicmatze yea, egui+eframe fulfills those criteria.

For sustainability: I doubt egui will go away. Its been around long enough and stayed roughly the same, at this point its used by quite a lot of projects, i'd rate it about as sustainable as ratatui.

Personally, i find the webview stuff extremely frustrating due to the long and storied (read as : filled with inane decisions nobody wanted to revert) history of web standards and the surprisingly large performance impact for what should be simple applications, but if you're having fun, go ahead. Its certainly not a rare choice.

as for slint: its never been in consideration for me due to the licensing, so yea, i get you on that