SixtyFPS: Toolkit aus Berlin für grafische UIs mit Rust, C++ und JavaScript

Das Toolkit SixtyFPS wechselt mit dem 0.1-Release von der Experimentierphase in die ernsthafte Entwicklung mit einer eigenen Auszeichnungssprache.

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen

(Bild: Andrey Suslov/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Die Entwickler von SixtyFPS haben das Toolkit zum Erstellen von grafischen User Interfaces in Version 0.1 veröffentlicht. Das Release markiert laut dem zugehörigen Blogeintrag den Übergang vom "Lab Mode", also dem experimentellen Labormodus, in die Phase, in der sich das Toolkit aus Sicht des Teams angemessen für die Entwicklung nutzen lässt.

SixtyFPS zielt auf die plattformübergreifende Entwicklung für Desktopanwendungen und Embedded Devices. Mit Blick auf Letztere ist es schlank ausgelegt und benötigt wohl nur wenige 100 KByte RAM und geringe Prozessorleistung. Erstmals angekündigt hatten die Entwickler das Projekt im November 2020.

Das Toolkit bringt eine eigene Auszeichnungssprache mit dem Namen .60 mit, die zum Festlegen der Positionen, Farben und Inhalte dient. Sie setzt auf eine JSON-Struktur und ist an Cascading Style Sheets angelehnt. Ein einfaches Hello World findet sich im GitHub-Repository:

HelloWorld := Window {
    width: 400px;
    height: 400px;

    Text {
       y: parent.width / 2;
       x: parent.x + 200px;
       text: "Hello, world";
       color: blue;
    }
}

Entwicklerinnen und Entwickler können Farben als Namen oder RGB-Werte und Größenangaben in absoluten oder relativen Werten angeben.

Der SixtyFPS-Compiler übersetzt die .60-Dateien in nativen Code und bietet Anbindung an C++, Rust und JavaScript.

(Bild: SixtyFPS)

Der Compiler achtet beim Übersetzen des Markup-Codes wohl besonders auf ein sparsames Speichermanagement, damit das Programm möglichst wenige malloc-Aufrufe benötigt. Die übersetzten Programme nutzen standardmäßig GPU-Beschleunigung. Für die Darstellung der Steuerelemente setzt SixtyFPS auf ein natives Design für die jeweiligen Plattformen.

Für die Einbindung in Projekte existieren Libraries beziehungsweise Pakete für die Programmiersprachen Rust, C++ und JavaScript beziehungsweise NodeJS. Als virtuelle Spielwiese hat das Team zudem einen interaktiven Online-Editor veröffentlicht.

Wer Visual Studio Code nutzt, findet im Visual Studio Marketplace eine Extension, die Syntaxhervorhebung, Diagnose und Live-Preview bietet. Da sie auf das Language Server Protocol (LPS) setzt, dürfte eine Umsetzung für andere Entwicklungstools wie die Eclipse IDE mit wenig Aufwand umzusetzen sein.

Im Vergleich zu Version 0.06 bietet SixtyFPS 0.1 einen neuen Stil, der Widgets in Microsofts Fluent Design implementiert. Außerdem bringt die Version eine neue API zum dynamischen Erstellen von Images zur Laufzeit mit. Die .60-Auszeichungssprache bekommt Ergänzungen für Bindings, das Layout und die Zusammenarbeit der Threads.

Version 0.1 setzt auf Fluent Design.

(Bild: SixtyFPS)

Der Name des Projekts leitet sich von der flüssigen Bildfrequenz von 60 Bildern pro Sekunde (Frames Per Second, FPS) ab. Die beiden Entwickler des Projekts Oliver Goffart und Simon Hausmann sitzen in Berlin. Beide haben Cross-Plattform-Erfahrungen rund um das Qt-Framework gesammelt. 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 SixtyFPS 0.1 lassen sich dem Blogbeitrag zur Veröffentlichung entnehmen. Das Toolkit findet sich auf GitHub. Für die Lizenzierung gilt ein ähnliches Modell wie für Qt: Die Software steht unter GPLv3-Lizenz sowie unter kommerzieller Lizenz zur Verfügung. Daneben existiert zum Start ein Ambassador-Programm, das "Botschaftern", die zur Verbreitung des Projekts beitragen, eine freie Lizenz ohne die Einschränkungen der GPL anbietet.

(rme)