搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

slint-ui/slint

开发工具

用声明式 UI 描述原生界面的 GUI 工具包,支持 Rust、C++、JavaScript、Python,覆盖桌面、移动、Web 和嵌入式。

24,431
1,059
Rust
NOASSERTION
创建于 6 年前

项目介绍

Slint 是一个声明式 GUI 工具包:界面写在 .slint 标记语言里,业务逻辑用 Rust、C++、JavaScript 或 Python 编写 (3)。它覆盖桌面、Android、iOS、WebAssembly、嵌入式 Linux,以及 STM32、ESP32、RP2040 等微控制器 (3)。

.slint 文件会提前编译成目标语言代码,属性表达式可被优化,常量属性会被移除 (3)。运行时把组件集中在单块内存区域布局以减少分配,渲染可选基于 OpenAI ES 2.0 的 femtovg、Skia,或纯 CPU 的软件渲染器 (3)。

快速使用

  1. 按所用语言安装包:Rust 从 crates.io 安装 slint,Node.js 从 npm 安装 slint-ui,Python 从 PyPI 安装 slint。JavaScript 和 Python 绑定标记为 Beta (3)。
  2. 新建 .slint 文件。README 的 Hello World 示例创建一个 400×400 窗口,并显示蓝色文字:
export component HelloWorld inherits Window {
    width: 400px;
    height: 400px;

    Text {
       y: parent.width / 2;
       x: parent.x + 200px;
       text: "Hello, world";
       color: blue;
    }
}
  1. 通过对应语言的 API 目录和入门模板,把这个组件接入 Rust、C++、JavaScript 或 Python 应用 (3)。examples 目录 有可运行示例,SlintPad 可以在浏览器里直接试写标记,无需安装。

项目为 C++、Rust、Node.js 和 Python 分别提供了文档与入门模板。

工具链

LSP 服务器为支持的编辑器提供补全和实时预览,并打包在 VS Code 扩展中 (3)。独立的 slint-viewer 工具可显示 .slint 文件,带 --auto-reload 参数时便于边改边预览 (3)。另有 Figma to Slint 插件用于从设计稿导入 (3)。

许可与限制

仓库提供三种许可路径:专有桌面、移动和 Web 应用可使用 Royalty-free License;任何平台的开源应用可使用 GPLv3;专有嵌入式、桌面、移动或 Web 应用可使用商业许可 (3)。是否属于专有应用、是否面向嵌入式设备,决定了适用哪种许可,选择前应先查阅许可 FAQ (50)。

Slint 的 1.x API 保持稳定,更新意在避免破坏现有代码 (3)。2024 年的一条 HN 评论报告了当时的限制:DSL 不支持递归类型,无法把 if 与 for 等 AST 元素组合,VS Code 扩展也有稳定性问题 (3)。这些是旧版本上的用户反馈,不是当前已文档化的限制。

HotRepo 点评

仓库在 2026-11-06 的 Rust 日榜快照中新增 26 星,位列该语言榜第 11 名;全部语言日榜没有记录名次。2024-02-02 的 HN 讨论热度较高,139 分、40 条评论,讨论集中在声明式 DSL 与 QML 的对比、工具包易用性和许可模式上 (3)。其中一条回复被认为来自 Slint 作者,主张 Qt 的语言绑定是二等公民,而 Slint 的 API 更小且跨语言一致 (3)。这些关注点落在声明式模型和跨语言覆盖上,而非实测性能数据。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Slint GUI Toolkit
▲ 139 · 40 条评论 · 2024年2月2日
Slint: Native GUI Toolkit for Rust, C++ or JavaScript
▲ 112 · 30 条评论 · 2022年3月26日
Feedback requested: Slint (declarative GUI toolkit) is discussing license change
▲ 4 · 1 条评论 · 2023年5月12日