SlintRust 原生 GUI 工具包
Slint 是一個用于為桌面和嵌入式設(shè)備構(gòu)建原生 GUI 的綜合工具包,基于 Rust 實(shí)現(xiàn)。
使用 Slint,可以為各種操作系統(tǒng)和處理器架構(gòu)開發(fā) UI:
- Linux(桌面和嵌入式)、macOS、Windows、WebAssembly、Blackberry QNX,甚至裸機(jī)(沒有任何操作系統(tǒng))
- ARM Cortex-M 和 Cortex-A、Intel x86、RISC-V、Cadence Tensilica 等。
- 軟件渲染或硬件加速圖形 API,例如 OpenGL ES。
在瀏覽器中查看 DEMO (通過 WebAssembly )
Slint 支持多種編程語言,例如 Rust、C++ 和 JavaScript。
- C++ 程序員可使用 Slint 的現(xiàn)代 C++ API 和 CMake 集成。
- JavaScript 程序員可以試用我們的 NodeJS 包的測試版。
- Rust 程序員將Slint crate與 Cargo 一起使用。
輕量級
使用 Slint 構(gòu)建的圖形應(yīng)用程序可以在內(nèi)存小于 300 kB 的系統(tǒng)上運(yùn)行,例如帶有 264kB 內(nèi)部 RAM 和 ARM Cortex-M0+ 處理器的 Raspberry Pi Pico。這使得 Slint 非常適合為嵌入式設(shè)備開發(fā)應(yīng)用程序的 UI。
聲明式編程
Slint 開發(fā)團(tuán)隊(duì)在構(gòu)建它時就考慮到了可擴(kuò)展性、包容性、工具性和跨平臺兼容性,因此 Slint 是完全跨平臺,且使用聲明式編程來簡化 UI 的開發(fā):
- UI 以聲明性語言描述,使用的語法提供了一種廣泛的方式來描述各種圖形元素,同時易于閱讀、編寫和學(xué)習(xí)。
- Slint 編譯器將 UI 描述優(yōu)化并翻譯成本地代碼
- 可以使用任何語言編寫的業(yè)務(wù)邏輯,然后使用 Slint 提供的特定于語言的 API 與其 UI 連接
以下 Slint 強(qiáng)制性的“Hello World”:
export component HelloWorld inherits Window {
width: 400px;
height: 400px;
Text {
y: parent.width / 2;
x: parent.x + 200px;
text: "Hello, world";
color: blue;
}
}
使用
為了加快 UI 開發(fā)過程,Slint 提供了代碼完成、導(dǎo)航、重構(gòu)和語法突出顯示的工具支持。在開發(fā)和完善 UI 時,Slint 的實(shí)時預(yù)覽會實(shí)時顯示更改以提供即時反饋。
Visual Studio Code,則可以直接從 VS Code 市場安裝 Slint 擴(kuò)展。它適用于 macOS、Linux 和 Windows 的 VS Code,以及 Web 的 VS Code。要通過語言服務(wù)器協(xié)議集成到其他 IDE,請參閱 README 中的說明。
還可以使用 SlintPad 在 Web 瀏覽器中試用 Slint (SlintPad 是一個具有實(shí)時預(yù)覽功能的在線編輯器)。
