The first significant release of the Slint GUI toolkit has been published, summarizing three years of work on the project. Version 1.0 is positioned as ready for use in production projects. The toolkit is written in Rust and is available under the GPLv3 license or a commercial license (for use in proprietary products without code disclosure). It can be used to create graphical applications for desktop systems as well as to develop interfaces for embedded devices. The project is developed by Olivier Goffart and Simon Hausmann, former KDE developers who worked on Qt at Trolltech.
The main goals of the project are low resource consumption, the ability to work with screens of any size, providing a development process convenient for both programmers and designers, and ensuring portability across various platforms. For example, Slint-based applications can run on the Raspberry Pi Pico board, equipped with an ARM Cortex-M0+ microcontroller and 264 KB of RAM. Supported platforms include Linux, Windows, macOS, and Blackberry QNX, with the ability to compile to WebAssembly pseudocode for running in a browser or compile standalone applications that do not require an operating system. There are plans to enable mobile application development for Android and iOS platforms.
The interface is defined using a special declarative markup language '.slint', which provides an easily readable and understandable syntax for describing various graphical elements (one of the authors of Slint was previously responsible for the QtQml engine at Qt Company). Interface descriptions in Slint are compiled into machine code for the target platform. The logic for interacting with the interface is not tied to Rust and can be defined in any programming language — currently, the API and toolkit for working with Slint are prepared for Rust, C++, and JavaScript, but there are plans to support additional languages such as Python and Go.

Several backends are provided for rendering, allowing the use of Qt, OpenGL ES 2.0, Skia, and software rendering without external dependencies. To simplify development, an extension for Visual Studio Code is offered. server LSP (Language Server Protocol) for integration with various development environments and the online editor SlintPad. Plans include the development of a visual interface editor for designers that allows building interfaces through drag-and-drop widget and element placement.


Source: opennet.ru
