That kind of defeats the purpose?
> Alternatively, there is an X11 backend available, although it is currently missing quite a few features.
It would be good to also support Wayland compositors without GTK.
That kind of defeats the purpose?
> Alternatively, there is an X11 backend available, although it is currently missing quite a few features.
It would be good to also support Wayland compositors without GTK.
In 2020 you need HiDPI support, Wayland, and accessibility. You probably also want a toolkit that has a strong developer community. GTK and Qt have these. FLTK is under active development but it is missing a lot modern features. Maybe it will get there by 2022.
The other option, rolling your own, is a ton of work and a quite a bit of "reinventing the wheel". It's certainly possible but it needs a passionate and dedicated team.
Ultimately, I believe our approach will yield higher quality results, but there's a lot to learn from Iced as well.
At the lower level, for some things you really have to integrate deeply with the platform, and for others (text layout is one), there are advantages, including faster builds and smaller binaries. (Ultimately I'd like to have a highly GPU accelerated 2D graphics library that does everything, including text, but that's some ways off and doesn't block current work)
I guess I misunderstood the intent behind the project. I thought it's like a full alternative to GTK / Qt but in Rust which would be really nice to have, but I get that it would be a much bigger project than something built on top of them.
There's a gallery of screenshots here. https://github.com/ocornut/imgui/issues/123
Unlike the others mentioned it is an immediate mode GUI, which is an interesting approach.
There are other options. Maybe unpopular options, but options nonetheless: Electron, and immediate mode GUIs.
They certainly have downsides. But there are "professional" GUI applications in widespread use that are written with both.
So, which text and vector renderer are you proposing? That's not snark, that's a real question.
A GUI that can actually scale requires both a vector rendering engine and a text rendering engine.
On Linux, that's Cairo and Pango--which are Gtk.
I believe that your only other open source vector engine is Skia, from Google.
Am I missing any other options?
I was going to write that there are several, but you already mention most of them. You say though:
"On Linux, that's Cairo and Pango--which are Gtk."
Yeah, they're not really GTK.
Or in any case that's not what people mean when they say they wished a Rust GUI that doesn't use GTK. They mean one that doesn't use GTK+ the lib and widgets, not whether it can use Cairo and Pango...
Exposing a nice, standardized Rust interface would be the purpose. Then you can switch the backend later (for a custom Rust one or something else).
Which purpose?
* I hope it will become a viable alternative to C/C++ for graphics programming. Unfortunately, last I checked as of ~6 months ago, Rust graphics libraries are still in their infancy.
* I hope it will eventually replace Electron as the go-to for multiplatform app development. IMO this cannot realistically be done by relying on native APIs / platform-specific tools like GTK, since we need something closer to functional reactive programming a la React/Svelte/SolidJS, with more emphasis on performance. If I wanted to build a GTK app, I would build a GTK app. See also [1].
I believe Rust has the potential to accomplish both goals, partially due to the design of the language, but mostly because I have faith in the very smart people who work on Rust to make good decisions in the long-term.
[1] https://raphlinus.github.io/rust/druid/2020/09/25/principled...
This already exists, it is called Free Pascal + Lazarus.
Admittedly, I know nothing about what's actually going on behind the scenes when it comes to graphics + Rust. Just my first impressions as an outsider. I found the existing libraries quite difficult to get started with.
(I'm someone who doesn't know much Rust and is waiting for some of this functionality to mature -- someone already invested in Rust is certainly in a better position to take advantage of the existing graphics support)
[1] https://github.com/MaikKlein/ash/
[2] https://github.com/brendanzab/gl-rsFrom the article:
> One strength is Rust’s wide “dynamic range” – the ability to describe application logic in high level terms while still being attentive to low level details.
Disagree. To be GTK 3/4 are main UI toolkits. If your software manages to look like the rest of my GUIs (read themes, fonts) then I will be happy.
However, if I install your software and it's looking like alien - nah. It's better be looking amazing.
I.e. imagine being able to use this library on something like RedoxOS, not just on Linux. That would fit the idea.
And it's kinda orthogonal to using it on OSes that don't have their own UI layer, because that can be implemented as another backend. For example, wxWidgets wraps native widgets on Win32/macOS/X11 (with Gtk considered "native" for the latter) - but it also has wxUniversal, that renders by itself, and is the backend normally used on platforms like DirectFB.