← Back to context

Comment by sev_verso

1 day ago

I've been using the editor since the early days and have always been a fan of its visual look and feel, so I was pretty happy to see its UI library open sourced.

I wish GPUI could become the go-to Rust UI library and not just an editor backend.

For that, a couple of changes would be highly desirable: being able to switch the GPU backend from Metal to wgpu (so it could be mixed with vello, for instance), and the ability to integrate into an existing event loop like egui allows you to. If this were easy to do, I would switch from egui in a heartbeat.

> I wish GPUI could become the go-to Rust UI library and not just an editor backend.

In case you find it useful, I recently stumbled upon this project:

https://github.com/longbridge/gpui-component

"UI components for building fantastic desktop applications using GPUI."

  • I took a look at gpui-component a while ago when assessing GPUI for a project I was working on. IANAL but was dissuaded because it's almost certainly not compliant with the Zed license--gpui-component "borrows" gpui code patterns lifted straight from the main zed repo, which therefore must be AGPL/GPL (unlike the gpui-only which is Apache IIRC). Caveat emptor (caveat user?).

There's never going to be one GUI library to rule them all, but I find iced the best Rust library at the moment and likely for the foreseeable future.

I'm beating a dead horse here but the challenge is a11y. Chromium wrappers get a11y for free; bespoke UI frameworks must implement accesskit (or something) which is a lot of work and something that (imo sadly) many small teams decide is not worth the investment.

What's so good about GPUI?

  • I haven't used it, but it caught my attention when I read the Text Rendering section of this post:

    https://zed.dev/blog/videogame#text-rendering

    It looks like their approach could nicely solve a problem that's shared by almost every new GUI toolkit I've tried: text looks terrible, or at least out of place when surrounded by applications built with the desktop's native toolkit.

  • Clean and polished design, concise Tailwind-style API, and last but not least sustained 120 FPS across complex UI.