A Rust framework for building web, desktop, and mobile apps from a single codebase, with React-like components and signals.
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
Open the Hello World example in SlintPad without installing anything
- 2
Pick a language and use its Getting Started Template, such as the Rust template
- 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
A cross-platform GUI library for Rust with a simple, type-safe, Elm-inspired programming model.
An easy-to-use immediate mode GUI library for Rust that runs on the web and natively, and can be embedded in game engines.
A free, MIT-licensed C UI library for building graphical interfaces on embedded devices, from small MCUs to Linux-based MPUs.
A cross-platform C++17 UI framework with GLFW/SDL2 window backends and OpenGL/Vulkan rendering, built around a declarative DSL.
A Rust engine for native cross-platform UI, letting you write apps in Rust or TSX and render with each platform's own widgets.