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.

Rust GUI ecosystem overview

203 pointsby z0mbie42over 5 years ago

24 comments

maelnover 5 years ago
Some of the criteria are insanely subjective. For example: look. First off, as far as I remember, Qt and Gtk can be configured to use the OS theme, which mean that your GUI will respect the overall desktop theme. Electron does nothing of the sort and rely entirely on you to provide a good looking design. Responsive UI: Depending on how you use Qt or Gtk, you can easily be responsive using the various layout provided, at no extra cost.<p>Finally, one big point that is not mentioned is accessibility. If most browser handle accessibility very nicely with the basic HTML components, if you start to do anything remotely advanced you gonna have to be careful and correctly implement ARIA norm, which most don&#x27;t. Native UI framework are not perfect either, but can behave better in a lot of cases (it&#x27;s not a clear cut though).<p>Electron or local-server + webapp is really nice. Having done front end development as well has &quot;native&quot; application (with Qt), I can really appreciate how easier it is do to custom components using web technology, but I think we tend to dismiss their disadvantages too quickly.
评论 #20777752 未加载
评论 #20777905 未加载
enriqutoover 5 years ago
I also contend the supposed &quot;ugliness&quot; of gtk. This is at most a personal issue; in my view gtk programs are typically beautiful and Qt and Electron are unbearably ugly.
评论 #20776490 未加载
评论 #20776294 未加载
评论 #20776981 未加载
评论 #20776225 未加载
评论 #20777940 未加载
评论 #20776231 未加载
评论 #20778102 未加载
Hittonover 5 years ago
I&#x27;ve not learned Rust yet, but unless it does behave really weird, I can&#x27;t believe that Electron and Qt have roughly same RAM usage. In my experience Electron has usually 2 to 3 times higher RAM requirements than Qt application of similar scope.
评论 #20781006 未加载
评论 #20780572 未加载
generichumanover 5 years ago
I gave up trying to use native libraries for UI on cross-platform desktop programs.<p>I&#x27;m playing with the idea to create a Web UI and launch it automatically from the Rust server by opening a browser and pointing it at localhost. No electron bloat.<p>Has anyone tried this, any thoughts?
评论 #20776674 未加载
评论 #20780912 未加载
评论 #20777744 未加载
评论 #20776715 未加载
评论 #20776560 未加载
评论 #20776514 未加载
评论 #20776725 未加载
评论 #20777421 未加载
评论 #20778701 未加载
评论 #20776630 未加载
评论 #20781201 未加载
cosararaover 5 years ago
When it says gtk is &quot;really really ugly&quot;, is it referring to API or UI? I wrote a small app with it and I am happy with the result. <a href="https:&#x2F;&#x2F;github.com&#x2F;cosarara&#x2F;fucking-weeb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cosarara&#x2F;fucking-weeb</a>
评论 #20776240 未加载
评论 #20776228 未加载
评论 #20776189 未加载
评论 #20783813 未加载
评论 #20778015 未加载
rubyn00bieover 5 years ago
This is a pretty terrible write up; and I honestly don&#x27;t know how the author subjectively arrived at the conclusion that only QT, GTK, and Electron are worth testing. I sort of wish context was given for this as the summary, as &quot;get shit done&quot; could hardly be implied from this list.<p>Just my two cents.
评论 #20781272 未加载
ameliusover 5 years ago
See also: <a href="https:&#x2F;&#x2F;areweguiyet.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;areweguiyet.com&#x2F;</a>
dgellowover 5 years ago
I don&#x27;t understand the critic about subjective criteria, people commenting here seem to assume that the list is supposed to be an objective and complete comparison of GUIs. The author evaluated the solutions for their own needs, of course it will be subjective. If they find something too ugly for the UX they want to have, that&#x27;s a perfectly valid reason to filter something out.
评论 #20782103 未加载
leshowover 5 years ago
How are you going to claim that Gtk doesn&#x27;t have a &#x27;responsive UI&#x27;? It&#x27;s native, it&#x27;s very responsive.<p>Unless you mean &#x27;responsive&#x27; like &#x27;works on mobile&#x27;. Which seems kind of a moot point considering we&#x27;re talking about desktop applications.
评论 #20778419 未加载
评论 #20781302 未加载
z0mbie42over 5 years ago
Hi, author here,<p>I understand the critics against the subjective criteria like &quot;Look&quot;.<p>Look means: the ability to create a native app which is at least beautiful as modern WebApps.<p>e.g. Slack or VSCode (Electron) are beautiful, while fractal or NoteCase (Gtk) are not.
评论 #20778153 未加载
评论 #20778121 未加载
kurihoover 5 years ago
It&#x27;s really sad to see that all the native options like druid got dismissed for being &quot;not mature enough&quot;. Guess I&#x27;ll stick to WebAssembly and CLI Apps.
评论 #20777824 未加载
评论 #20777866 未加载
评论 #20776922 未加载
c-smileover 5 years ago
Sciter&#x2F;Rust (<a href="https:&#x2F;&#x2F;github.com&#x2F;sciter-sdk&#x2F;rust-sciter" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sciter-sdk&#x2F;rust-sciter</a>) was not tested: <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;z0mbie42&#x2F;rust_gui_ecosystem_overview#not-tested" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;z0mbie42&#x2F;rust_gui_ecosystem_overview#not-...</a><p>but conclusion &quot;The most promising seems to be Flutter&quot; was made already :)
kodablahover 5 years ago
&gt; The following options exists but were not included because they are not mature enough.<p>&gt; Web broswer communicating with a Rust local server: too much hacky, insecure? (DNS rebinding attacks) and does not support native features like tray icons.<p>You should not discount this, Golang solutions like lorca [0] do just fine with this using devtools proto for comm (systray can be a separate lib). DNS rebinding attacks are just a host header check away from mitigated. At the least, check out webview [1] (and its in-dev successor impl [2]) for not requiring Chrome and having more direct control.<p>Also, you should look at CEF which ships with Chromium bundled (it&#x27;s not too huge) and has a C-FFI easily consumable from Rust. I have used this approach with success.<p>0 - <a href="https:&#x2F;&#x2F;github.com&#x2F;zserge&#x2F;lorca" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;zserge&#x2F;lorca</a> 1 - <a href="https:&#x2F;&#x2F;github.com&#x2F;zserge&#x2F;webview" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;zserge&#x2F;webview</a> 2 - <a href="https:&#x2F;&#x2F;github.com&#x2F;zserge&#x2F;webview&#x2F;tree&#x2F;webview-x" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;zserge&#x2F;webview&#x2F;tree&#x2F;webview-x</a>
评论 #20778683 未加载
malkiaover 5 years ago
An important aspect to compare is docking. Any application that can span on multiple monitors, soon or later requires proper docking (window in window, etc.). Even if it&#x27;s a single window, it&#x27;s still a challenge.<p>Qt is almost there, but not as good as say Visual Studio (whatever docking framework they are using).<p>To be more blunt, any content creation tool (3D model&#x2F;animation&#x2F;etc editor) needs to support it. Take any Autodesk product for example (most of them use Qt).<p>Dear IMGUI in this respect added recently pretty good docking system, and it&#x27;s not in this list - someone else also mentioned that <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20776848" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20776848</a><p>Thanks!
评论 #20782116 未加载
todd3834over 5 years ago
Lately I’ve been experimenting with the idea of fully native cross platform desktop apps. Latest iteration is to write the majority of the app in Go and communicate with a native frontend over TCP. So far I’m finding that building a really simple UI and communicating over TCP to be pretty simple. At the same time I keep the majority of the business logic in the go server. It probably doesn’t work for all app types but it is fun to play with.<p>With Rust I imagine taking advantage of LLVM you could just import the business logic into whatever app environment you need to and work it that way. Has anyone here tried that? I would love to hear how it went.
评论 #20779471 未加载
评论 #20779364 未加载
billfruitover 5 years ago
I feel that the brushed metal tone or shading that earlier gnome&#x2F;2.x gtk+ had was very aesthetically pleasing, not seen it replicated anywhere else.
评论 #20778873 未加载
ScottFreeover 5 years ago
No mention of imgui?
评论 #20779103 未加载
评论 #20777291 未加载
bvdaover 5 years ago
What are the ratings based on? What are the criteria to receive a ++ rating?
评论 #20780549 未加载
bla3over 5 years ago
It&#x27;s almost if the GUI ecosystem is mostly independent of the language used. That&#x27;s because GUI frameworks are a lot of work, so it makes more sense to have bindings to existing ones.
sayusasugiover 5 years ago
An Electron flame war seems inevitable. It&#x27;s fine for quick cross platform support but it absolutely screws over the user. QT is <i>far</i> from perfect but at least it&#x27;s native.
评论 #20779726 未加载
buildzrover 5 years ago
What exactly does &quot;security&quot; mean in this?<p>Difficulty of reverse engineering?
评论 #20781351 未加载
baybal2over 5 years ago
I for long searched for a way to use GTK from nodejs. There are some proof of concept level bindings, but none exposing any much decent amount of the underlying functionality.<p>Same for Qt I think
评论 #20778167 未加载
_pmf_over 5 years ago
Tangential: does Chromium have a native widget abstraction? Are there any projects that extract this layer and expose it?
评论 #20776744 未加载
评论 #20778422 未加载
评论 #20776584 未加载
hacker_9over 5 years ago
Where is imgui bindings in this list?