这个项目能做什么
Slint 是一个开源声明式 GUI 工具包,用于为嵌入式系统、桌面、移动平台以及通过 WebAssembly 的 Web 构建原生用户界面。UI 只需用 `.slint` 这一声明式标记语言编写一次,并连接到用 Rust、C++、JavaScript 或 Python 编写的业务逻辑。
名称背后的设计目标:可扩展(响应式设计、跨平台、多语言)、轻量(最低的内存和处理需求)、直观(一致的 API 和面向设计者的工具),以及原生(编译为机器码,可访问操作系统 API、CPU/GPU 核心和外设)。
主要特性:
- 独立的 UI 设计:声明式语言将 UI 与业务逻辑分离,使设计者和开发者可以并行工作。
- 工具:实时预览、编辑器集成、LSP 服务器、VS Code 扩展、带自动重载的 slint-viewer 工具、在线 SlintPad 编辑器,以及 Figma 到 Slint 插件。
- 稳定的 1.x API,并谨慎演进。
架构:`.slint` 文件通过词法分析、解析、优化和代码生成进行提前编译,具有面向 C++、Rust 和其他目标的后端,以及用于动态语言的解释器。运行时引擎将组件、元素、项和属性布局在单个内存区域中,以减少分配。渲染后端和样式可在编译时配置:femtovg(OpenGL ES 2.0)、skia 和基于 CPU 的软件渲染器;安装 Qt 后可使用 Qt 样式。
仓库中记录的语音绑定包括 C++、Rust、JavaScript/NodeJS(Beta)和 Python(Beta),每个都有文档和入门模板。示例和演示涵盖嵌入式目标(Raspberry Pi、STM32、RP2040)、桌面(Windows、macOS、Linux),以及 Web 演示,如打印机演示、滑块拼图、能源监控、组件库和天气演示。
许可提供以下选择:面向专有桌面/移动/Web 应用的免版税许可、面向开源应用的 GNU GPLv3,以及面向专有嵌入式/桌面/移动/Web 应用的商业许可。该项目由 SixtyFPS GmbH 维护,欢迎代码、错误报告和反馈。
评论
0 评分人数达到10人后显示
登录后参与讨论。