SixtyFPS: Toolkit from Berlin for graphical UIs with Rust, C ++ and JavaScript

Share your love

The developers of SixtyFPS have released the toolkit for creating graphical user interfaces in version 0.1. According to the related blog entry, the release marks the transition from “lab mode”, i.e. the experimental laboratory mode, to the phase in which the toolkit can be used appropriately for development from the team’s point of view.

SixtyFPS aims at cross-platform development for desktop applications and embedded devices. With a view to the latter, it is designed to be slim and probably only requires a few 100 KBytes of RAM and low processor power. For the first time the developers had announced the project in November 2020.

The toolkit comes with its own markup language called .60, which is used to define the positions, colors and content. It is based on a JSON structure and is based on cascading style sheets. There is a simple Hello World im GitHub-Repository:

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

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

Developers can specify colors as names or RGB values ​​and sizes in absolute or relative values.

The SixtyFPS compiler translates the .60 files into native code and offers connections to C ++, Rust and JavaScript.

(Image: SixtyFPS)

When translating the markup code, the compiler pays particular attention to economical memory management so that the program as few as possible mallocCalls required. The translated programs use GPU acceleration by default. For the display of the controls, SixtyFPS relies on a native design for the respective platforms.

Libraries or packages for the programming languages ​​Rust, C ++ and JavaScript or NodeJS are available for integration in projects. The team also has a virtual playground interactive online editor published.

Anyone who uses Visual Studio Code will find an extension in the Visual Studio Marketplace, which offers syntax highlighting, diagnostics and live preview. Since it relies on the Language Server Protocol (LPS), it should be possible to implement it for other development tools such as the Eclipse IDE with little effort.

Compared to version 0.06, SixtyFPS 0.1 offers a new style that implements widgets in Microsoft’s Fluent Design. The version also includes a new API for dynamic creation of images at runtime. The .60 markup language gets additions for bindings, the layout and the cooperation of the threads.

Version 0.1 relies on Fluent Design.

(Image: SixtyFPS)

The name of the project is derived from the fluid frame rate of 60 frames per second (Frames Per Second, FPS). The two developers of the project Oliver Goffart and Simon Hausmann are based in Berlin. Both have gained cross-platform experience around the Qt framework. You were involved in the KDE project based on Qt and worked at Trolltech, the mother of the Qt framework. Hausmann gained experience in the area of ​​markup languages ​​with Qt QML (Qt Modeling Language) as a lead developer for the QtQml engine at the Qt Company.

Further details on SixtyFPS 0.1 can be found in the Blog post for publication remove. That Toolkit can be found on GitHub. The licensing model is similar to that for Qt: The software is available under a GPLv3 license as well as under a commercial license. In addition, there is at the start an ambassador program, which offers a free license without the restrictions of the GPL to “ambassadors” contributing to the dissemination of the project.


(rme)

Article Source

Read Also   AI finds new materials for batteries
Share your love