Slint 1.0 已发布,标志着项目已顺利从开发阶段“毕业”,可正式用于生产环境。
1.0 文档:https://slint-ui.com/releases/1.0.0/docs/slint/
Slint(最初称为"SixtyFPS")是一个 Rust 编写的综合性 UI 工具包,用于为桌面和嵌入式设备构建原生用户界面。其开发团队希望将 Slint 打造成下一代 GUI 工具包,因此从头开始构建项目时就考虑了可扩展性、包容性、工具性和跨平台兼容性。
Slint 的定位是一个支持多语言、适配任意显示屏、且高效流畅的用户图形接口工具包。设计目标包括:
- 可扩展:在连接到设备的任何屏幕上运行,从台式计算机到低功耗嵌入式设备。
- 轻量级:能够在几百KB内存的场景中运行,并且需要很少的处理能力。
- 原生支持:Slint 支持多种目标平台,从嵌入式设备到桌面应用,包括移动设备和 Web。
开发团队表示,使用 Slint 构建的图形应用程序可以在内存小于 300 kB 的系统上运行,例如包含 264kB RAM 和 ARM Cortex-M0+ 处理器的 Raspberry Pi Pico。因此,Slint 非常适合为嵌入式设备应用程序开发 UI。
据介绍,Slint 使用了声明式编程来简化 UI 的开发,优化应用程序开发和性能的方法是:
- 用声明式语言来描述 UI,使用的语法提供了一种广泛的方式来描述各种图形元素,同时易于阅读、编写和学习
- Slint 编译器对描述 UI 的代码进行优化并翻译成原生代码
- 采用任何语言编写的业务逻辑,可通过使用 Slint 提供的特定于语言的 API 与 UI 连接
Slint 架构如下:
控件支持:
示例:
- 不同平台的原生桌面小部件(Windows、macOS、Linux)
- WebAssembly
Slint 完全采用 Rust 实现,同时支持不同的编程语言,目前为 C++、JavaScript 和 Rust 提供了 API。
详情查看发布公告。