September 4, 2023 by Slint Team
Slint 1.2 Released with Enhanced Platform Abstraction
We're excited to introduce Slint version 1.2, which includes a wide range of new features while maintaining full backwards compatibility. This release continues our commitment to empowering developers with efficient tools for UI development. Let's take a look at the highlights.
Improved Platform API
Slint's platform API is a low-level interface that provides abstractions for window surfaces and the event loop. We initially created this API to make it possible to integrate Slint with Rust on any microcontroller with software rendering. Our built-in backends use it to make applications run on Wayland or Windows out of the box. In version 1.2, we've significantly extended the public API for Rust as well as C++ to enable new use-cases:
- Embed a Slint UI as a plugin in foreign applications, such as digital audio workstations (DAW).
- Implement your own backend for custom windowing systems.
- Develop C++ applications with Slint on MCUs, as the majority of microcontrollers SDKs are based on C/C++.
Support for Espressif
The Espressif IDF framework is a C-based SDK that makes it easy to target MCUs from the ESP32 family. The SDK modularizes software development using components and provides clean hardware abstractions. ESP-IDF is a great fit for us and our customers, so we went straight ahead and built a Slint ESP-IDF component that implements our new C++ platform layer. Add this component to your project with just one command and you're all set to implement a graphical user interface:
idf.py add-dependency slint/slint
Often the user interface on an embedded device is implemented via a single full-screen application. In such a device, a windowing system like X11 or Wayland adds no value and slows down the device startup. In Slint 1.2 we solve this with our new lightweight, experimental LinuxKMS backend. This backend provides the following benefits:
- Renders directly to the screen with OpenGL or Vulkan using Linux's KMS/DRI infrastructure, for maximum performance.
- Reads directly from a touch pad, touch screen, mouse, or keyboard using
libseatto eliminate the need to run the application as root.
Other Features and Bug Fixes
ReverseModel(Rust/C++) to display a model in reverse order. Thank you Guilhem Vallat for the Rust contribution.
- Added a new walkthrough to the Slint VS code extension for a better on-boarding experience.
For a complete list of all changes, check out the Changelog.
Updating to Slint 1.2 is effortless. Rust users can run
to bring their application up to date. For those using the CMake integration with
FetchContent, update the
release/1.2 for automatic tracking of 1.2.x releases.
Thank you to everyone who contributed, especially the numerous external contributors. Slint 1.2 marks a significant update that underlines our mission to empower developers to create innovative user interfaces, by targeting more platforms and devices, lowering system requirements, and continuously enhancing our widgets.
If you run into any issues or notice missing functionality, please don't hesitate to let us know. We'd love to get your feedback. You can get in touch with us via our GitHub site, email, or via chat on our Mattermost instance. Thank you for being a part of the Slint community ❤️.