Searching for a simple GUI lib that works

Hello world !
I love Rust and its restrictive syntax that forces us to write good quality code. But when it comes to UI, I would like to have a simple lib that allows me to add, remove, and edit as many widgets as I want without having to even think of memory management and data ownership.

After months of research, the only lib that I found that is easy to use and that really works, is Dioxus. But it uses tauri in background. Do you know a good native alternative ? What kind of security issues can I encounter if I use a web based ui ?

I think you meant restrictive semantics and not syntax :slightly_smiling_face:.

Have you checked out https://areweguiyet.com/? There's also a bunch of topics here on URLO where people ask for recommendations, i.e.:

come up as recent topics when I searched this forum for "GUI".

2 Likes

Iā€™d like to mention crate tk, which is a binding library of Tk library which is the standard GUI library of Python, Ruby and of course Tcl.

Here is the tutorial

1 Like

If you like dioxus state management, but you want a native renderer you could take a look at Freya which is a native renderer for Dioxus based on Skia. You still get to use Dioxus hooks, components, and hot reloading without recompiling for rsx, but with a different set of native elements.

As far as safety goes, web based UI isn't necessarily less safe than a natively rendered application. Dioxus uses the system webview to render which means the rendering part of Dioxus will get the latest browser security patches automatically. The logic of your application runs natively, so the security of that part of your application will be the same as a natively rendered application

1 Like

I'm not sure about "as many widgets as I want without having to even think of memory management and data ownership". :melting_face: If you're going to write any Rust code, you will absolutely need to think about memory and ownership.

For a simple UI crate, you might want to look at imgui.

This application isn't Rust, but if you want to explore what ImGui looks like, try this:

1 Like