// the find
slint-ui/slint
Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.
Slint is a declarative UI toolkit with its own DSL (.slint files) that compiles to native code for Rust, C++, JavaScript, and Python targets. It covers desktop, embedded (including bare-metal MCUs like RP2040 and STM32), and WebAssembly. Aimed at developers who want a single UI definition that works across radically different hardware profiles.
- Genuine embedded story: runs on no-std MCUs with the software renderer, not just 'embedded Linux'. The RP2040 and STM32 demos are real, not marketing.
- Ahead-of-time compilation of .slint files means no runtime reflection overhead and the compiler can optimize property bindings — smart for resource-constrained targets.
- Three rendering backends (femtovg/OpenGL, Skia, CPU software) selectable at compile time, which is the right design for spanning from microcontrollers to desktops.
- Tooling is genuinely solid: LSP server with live preview, VS Code extension, SlintPad online playground, and a Figma plugin — the feedback loop for UI work is short.
- The licensing is a trap for commercial embedded products: royalty-free only covers desktop/mobile/web; embedded commercial use requires the paid license, which is not cheap and not publicly priced.
- JavaScript and Python bindings are still Beta, meaning the two languages most UI designers would reach for in a prototype are second-class citizens with incomplete APIs.
- The .slint DSL is yet another language to learn and maintain tooling for; editor support outside VS Code is community-maintained and inconsistent, which stings on embedded dev setups.
- No accessibility (a11y) story visible in the public docs or issues — screen reader support and ARIA equivalents appear to be essentially unaddressed, which is a hard blocker for any serious desktop application targeting regulated industries or public-sector procurement.