The open-source development group Linebender has officially released the Xilem and Masonry projects. This combination provides Rust developers with an experimental high-level architecture designed to build high-performance, natively compiled graphical user interfaces (GUIs).
According to project documentation, Masonry is positioned as the low-level toolkit for building GUIs. It manages the event loop and interface update logic by maintaining a retained widget tree. In contrast, Xilem is a reactive framework inspired by React, SwiftUI, and Elm. It allows developers to create lightweight view trees that automatically update the interface rendering in response to state changes.
Developer Guidance and Ecosystem
For developers looking to get started quickly, the project maintainers recommend starting with Xilem. The official documentation clarifies: "If you are undecided between the two, you almost certainly want Xilem. Xilem is a full UI framework, while Masonry is the low-level toolkit for building UI frameworks."
This architecture is not built from scratch but is deeply integrated with key components of the Rust ecosystem. These include winit for window management, Vello and wgpu for 2D graphics rendering, and Parley and Fontique for text layout. Additionally, the inclusion of AccessKit ensures that the framework provides robust support for various accessibility APIs.
The project is currently open-source on GitHub and includes several example programs, such as "to_do_mvc." Developers can quickly integrate it into existing projects using the `cargo add xilem` command. To ensure a smooth build process, users must have clang, pkg-config, and a suite of development libraries—including the Vulkan loader—pre-installed.
The project has specific requirements for the Rust version and is currently verified to run stably on Rust 1.79 and higher. Maintainers note that minimum version requirements may be raised in future releases; such changes are not considered breaking changes and may be introduced in patch versions.
The Linebender team conducts development discussions on the #xilem channel via the Zulip platform. The project is licensed under the Apache 2.0 license, and community members are encouraged to contribute via pull requests. For those developing on Linux or macOS, the team recommends enabling the `split-debuginfo` feature in the configuration file to effectively reduce build artifact sizes and improve development efficiency.