Xilem 和 Masonry 提供了一個實驗性的高階架構,用於以 Rust 編寫 GUI 應用程式。

Masonry 是一個用於在 Rust 中建構原生編譯 GUI 的基礎 crate。它提供了一個保留的 widget 樹,並在其上執行事件處理和更新傳遞。

Xilem 是一個受 React、SwiftUI 和 Elm 啟發的高階響應式框架。它允許使用者建立一個輕量級的視圖樹,並根據樹的變化來渲染應用程式。它有 Web 後端和 Masonry 後端。

`masonry/` 和 `xilem/` 分別是這些專案對新使用者提供的入口點。有關儲存庫結構的詳細資訊,請參閱 ARCHITECTURE.md。

Xilem 和 Masonry 建構於以下基礎之上:

給新使用者的注意事項:如果你不確定要在 Xilem 和 Masonry 之間選擇哪個,你可能需要 Xilem。一般來說,如果你想盡量減少麻煩來建立一個應用程式,你可能需要 Xilem。Xilem 是一個 UI 框架,而 Masonry 是用於建構 UI 框架(包括 Xilem)的工具包。

從 https://github.com/StefanSalewski/xilem-chess/ 取得。

複製此儲存庫後,你可以嘗試執行範例,例如上面所示的 to_do_mvc 範例:

若要將 Xilem 添加為你專案的依賴項,請執行

你需要已安裝 pkg-config、clang,以及 wayland、libxkbcommon、libxcb 和 vulkan-loader 的開發套件。大多數發行版預設都安裝了 pkg-config。

要在 Fedora 上安裝剩餘套件,請執行:

要在 Debian 或 Ubuntu 上安裝剩餘套件,請執行:

`docs/` 中有一個 Nix flake,可用於在 NixOS 上進行開發:

此 flake 作為起點提供,我們不會定期驗證其正確性。我們不要求貢獻者確保其準確反映建置要求,因為我們預期大多數貢獻者(以及許多維護者)不會使用 NixOS。如果它過時了,請透過開啟 issue 或 PR 告知我們。

Xilem 儲存庫包含許多專案和範例,其中大多數會拉取大量依賴項。

如果你在 Linux 或 macOS 上貢獻 Xilem,我們建議在你的 .cargo/config.toml 檔案中使用 split-debuginfo 來減少 target/ 資料夾的大小:

此版本的 Xilem 已驗證可與 Rust 1.92 及更高版本編譯。

未來版本的 Xilem 可能會提高 Rust 版本要求。這不會被視為破壞性變更,因此即使是小的修補版本也可能發生。

關於 Xilem 開發的討論發生在 Linebender Zulip,特別是 #xilem 頻道。所有公開內容均可在不登入的情況下閱讀。

歡迎透過 pull request 貢獻。適用 Rust 行為準則。

除非你明確聲明,否則你透過貢獻提交給作品(根據 Apache 2.0 授權定義)的任何內容,將按照授權部分中的說明授權,不含任何額外的條款或條件。

根據 Apache 授權條款 2.0 授權(LICENSE 或 http://www.apache.org/licenses/LICENSE-2.0 )

用於範例的某些檔案採用不同的授權:

實驗性的 Rust 原生 UI 框架