April 3, 2023 by The Slint Team

Slint 1.0: The Next-Generation Native GUI Toolkit MaturesBlog RSS

We're thrilled to announce version 1.0 of Slint, a comprehensive toolkit to build native user interfaces for desktop and embedded devices, implemented in Rust. This is a major milestone, the result of three years of work by 50 contributors. Compared to the previous release, version 1.0 introduces only minor API cleanups and bug fixes. For full details refer to the ChangeLog.


Development of Slint (initially known as "SixtyFPS") started in May 2020 to address the needs of modern user interface (UI) development. Having worked tirelessly to build and refine it, we're proud to have reached the stage where paying customers and open-source users are selecting Slint over other UI toolkits to build their applications. The 1.x series signifies that Slint has now graduated out from "development mode" and is ready to be used in production projects.

Why Slint?

Energy Monitor Demo Screenshot
Energy Monitor Demo

Slint stands out as a next-generation GUI toolkit: We built it from the ground up with scalability, inclusivity, toolability, and cross-platform compatibility in mind.

Streamlined UI Development

Slint uses declarative programming to streamline development of the UI. Our approach to optimize application development and performance is:

  • The UI is described in a declarative language using a syntax that provides an extensive way to describe the various graphical elements while being easy to read, write and learn,
  • The Slint compiler optimizes and translates the UI description to native code,
  • Business logic, which you can write in any language, is connected with the UI using the language specific APIs provided by Slint.

Tooling

To speed up the UI development process, Slint comes with tooling support for code completion, navigation, refactoring, and syntax highlighting. As you develop and refine the UI, Slint's live-preview shows the changes in real-time to provide a instant feedback.

Code completion and live-preview in action

If you're using Visual Studio Code, you can install the Slint extension directly from the VS Code marketplace. It works for VS Code for macOS, Linux, and Windows, as well as VS Code for the Web. For integration into other IDEs via the Language Server Protocol, see the instructions in the README.

You can also try out Slint in your web browser with SlintPad - an online editor with live-preview.

Native on Many Platforms

Gallery showing native controls on Linux (Plasma), macOS, and Windows

With Slint, you can develop UIs for various operating systems and processor architectures.

  • Linux (desktop and embedded), macOS, Windows, WebAssembly, Blackberry QNX, and even bare metal (without any OS).
  • ARM Cortex-M and Cortex-A, Intel x86, RISC-V, Cadence Tensilica, and more.
  • Software rendering or hardware-accelerated graphics APIs, such as OpenGL ES.

Slint is a good fit for building desktop applications for Windows, macOS, and Linux, and we're working on features that will provide an even better, seamless look and feel.

Thanks to the portable code base, you can check out our demos directly in your web browser - via WebAssembly.

Figure to show scalabilty across different platforms

Lightweight

Slint on RP2040
Printer Demo on a RP2040 with 264KB of RAM

Graphical applications built with Slint can run on systems with less than 300 kB of RAM, such as the Raspberry Pi Pico that comes with a 264kB internal RAM and an ARM Cortex-M0+ processor. This makes Slint a great fit for developing the UI of applications for embedded devices.

Future-Proof

Slint is implemented entirely in Rust. At the same time, we acknowledge that most code for applications out there has been written in different programming languages. Hence, we designed Slint such that the application logic can be written in multiple programming languages. Currently Slint provides APIs for C++, JavaScript, and Rust. Support for other programming languages is on the way.

Open Source Business Model

At SixtyFPS GmbH, the company behind Slint, we're committed to transparency: We develop Slint as an open-source project on GitHub, where we publish the code, track issues, discuss our roadmap, accept contributions, and grow our community.

To fund the development, we rely on a sustainable business model based on dual-licensing. In this model, Slint is available under the GPLv3 open-source license and a proprietary license. The proprietary license is free-of-charge under the Ambassador license. For paid options, you can refer to the licensing section and the licensing FAQs.

Regardless of the license you choose, open source or proprietary, you can buy premium support in case you need any help from us for your project.

The Road Ahead

We'll keep adding new features in future 1.x releases and also commit to maintaining backwards compatibility. If you're curious about upcoming features, you can check our GitHub Issues page.

  • Graphical Editor for Designers

    Our vision is to enable designers and developers to collaborate on the same UI files, to streamline the product development process. Consequently, we're working on a graphical editor for designers to drag and drop widgets and elements to build the UI.

  • Native UI for Mobile Apps

    We plan to extend Slint to support iOS and Android so that mobile app developers can use Slint to build native apps.

  • More Programming Languages

    We're evaluating other programming languages, such as Python and Go, that Slint should provide APIs for.

Acknowledgements

Nothing great has been built alone and without the support of our community, we wouldn't have reached this milestone. Thank you everyone for your contributions, feedback, and words of encouragement, all of which have kept us motivated and fuelled to reach the project goals. A special shout out goes to our code contributors and ambassadors.

Spread the Word

Thanks to your love, we were featured as one of the top 50 OSS startups in 2022. We need your help so that we can continue to be featured on that list for this year. Please star us on GitHub and help us spread the word within your network and across developer forums.

Get Started

We are also following the discussions on reddit and Hacker News:


Comments

Slint is a Rust-based toolkit for creating reactive and fluent user interfaces across a range of targets, from embedded devices with limited resources to powerful mobile devices and desktop machines. Supporting Android, Windows, Mac, Linux, and bare-metal systems, Slint features an easy-to-learn domain-specific language (DSL) that compiles into native code, optimizing for the target device's capabilities. It facilitates collaboration between designers and developers on shared projects and supports business logic development in Rust, C++, JavaScript, or Python.