slint-ui/slint
Slint 是一个声明式 GUI 工具包,用于在 Rust、C++、JavaScript 或 Python 应用中构建原生用户界面。
- Star
- 24,241
- Fork
- 1,038
- 未关闭 Issue
- 749
- 最近提交
- 3小时前
这是什么?
Slint 允许开发者用自带的 `.slint` 声明式标记语言编写一次界面,再与 Rust、C++、JavaScript 或 Python 编写的业务逻辑相连接。`.slint` 文件会提前编译为原生代码,适用于嵌入式设备、桌面和移动平台,也提供 WebAssembly 网页演示。
该工具包将界面设计与应用逻辑分离,设计师和开发者可以并行工作。渲染后端包括 OpenGL ES 2.0(femtovg)、Skia 以及纯 CPU 的 software 渲染器,安装了 Qt 时还可使用 Qt 样式。工具链包括提供自动补全和实时预览的 LSP 服务器、Visual Studio Code 扩展、支持自动重载的 `slint-viewer` 命令行工具,以及 Figma 转 Slint 插件。
Slint 提供多种授权方式:专有桌面、移动或网页应用可使用免版税许可,开源项目可使用 GPLv3,专有嵌入式应用则需要商业许可。
核心功能
- 01使用声明式 `.slint` 标记语言描述布局、属性和数据绑定。
- 02支持 Rust、C++、JavaScript 和 Python 的语言绑定。
- 03提前编译为原生代码。
- 04提供 femtovg(OpenGL ES 2.0)、Skia 和纯 CPU 的 software 三种渲染后端。
- 05提供实时预览、LSP 服务器和 VS Code 扩展,方便编辑 `.slint` 文件。
- 06提供 Figma 转 Slint 插件,便于导入设计稿。
适用场景
- 为 Rust 或 C++ 应用开发桌面或移动端图形界面。
- 为 Raspberry Pi 等嵌入式设备制作用户界面。
- 将界面编译为 WebAssembly 并在网页中运行。
- 让设计师与开发者分别负责界面和业务逻辑。
快速上手
- 1
在 SlintPad 中打开 Hello World 示例,无需安装
- 2
选择一种语言并使用其入门模板,例如 Rust 模板
- 3
按照对应语言的 README 安装 Slint 包
使用前须知
- 在闭源应用中使用 Slint 需要免版税许可证或商业许可证,GPLv3 选项仅适用于开源应用。
- JavaScript/NodeJS 和 Python 绑定标注为测试版(Beta)。
标签
常见问题
- slint 是什么?
- Slint 是一个声明式 GUI 工具包,用于在 Rust、C++、JavaScript 或 Python 应用中构建原生用户界面。 Slint 允许开发者用自带的 `.slint` 声明式标记语言编写一次界面,再与 Rust、C++、JavaScript 或 Python 编写的业务逻辑相连接。`.slint` 文件会提前编译为原生代码,适用于嵌入式设备、桌面和移动平台,也提供 WebAssembly 网页演示。
- slint 可以免费使用吗?用的什么许可证?
- slint 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- slint 还在维护吗?
- 活跃维护中。slint 最近一次提交是在 2026年10月21日。
- slint 适合用来做什么?
- 为 Rust 或 C++ 应用开发桌面或移动端图形界面。 为 Raspberry Pi 等嵌入式设备制作用户界面。 将界面编译为 WebAssembly 并在网页中运行。 让设计师与开发者分别负责界面和业务逻辑。
- slint 怎么安装和运行?
- 在 SlintPad 中打开 Hello World 示例,无需安装 选择一种语言并使用其入门模板,例如 Rust 模板 按照对应语言的 README 安装 Slint 包
- 在哪里获取 slint?
- 源代码和安装说明在 GitHub 上:https://github.com/slint-ui/slint
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
受 Elm 启发、面向 Rust 的跨平台 GUI 库,强调简洁与类型安全。
一个易于使用的 Rust 即时模式 GUI 库,可同时运行在 Web 和原生平台,也可嵌入游戏引擎。
一个采用 MIT 许可的免费 C 语言 UI 库,用于在从小型 MCU 到 Linux MPU 的嵌入式设备上构建图形界面。
基于 C++17 的跨平台 UI 框架,支持 GLFW/SDL2 窗口后端与 OpenGL/Vulkan 渲染后端。
基于 Rust 的原生跨平台 UI 引擎,可用 Rust 或 TSX 编写应用,并使用各平台原生控件渲染。