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 Nice! Sounds like an exciting project! 🤓

I'm currently building a GUI app in tauri, too (with a Vue frontend) and I'm really happy with it. My notebook from 2013 is struggling with comp times and RAM hungry rust-analyzer, but apart from that it's a very good DX.

(Funnily enough, I've started with a TUI, too, but wasn't the right fit).

Is your app going to talk to a web api and store data in a database (hence the need for axum)?

@janriemer
Not directly. My backend is developed with tower and exposing the app functionality via Services is natural because of this. Exposing the whole backend via axum to a Frontend just feels natural, because that makes the whole thing easily Frontend agnostic, so adding a TUI later on that same API base is a no-brainer.

@musicmatze Ah, got you, thanks!

Reason I'm asking: tauri itself has the concept of a backend and frontend:
https://tauri.app/develop/calling-rust/

So I assume your data flow might end up like the following:

leptos -> tauri backend (commands) -> axum backend

I'm looking forward to what you're building. Have fun!🙂

Calling Rust from the Frontend

The cross-platform app building toolkit

Tauri

@janriemer
Yes that will probably be the idea.

I am building a distributed social network.