back to home

linebender / xilem

An experimental Rust native UI framework

4,923 stars
190 forks
141 issues
RustHTMLFluent

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing linebender/xilem in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/linebender/xilem)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Xilem **An experimental Rust architecture for reactive UI** Xilem and Masonry provide an experimental high-level architecture for writing GUI apps in Rust. **Masonry** is a foundational crate for building natively compiled GUIs in Rust. It provides a retained widget tree and runs event handling and update passes on it. **Xilem** a high-level reactive framework inspired by React, SwiftUI and Elm. It lets users create a lightweight view tree, and changes the rendered app based on changes to the tree. It has a web backend and a Masonry backend. and are the respective entry points of these projects for new users. See for details about the repository structure. Xilem and Masonry are built on top of: • **winit** for window creation. • **Vello and wgpu** for 2D graphics. • **Parley and Fontique** for the text stack. • **AccessKit** for plugging into accessibility APIs. **Note for new users:** If you're not sure what to use between Xilem and Masonry, you probably want Xilem. In general, if you're trying to make an app with minimum hassle, you probably want Xilem. Xilem is a UI framework, whereas Masonry is a toolkit for building UI frameworks (including Xilem). Screenshots *From https://github.com/StefanSalewski/xilem-chess/* *The example.* *The example.* Getting started After cloning this repository, you can try running the examples, such as the example shown above: To add Xilem as a dependency to your project, run Prerequisites Linux and BSD You need to have installed , , and the development packages of , , , and . Most distributions have installed by default. To install the remaining packages on Fedora, run: To install the remaining packages on Debian or Ubuntu, run: There's a Nix flake in which may be used for developing on NixOS: > [!INFO] > > This flake is provided as a starting point, and we do not routinely validate its correctness. > We do not require contributors to ensure that this accurately reflects the build requirements, as we expect most contributors (and indeed many maintainers) will not be using NixOS. > If it is out of date, please let us know by opening an issue or PR. Recommended Cargo Config The Xilem repository includes a lot of projects and examples, most of them pulling a lot of dependencies. If you contribute to Xilem on Linux or macOS, we recommend using in your file to reduce the size of the folder: Minimum supported Rust Version (MSRV) This version of Xilem has been verified to compile with **Rust 1.88** and later. Future versions of Xilem might increase the Rust version requirement. It will not be treated as a breaking change and as such can even happen with small patch releases. Community Discussion of Xilem development happens in the Linebender Zulip, specifically the #xilem channel. All public content can be read without logging in. Contributions are welcome by pull request. The [Rust code of conduct] applies. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache 2.0 license, shall be licensed as noted in the License section, without any additional terms or conditions. License Licensed under the Apache License, Version 2.0 (LICENSE or ) Some files used for examples are under different licenses: • The font file ( ) in is licensed solely as documented in that folder (and is not licensed under the Apache License, Version 2.0). • The data file ( ) in is licensed solely as documented in that folder (and is not licensed under the Apache License, Version 2.0). • The data file ( ) in is licensed solely as documented in that folder (and is not licensed under the Apache License, Version 2.0). [Rust code of conduct]: https://www.rust-lang.org/policies/code-of-conduct