xilem

Crates.ioxilem
lib.rsxilem
version0.1.0
sourcesrc
created_at2024-05-07 21:51:14.838313
updated_at2024-05-07 21:51:14.838313
descriptionA next-generation cross-platform Rust UI framework.
homepagehttps://xilem.dev/
repositoryhttps://github.com/linebender/xilem
max_upload_size
id1233123
size174,975
Daniel McNab (DJMcNab)

documentation

README

Xilem

An experimental Rust architecture for reactive UI

Latest published version. Documentation build status. Apache 2.0 license.

Linebender Zulip chat. GitHub Actions CI status. Dependency staleness status.

Xilem is a UI toolkit. It combines ideas from Flutter, SwiftUI, and Elm. Like all of these, it uses lightweight view objects, diffing them to provide minimal updates to a retained UI. Like SwiftUI, it is strongly typed. For more details on Xilem's reactive architecture see Xilem: an architecture for UI in Rust.

Xilem's reactive layer is built on top of a wide array of foundational Rust UI projects, e.g.:

  • Widgets are provided by Masonry, which is a fork of the now discontinued Druid UI toolkit.
  • Rendering is provided by Vello, a high performance GPU compute-centric 2D renderer.
  • GPU compute infrastructure is provided by wgpu.
  • Text support is provided by Parley, Fontique, Swash, and Skrifa.
  • Accessibility is provided by AccessKit.
  • Window handling is provided by winit.

Xilem can currently be considered to be in an alpha state. Lots of things need improvements.

Community

Discussion of Xilem development happens in the Linebender Zulip, specifically the #xilem stream. 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 http://www.apache.org/licenses/LICENSE-2.0)

Commit count: 349

cargo fmt