The Linebender blog covers Rust GUI and graphics projects like Vello and Xilem, including SIMD, stroke expansion and curve math.
HN commenters find the projects fun to follow and point to Vello and Xilem as the Rust 2D rendering and UI work. A Vello developer also comments.
Some time ago I did research for myself on the topic of GUI libraries/frameworks. Below are some things from this study. The modern tendency for all frameworks to use 2D rendering engines to draw all widgets from scratch instead of using platforms' widgets and APIs. Usually, they use Skia.
I can recommend reading blog posts by Raph Levien [1], who is one of the founders of Linebender [2] and Xilem [3]. Xilem is a Rust cross-platform GUI framework intended to use GPU for rendering in the first place. Earlier, they tried to develop their own GPU meta-API, then they switched to WGPU [4] and developed their own 2D rendering engine instead of using "standard" Skia, like many others.
JetBrains develops Compose Multiplatform [5]: using the same Android API - Jetpack Compose, but for many platforms and in Kotlin. They also use Skia but are considering switching to Impeller (a new 2D rendering engine in Flutter) because of performance issues in Skia with shaders compiling.
Slint [6], was founded by 3 guys who's been working for a long time in Qt Group. It is written in Rust but uses DSL to develop GUI. As I understand, they try to solve the main fundamental issues in Qt.
MAUI, as I understand it, was Xamarin.Forms and now Microsoft tries to develop it.
Another interesting thing. There is a part of each GUI framework, a system to automatically place widgets on the screen - layouting, something like a grid, table, and so on. Several years ago, Apple had a big boom in the…
Disclaimer: I work on Vello[0], but not on the Skia integration directly
My understanding, having not dug into it too much, is that the Skia integration does exist, but isn't enabled by default/any clients at the moment. That is, I don't know that this integration is shipping anywhere.
Vello still has some definite rough edges at the moment, so I'm not sure I'd recommend using it in a production application at the moment. We also don't have a C API, which might rule it out for some cases where you'd be considering Skia.
[0]: https://linebender.org/blog/xilem-2024/
This is not a fast way to sort on GPU. The fastest known sorting algorithm on CUDA is Onesweep, which uses a lot of sophisticated techniques to take advantage of GPU-style parallelism and work around its limitations.
Linebender is working (slowly) on adapting these ideas to GPUs more portably. There's a wiki page here with some resources:
https://linebender.org/wiki/gpu/sorting/
It's a lot of fun to follow, especially as its so different than my developmental expertise.
You can see the current projects (13 active) on https://linebender.org , and several members post interesting checkins in https://xi.zulipchat.com/
Have a look at line bender’s projects
https://linebender.org/
They are based on this work, Vello is the vector graphic rendering library and Xilem a high level ui framework.
As mentioned at the start, this follows upon Raph's post a week ago,
Rust GUI Xilem 2024 plans. https://linebender.org/blog/xilem-2024/