LibrePCB is revamping their UI with Slint to deliver a sleek, modern experience for their open-source EDA tool. In their latest blog post, they share a preview of LibrePCB 2.0’s new UI and the story behind migrating their 10+ year old Qt C++ codebase to Rust + Slint.
- Add 3D graphics with new WGPU support (works with Bevy).
- Build Rust UIs for iPhone & iPad.
- Import Figma design tokens into your app.
- Smarter live preview & debug console
I like it in theory but the small demos I've played with lack a lot of the details that GUI toolkits have converged upon. Small behavioural things ingrained in usage patterns that have to be reimplemented.
First two that come to mind are tab/shift-tab navigation and being able to adjust sliders roughly with arrow keys.
Based on the discussion with our community, we added a clause in our CLA - https://cla-assistant.io/slint-ui/slint - to ensure that Slint will always be made available under an open source license as well as a royalty-free license.
"We believe that open-source software development and communities are the foundation for a healthy ecosystem of high-quality software, where everyone can learn, improve and give back. We commit to upholding this foundation and pledge by promising to continue to develop Slint in the open under an open-source license compliant with the Open Source Definition.
Further, we commit to provide a royalty-free license for those who develop desktop or web applications and do not want to use open-source components under copyleft licenses."
For non-commercial and personal projects, the runtime licenses are free.
For commercial projects, the online form https://slint.dev/get-price (from https://slint.dev/pricing page) automatically sends an email with pricing info (no marketing person is involved :) ). Note: you need to enter your business email in the form.
Slint (https://slint.dev) is an open source declarative GUI toolkit to create elegant, modern, and native GUI for embedded, desktop, and web applications. One of the USPs of Slint is that it supports multiple programming languages such as C++, Rust, and JavaScript. Recently, one of the Slint community members added support for C#. Check out Matheus' YouTube video where he walks through the demo applications -- https://www.youtube.com/watch?v=EwLFhk5RUwE
Qt is only needed if you want native looking widgets. Otherwise, another style will be used for widget, which does not look native. In the future, we plan to have native backend using the native API, which will allow native widgets without using Qt.