Repolode
slint-ui

slint-ui/slint

Slint is a declarative GUI toolkit for building native user interfaces in Rust, C++, JavaScript, or Python apps.

Stars
24,241
Forks
1,038
Open issues
749
Last commit
3 hours ago

What is it?

Slint lets you write a user interface once in its own `.slint` markup language and connect it to business logic written in Rust, C++, JavaScript, or Python. The `.slint` files are compiled ahead of time to native code, and the project targets embedded systems, desktops, and mobile platforms, with a web (WebAssembly) demo set as well.

The toolkit separates UI design from application logic, so designers and developers can work in parallel. Rendering backends include OpenGL ES 2.0 (femtovg), Skia, and a CPU-only software renderer, and a Qt style can be used when Qt is installed. Tooling includes an LSP server with auto-complete and live preview, a Visual Studio Code extension, a `slint-viewer` command-line tool with auto-reload, and a Figma to Slint plugin.

Slint is dual-licensed with a royalty-free option for proprietary desktop, mobile, or web apps, a GPLv3 option for open source projects, and a commercial license for proprietary embedded apps.

Key features

  • 01Declarative `.slint` markup language for describing layouts, properties, and bindings.
  • 02Bindings for Rust, C++, JavaScript, and Python.
  • 03Ahead-of-time compilation to native code.
  • 04Multiple renderers: femtovg (OpenGL ES 2.0), Skia, and software (CPU).
  • 05Live preview, LSP server, and VS Code extension for editing .slint files.
  • 06Figma to Slint plugin for importing designs.

Use cases

  • Building desktop or mobile GUIs for Rust or C++ applications.
  • Creating user interfaces for embedded devices such as Raspberry Pi or microcontrollers.
  • Shipping a web-based UI compiled to WebAssembly.
  • Letting designers and developers work on UI and logic separately.

Quick start

  1. 1

    Open the Hello World example in SlintPad without installing anything

  2. 2

    Pick a language and use its Getting Started Template, such as the Rust template

  3. 3

    Follow the README for your language to install the Slint package

Things to know

  • Using Slint in proprietary apps requires the royalty-free or commercial license, while the GPLv3 option applies to open source apps.
  • The JavaScript/NodeJS and Python bindings are marked as Beta.

Topics

FAQ

What is slint?
Slint is a declarative GUI toolkit for building native user interfaces in Rust, C++, JavaScript, or Python apps. Slint lets you write a user interface once in its own `.slint` markup language and connect it to business logic written in Rust, C++, JavaScript, or Python. The `.slint` files are compiled ahead of time to native code, and the project targets embedded systems, desktops, and mobile platforms, with a web (WebAssembly) demo set as well.
Is slint free to use? What license does it have?
slint is open source under the Other license. Check the license terms before using it in commercial products.
Is slint still maintained?
Actively maintained. The last commit to slint was on Oct 21, 2026.
What can I use slint for?
Building desktop or mobile GUIs for Rust or C++ applications. Creating user interfaces for embedded devices such as Raspberry Pi or microcontrollers. Shipping a web-based UI compiled to WebAssembly. Letting designers and developers work on UI and logic separately.
How do I install slint?
Open the Hello World example in SlintPad without installing anything Pick a language and use its Getting Started Template, such as the Rust template Follow the README for your language to install the Slint package
Where can I get slint?
The source code and installation instructions are on GitHub: https://github.com/slint-ui/slint

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects