SixtyFPS: Berlin Toolkit for Graphical User Interfaces with Rust, C ++ and JavaScript


The developers of SixtyFPS 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. experimental lab mode, to the phase in which the toolkit can be appropriately used for the development of the team perspective.

SixtyFPS targets cross-platform development for desktop applications and embedded devices. In view of the latter, it’s designed to be thin and probably only requires a few 100KB of RAM and low CPU power. For the first time the developers announced the project in November 2020.

The toolkit comes with its own markup language called .60, which is used to define 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 as RGB values ​​and sizes in absolute or relative values.

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

(Image: SixtyFPS)

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

Libraries or packages for Rust, C ++ and JavaScript or NodeJS programming languages ​​are available for integration into projects. The team also released an interactive online virtual playground editor.

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 is based 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 release also includes a new API for dynamically creating images at run time. The .60 markup language gets additions for binding, layout, and thread cooperation.

Version 0.1 is based on Fluent Design.

(Image: SixtyFPS)

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

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


Source link


About Author

Leave A Reply