TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Emerging Rust GUI libraries in a WASM world

332 pointsby fork-bomberabout 2 years ago

20 comments

eslaughtabout 2 years ago
I&#x27;ve been building a profiler UI in egui recently, and have been pretty happy with it. I didn&#x27;t try out all of the options in this article (there are rather a lot of them), but I did try several, and out of the ones I tried, egui was <i>by far</i> the highest performance. Since my goal is to shove as many rectangles onto the screen as possible, this was the killer feature for me, but it was also nice that it did most of the other GUI stuff I needed.<p>WASM demo here if you want to see it (with dummy, and not particularly realistic, profiling data): <a href="https:&#x2F;&#x2F;elliottslaughter.github.io&#x2F;legion-prof-viewer&#x2F;" rel="nofollow">https:&#x2F;&#x2F;elliottslaughter.github.io&#x2F;legion-prof-viewer&#x2F;</a><p>For comparison, the UI I&#x27;m replacing falls down with about 16 nodes worth of data. (The demo has 8192 &quot;nodes&quot; worth of fake data.)
评论 #35723468 未加载
评论 #35724400 未加载
评论 #35725426 未加载
评论 #35725480 未加载
评论 #35723556 未加载
评论 #35724388 未加载
ljsbabout 2 years ago
I hope it&#x27;s OK to add a shameless plug for my Rust WASM framework, Silkenweb [0]. It&#x27;s similar to Leptos and Sycamore in that it&#x27;s signals based, but I&#x27;ve put a lot of effort into making it ergonomic without resorting to a macro DSL. It supports all the usual things like SSR and hydration, along with a few nice extras like scoped CSS.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;silkenweb&#x2F;silkenweb">https:&#x2F;&#x2F;github.com&#x2F;silkenweb&#x2F;silkenweb</a>
评论 #35728542 未加载
评论 #35735909 未加载
评论 #35730523 未加载
mcluckabout 2 years ago
&gt; GUI in Rust progresses with unprecedented speed – 3 months in Rust GUI-land is like 3 years in the mortal world.<p>areweguiyet.rs was started almost exactly 5 years ago. That means it&#x27;s been about 60 mortal years and we still don&#x27;t have a definitive solution to GUIs.
评论 #35723166 未加载
评论 #35724570 未加载
评论 #35730518 未加载
CJeffersonabout 2 years ago
Searched for “accessibility” — 0 results (I couldn’t see anything skimming down the page).<p>Speaking as a Rust user, everyone in Rust land loves insulting Electron, but they have put some solid work into accessibility. In particular, using WASM to draw text with webgl or canvas, instead of DOM, may in the long term be one of the biggest steps back in accessibility ever.
评论 #35723464 未加载
评论 #35723261 未加载
评论 #35723198 未加载
评论 #35745978 未加载
评论 #35723426 未加载
评论 #35724084 未加载
TobyTheDog123about 2 years ago
This may not be the message of the article but as a side-rant:<p>I really don&#x27;t understand the use-case for a Rust-based GUI.<p>Rust&#x27;s syntax, manual memory management, and compile times makes it seem like it&#x27;s really not meant for this kind of workload, but instead for things like compilers, embedded systems, that kind of thing.<p>I understand that not every UI needs to be a cross-platform blah blah blah written in TypeJavaReactScriptJS, or a pixel-painted canvas written in Flutter. I also understand there&#x27;s a use-case for one-off UIs that may not target a browser.<p>Let&#x27;s compare it to something like Golang. Fast compile times, similar libraries, garbage collection -- it seems like something more suited for UIs where there are usually a lot more iterations. Worse performance for sure, but Rust also seems more-than-overkill in that regard for the UI use-case.
评论 #35723561 未加载
评论 #35723750 未加载
评论 #35726825 未加载
评论 #35728607 未加载
评论 #35723663 未加载
klabb3about 2 years ago
I am glad that there are people looking at GUI from the perspective of Rust. Many Rust idioms and patterns, like ownership and immutability, are very promising for GUI development.<p>However, this article also confirms an issue I have observed with the Rust ecosystem, which is fragmentation. It would have made me much more excited to see convergence behind one project than 15 different ones. I think Rust enthusiasts, bless their hearts, are often so excited about the puzzle of the language representations, that the output often ends up being more of a POC than a well-maintained library for users. It seems more-than-usual amount of projects are abandoned when the intellectually stimulating honeymoon phase is over. As a prospective user, this is probably fine for small leaf-dependencies, but it’s a major show-stopper for something like GUI.<p>I’ve never expressed it like this before, but I think there’s a moderately serious issue when a language seduces you away from the domain problem and towards the language itself, even if that is subjectively enjoyable. (In other languages like perhaps Java or C++, the language quirks are at least so dreadful that only masochists are spending more time than necessary on it)
评论 #35724051 未加载
FL33TW00Dabout 2 years ago
The creator of egui has founded a pretty cool company, and their flagship application is built entirely using egui: <a href="https:&#x2F;&#x2F;github.com&#x2F;rerun-io&#x2F;rerun">https:&#x2F;&#x2F;github.com&#x2F;rerun-io&#x2F;rerun</a>
satvikpendemabout 2 years ago
I&#x27;ve been using Flutter with flutter_rust_bridge pretty successfully, seems like a few other people I&#x27;ve talked to are as well, would want to see it covered in this article as well.
crispinbabout 2 years ago
I doubt Rust is going to become used for (the GUI layer of) GUI apps far outside of Rust enthusiast circles. To build a widely attractive ecosystem it needs a dominant framework to which enough of the many widget and theming and distribution libraries and tools necessary for broad adoption attach. Rust&#x27;s culture in this respect is far more Clojure (bolt together your own from a thousand options) than Elixir (just use Phoenix).<p>I have no doubt Rust will be used as part of many GUI apps via Tauri and others. 1Password shows how successful it can be as the real core of an app that has a separate web-tech GUI layer.<p>There&#x27;s enough energy in the Rust ecosystem that I&#x27;m sure niche adoption will continue. But all-Rust apps beyond HN&#x2F;Github-browsing&#x2F;System76 circles? My guess is it&#x27;s unlikely.
评论 #35725758 未加载
Liberonostrudabout 2 years ago
What&#x27;s wrong with TypeScript? Last time I checked all WASM stuff was slower and much heavier than TS&#x2F;JS.
评论 #35726316 未加载
评论 #35723843 未加载
评论 #35723859 未加载
评论 #35735962 未加载
评论 #35723913 未加载
fmeyerabout 2 years ago
Who remembers GWT?<p>I understand the requirements of having a dedicated canvas and a decent UI running on it for things like games, CAD, 3D modeling and image manipulation apps. At the same time I don’t want my web bank using it. And unfortunately that’s usually what comes out from this.
LatticeAnimalabout 2 years ago
That is unfortunate that Druid was discontinued. I really enjoyed working with it a few months ago.
评论 #35723565 未加载
Aerbil313about 2 years ago
Give it enough time, and anything will happen. JS to Rust compiler with DOM bindings. Pure canvas Rust UI frameworks with even better accessibility than Web DOM. Whatever. People are so eager to claim X won’t be able to do that, etc.
preommrabout 2 years ago
The biggest problem is that there is no dominant solution. Right now having a rust-based app is a luxury when there are easier albeit &#x27;dirtier&#x27; solutions. I don&#x27;t have to build something in rust and I am dreadfully afraid that I&#x27;ll spend hundreds of hours building something only for an altenrative to be the emergent solution forcing an expensive rewrite.
eviksabout 2 years ago
Is there a good detailed table with features filter for various frameworks?<p>For example, maybe you feel that VDOM is pure overhead and want to hide all frameworks that use it.<p>It&#x27;s a bit disorienting to read many rather shallow lists with all the various frameworks without a proper convenient way to compare them
vbezhenarabout 2 years ago
I wonder if WebGPU could help with app GUI. I tried to understand how does it work but it seems it&#x27;s all about triangles, so it&#x27;s not really clear if it has any benefit over plain Canvas for standard UI approaches.
评论 #35723212 未加载
评论 #35723971 未加载
low_tech_punkabout 2 years ago
I have my popcorn ready for the battle of WebGPU toolkit implementation. That can be a true differentiator between Rust and other languages.
doodlesdevabout 2 years ago
<a href="https:&#x2F;&#x2F;archive.ph&#x2F;MLUeZ" rel="nofollow">https:&#x2F;&#x2F;archive.ph&#x2F;MLUeZ</a>
Liberonostrudabout 2 years ago
I am betting on Vlang instead. Rust is too complicated for an average person - like me. It&#x27;s basically the Haskell of system programming. V is basically Go made right.
评论 #35723847 未加载
评论 #35723837 未加载
评论 #35742009 未加载
plaguepilledabout 2 years ago
All very exciting to see, but when is crablang going to support this? That&#x27;s the real meat and potatoes in the memory safe space!