1 unstable release

0.1.0 May 7, 2024

#914 in GUI

Download history 8/week @ 2024-07-15 14/week @ 2024-07-22 17/week @ 2024-07-29 14/week @ 2024-08-05 7/week @ 2024-08-12 6/week @ 2024-08-26 12/week @ 2024-09-16 37/week @ 2024-09-23 14/week @ 2024-09-30 21/week @ 2024-10-07 15/week @ 2024-10-14 16/week @ 2024-10-21 13/week @ 2024-10-28

66 downloads per month

Apache-2.0

775KB
15K SLoC

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)

Dependencies

~21–60MB
~1M SLoC