Lean UI toolkit (almost) from Berlin: Slint requires less than 300 KB of RAM

After almost three years of development and two years after the first presentation, Slint has appeared in the stable version 1.0. The toolkit for creating graphical user interfaces is kept particularly slim so that it can also be used on embedded systems with little memory. It is written in Rust but also provides APIs for C++ and JavaScript.

With the 1.0 release, the project leaves the development phase and is considered ready for productive use. The core developers of the project are based in Hohen Neuendorf near Berlin. The name Slint stands for Sstraight forward, Lightweight, Native Toolkit.

Slint relies on a declarative language that describes the UI with its elements. The documentation shows a code example for a simple dialog box with three buttons:

import { StandardButton, Button } from "std-widgets.slint";
export component Example inherits Dialog {
    Text {
      text: "This is a dialog box";
    }
    StandardButton { kind: ok; }
    StandardButton { kind: cancel; }
    Button {
      text: "More Info";
      dialog-button-role: action;
    }
}

A compiler translates the UI description into native code. Slint provides APIs to implement the business logic in different programming languages.



The compiler translates the declaration, and the Slint runtime provides APIs to hook up the business logic in Rust, C++, or JavaScript.

(Image: Slint repository on GitHub)

There is an extension for Visual Studio Code that offers syntax highlighting, auto-completion, navigation and refactoring for slint declarations. A live preview window shows the changes as you enter the code.



In combination with Visual Studio Code, Slint offers a live preview.

(Image: Slint)

If you want to try Slint on the fly, you can use the interactive SlintPad in the browser, which displays a code editor, a preview window and additional information about the properties of the elements and the tree structure of the UI.

Slint applications are designed to run on devices with little memory and a low-performance processor. A blog post shows a demo running on a Raspberry Pi Pico with 264KB RAM, 2MB flash memory and the Cortex M0+ based RP2040 microcontroller.



Slint applications run on the Raspberry Pi Pico with associated touchscreen.

(Image: Slint)

Otherwise Slint applications run on Linux, macOS, Windows, Blackberry QNX and on WebAssembly. Slint applications can also be run on systems without an operating system.

Slint is available under both the GPLv3 and a proprietary license. The latter is free under the Ambassador License tag for “ambassadors” who contribute to the dissemination of the project. The commercial license costs 59 euros per month per user and is unlimited: Although it no longer offers updates after termination, it can continue to be used, unlike what was originally planned for Qt 6.x. Additionally, SixtyFPS, the company behind Slint, offers premium support.

The toolkit originally started as SixtyFPS, and the company behind Slint is still called SixtyFPS GmbH. The name derives from the smooth frame rate of 60 frames per second (fps).

At the beginning of 2022, the developers renamed the project after they had received repeated feedback that 60 fps was outdated in times when many screens offer significantly higher refresh rates.

The core developers of the project, Oliver Goffart and Simon Hausmann, had previously gained cross-platform experience around the Qt framework, which has just been released in version 6.5. You were involved in the KDE project on top of Qt and worked at Trolltech, the mother of the Qt framework. Hausmann gained markup language experience with Qt QML (Qt Modeling Language) at the Qt Company as lead developer for the QtQml engine.

More details on the release of Slint 1.0 can be found on the Slint blog. The source code can be found on GitHub. There are also some tutorials there. The Slint site provides links to the docs for working with Rust, C++, and NodeJS, as well as some demos in WebAssembly.


(rme)

To home page

Related Posts

Hot News

Trending

usefull links

robis robis robis