linebender/xilem

An experimental Rust native UI framework

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 17 minutes ago
Added to GitGenius on September 12th, 2026
Created on November 16th, 2022
Open Issues & Pull Requests: 158 (+0)
GitHub issues: Enabled
Number of forks: 240
Total Stargazers: 5,520 (+0)
Total Subscribers: 67 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

Xilem is an experimental Rust framework for building reactive user interfaces with a high-level architecture inspired by React, SwiftUI, and Elm.

Xilem addresses the challenge of writing native GUI applications in Rust by providing a reactive framework that lets developers create a lightweight view tree and automatically updates the rendered application when that tree changes. The framework sits atop Masonry, a foundational retained widget tree system that handles event processing and update cycles. Xilem itself offers both a web backend and a Masonry backend, giving developers flexibility in deployment targets. The underlying stack includes winit for window creation, Vello and wgpu for 2D graphics rendering, Parley and Fontique for text handling, and AccessKit for accessibility support.

Xilem is the right choice if you want to build a GUI application with minimal setup complexity. The README explicitly positions Xilem as the higher-level option for application developers, while Masonry serves as a lower-level toolkit for those building custom UI frameworks. If you are starting a new Rust GUI project and want a framework rather than a foundational toolkit, Xilem is the recommended entry point. The project includes examples demonstrating todo applications, calculators, and chess games, showing its capability for interactive applications.

The project maintains an active development cadence with regular commits across multiple subsystems. Contributors are actively working on the reactive architecture, backend implementations, and example applications. The maintainers acknowledge that the Nix flake for NixOS development may drift out of sync and do not require contributors to maintain it, indicating a pragmatic approach to supporting multiple development environments without overcommitting resources. The project specifies a minimum supported Rust version and documents that future versions may increase this requirement without treating it as a breaking change.