Schlankes UI-Toolkit in Rust: Slint mit neuer kostenfreier Lizenz und 3D-Grafik

Das schlanke UI-Toolkit bringt in Version 1.1 neben technischen Neuerungen wie OpenGL-Anbindung eine zusätzliche kostenfreie Lizenz ohne Copyleft-Klausel.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen

(Bild: Andrey Suslov/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Knapp drei Monate nach der ersten Hauptversion ist Slint 1.1 erschienen. Das UI-Framework bekommt im aktuellen Release Makros für Übersetzungen und öffnet sich mit OpenGL für dreidimensionale Grafiken. Außerdem gibt es Ergänzungen für barrierefreie Anwendungen.

Jenseits der technischen Neuerungen ist vor allem die neue kostenfreie Lizenz nennenswert. Die im April veröffentlichte Version 1.0 war wahlweise unter einer kommerziellen oder der GPLv3-Lizenz verfügbar. Die neue Slint Royalty-free Desktop and Web Applications License erlaubt die kostenfreie Integration in eigene Desktop- und Web-Anwendungen ohne Copyleft-Klausel. Nicht erlaubt ist die Verwendung in Anwendungen für Embedded-Systeme. Auch die Weitergabe der Software, ohne sie in eine Anwendung zu integrieren, ist mit der neuen Lizenz untersagt, aber weiterhin mit der Copyleft-Lizenz GPLv3 erlaubt.

Slint 1.1 führt das Makro @tr() ein, um zu übersetzende Textpassagen zu markieren. Als Tool für die Übersetzung kommt GNU gettext zum Einsatz. Ein Tool erstellt aus den markierten Texten in den .slint-Dateien eine Vorlage im POT-Format (Portable Object Template) für gettext.

Auch wenn der Fokus von Slint explizit auf 2D-Anwendungen liegt, bringt das aktuelle Release eine Anbindung an OpenGL, um 3D-Inhalte in die Oberfläche zu integrieren. Eine Beispielanwendung auf GitHub zeigt die Integration einer OpenGL-Szene in Slint. Sie rendert zunächst OpenGL-Code und importiert anschließend die erstellte Textur in ein Image-Element.

Die Beispielanwendung Slint OpenGL Texture Example nutzt OpenGL für 3D-Elemente.

(Bild: Slint)

Bei den Widgets setzt Slint 1.1 auf den Fluent Style nach den Fluent-2-Designrichtlinien von Microsoft. Außerdem haben zwei neue Widgets Einzug in das Toolkit gehalten: Switch und ProgressIndicator.

Die Widget-Gallerie zu Slint zeigt den Fluent Style und die neuen Widgets.

(Bild: Slint)

Für barrierefreie Anwendungen setzt Version 1.1 auf die Cross-Plattform-Library AccessKit. Damit entfällt für Funktionen wie Screenreader-Anbindung die Abhängigkeit vom Qt-Framework, das Version 1.0 für die Acessibility-Features genutzt hatte. Schließlich ist bei den technischen Neuerungen noch nennenswert, dass Slint nun Enums kennt.

Slint-Anwendungen sind darauf ausgelegt, auch auf Geräten mit wenig Speicher und einem leistungsschwachen Prozessor zu laufen. Ein Blogbeitrag zeigt eine Demo, die auf einem Raspberry Pi Pico mit 264 KByte RAM, 2 MByte Flash-Speicher und dem auf Cortex M0+ basierten RP2040-Mikrocontroller läuft.

Das UI-Toolkit war ursprünglich als SixtyFPS gestartet, und das Unternehmen hinter Slint trägt nach wie vor den Namen SixtyFPS GmbH. Der Name leitet sich von der flüssigen Bildfrequenz von 60 Bildern pro Sekunde (Frames per Second, fps) ab.

Anfang 2022 tauften die Entwickler das Projekt um, nachdem sie wohl mehrfach Rückmeldung bekommen hatten, dass 60 fps überholt seien in Zeiten, in denen viele Bildschirme deutlich höhere Bildwiederholraten bieten.

Die Kernentwickler des Projekts, Oliver Goffart und Simon Hausmann, haben Cross-Plattform-Erfahrung rund um das Qt-Framework. Sie waren in dem auf Qt aufsetzenden KDE-Projekt involviert und arbeiteten bei Trolltech, der Mutter des Qt Frameworks. Hausmann hat bei der Qt Company als leitender Entwickler für die QtQml-Engine Erfahrungen im Bereich Auszeichnungssprachen mit Qt QML (Qt Modeling Language) gesammelt.

Weitere Details zu Slint 1.1 lassen sich dem Slint-Blog entnehmen. Sourcecode und Beispielanwendungen finden sich auf GitHub.

(rme)