FUI-RS: retained Rust UI for WebAssembly and native desktop without a WebView

I have reached the point where FUI-RS needs use outside its own repository.

FUI-RS is a retained-mode Rust UI SDK built on the EffinDOM runtime. One retained application model targets the browser through WebAssembly and native macOS, Windows and Linux hosts. Native builds do not embed Chromium or use a system WebView.

The architecture is intentionally not React-like. Controls are constructed once and mutated directly. ui! is retained-tree construction syntax rather than a recurring render function. The aim is to avoid repeated tree reconstruction, reconciliation and short-lived allocation churn while preserving stable control identity.

The browser target was implemented first. That forced the runtime to deal with ARIA projection, mirrored DOM editors, IME, selectable text, clipboard conventions, touch selection, keyboard focus and password managers rather than treating canvas as only a framebuffer.

Current state:

  • Feature-rich early access, not 1.0
  • Web, macOS, Windows and Linux desktop
  • No iOS or Android yet (I'm planning to do it next)
  • Linux AT-SPI accessibility implemented and tested against a real accessibility bus
  • AGPL or commercial licence for the official FUI SDK
  • One independent community application so far: Galaga-RS - play here: galaga-rs

More info:

Demo:

Repository:

I am particularly interested in feedback on the retained Rust API, ownership ergonomics, packaging workflow and missing controls that block real applications.

Wow interesting. Is there a benchmark with Swift, React Native, Flutter, and Kotlin? And Vanilla Javascript for web

Not yet. But I think there's a lot of different parts to benchmark here if we really want to get into it. We also need to be careful of scoping - Swift is primarily native Apple UI, React Native and Flutter have different host models, Kotlin has multiple UI stacks. "Performance" could mean startup time, transferred size, installed size, memory, frame time, update latency, layout throughput, text rendering, text input handling etc.

Which metric and target would be most useful to you?