Comment by ogoffart

12 hours ago

Since others are sharing Rust GUI libraries, I’ll mention Slint [https://slint.rs] a native GUI toolkit written Rust. It has a declarative domain specific languages, editor tools, and has been stable with no breaking API changes since 2023. I'm one of the developers.

Anyone considering it will need to decide for themselves how to feel about it, but I think it's important to prospective users to highlight that the current licensing model for Slint requires either GPL3-compatible licensing of your work, advertising for Slint within your own software, or paying ongoing licensing fees and/or royalties.

https://github.com/slint-ui/slint/blob/master/FAQ.md#licensi...

I only mention this because those constraints are notably more restrictive than the vast majority of the Rust crate ecosystem.

I take no particular stance on whether this is a fair or good practice or about the technical suitability of Slint beyond this concern, I just think it's a hurdle for most people so they should be made aware early and often.

  • I really like this model of ”GPL3, but commercial licenses available”. Means you can have a sustainable business without sacrificing open source. I wish it was more widespread, the prevalence of extremely permissive licenses has led to so many enormous companies using open source without giving back.

  • We're building Slint as a business. It takes a lot of time and effort to maintain and improve it. We're not looking to support users who want to use it in proprietary software and give absolutely nothing back, not even a small credit. That doesn’t feel like too much to ask. (Even the MIT license requires including a copyright notice.)

    Honestly, it’s a bit sad that for some, using libraries for free isn't enough, they also expect to do so without even mentioning the project.

One of the things I appreciate a lot about Slint is that you guys are, as far as I can tell, the only GUI toolkit devs who thought to include a menu widget. Desktop applications need a menu bar! So that means that, for me at least, Slint is the only viable option out there.

I love how y'all target embedded. I love EGUI for PC applications, but will try Slint next time I'm doing an embedded device that has a display.

A few months ago I was working on a debugger for some oddball VM. Slint suffered from the same issue most (all?) rust GUI toolkits seem to suffer from: immaturity. Either the widgets I was looking for weren't there or customizing them was a huge endeavor. With Slint specifically it was the inability to style text.

For my use case it was easier to get up and running with a TUI toolkit (ratatui in my case). Plenty of limitations there too alas and I finally landed on Qt…