Remix.run Logo
▲ bryanlarsen 5 hours ago

IMO, the top GUI framework crates for Rust are windows or native-windows-gui, objc2 or icrate for MacOS and gtk4-rs for Linux only. Actually for MacOS / iOS I'd use uniffi to embed the rust core in a SwiftUI app.

In 2026 IMO it's much better to use an LLM to keep 3 separate native front ends in sync than it is to try and use any sort of cross platform UI.

▲kleeklee 5 hours ago | parent | next [-]

Keeping 3 separate native front ends in sync with custom visual components means you end up building a cross-platform UI. The only apps you can build without custom components are trivial ones.

▲bryanlarsen 5 hours ago | parent [-]

All 3 have a way of embedding webviews. In my perhaps limited experience, all desire for custom visual components are either specious or for read-only presentation views. In my opinion all controls should be native, but if you ask for a fancy data presentation I have no qualms reaching for a webview.

▲jasomill 3 hours ago | parent | next [-]

So long as the web views provide for accessibility (and thus UI automation), this sounds perfectly reasonable for the majority of applications.

Speaking of which, my dream is an "HTML light" standard with a subset of functionality specifically designed for local UI use, ideally with lightweight non-browser engines supporting this standard shipping with all major OS platforms as shared system components.

We had browsers that ran on systems with 8 MB RAM, after all, and while it's not a fair comparison, there's no technical reason why a system with three orders of magnitude more RAM should struggle to run more than a handful of applications merely because they use HTML and JavaScript for rendering.

▲nicoburns 3 hours ago | parent [-]

I am building such a lightweight browser engine: https://github.com/dioxuslabs/blitz. It targets most of HTML/CSS, but leaves out (or makes optinal) a lot of the extra stuff that browsers pull in). It also has the option to use Rust instead of JavaScript for the scripting layer.

Though 8 MB RAM is a non-starter when a single RGBA texture @4k is ~30Mb and modern system often require 2 or 3 for buffering. Somewhere around the 60MB to 100MB mark seems to be the base for modern setups, at least on macOS.

▲simonask 3 hours ago | parent | prev [-]

> perhaps limited experience

New rule: Programmers with limited UI experience (that includes myself) should abstain from weighing in on what UI designers and programmers need.

▲tadfisher 5 hours ago | parent | prev | next [-]

An advantage of this approach is that everyone's screen readers and other accessibility tools actually work with your app.

▲treyd 5 hours ago | parent | prev [-]

There's also relm4 which builds a Elm-like paradigm on top of gtk4-rs.