Slint’s target platforms are Windows x86-64, macOS Intel or Apple Silicon, Linux, Linux-based embedded platforms, and web via WebAssembly, though this last is primarily for demos rather than production code. The Slint runtime fits in less than 300KB RAM, making it an attractive choice for developers of embedded systems.
There are four different styles for Slint user interface widgets: fluent (Windows), material (Google), Cupertino (Mac) and – new in this release – cosmic (Pop!_OS). Pop!_OS is a Linux distribution developed by System76.
Additional APIs in version 1.4 include a double-clicked callback for TouchArea components, the ability to keep the event loop alive without any displayed windows to support running in a system tray, and a programmatic option to show a window fullscreen.
The team also revealed, in the post introducing 1.4, that the Slint compiler has been optimized to speed application compile times by up to 50 percent.
The GUI framework space is a crowded one, though less so for Rust than for other languages. Tauri is perhaps the best known, though this uses HTML rendered in a Webview – likely to use more system resources than Slint at runtime.
Other options include gtk-rs, for using the GNOME widget toolkit with Rust; Iced, which is inspired by the Elm language but is still a work in progress; and Azul which uses Mozilla’s WebRender engine.
Why not Google’s Flutter for a cross-platform GUI? Flutter is now the most popular tool for this – but for developers in search of something lighter weight that does not require coding in Dart, Slint has its place.