From 1ef39fc562d969cfc8548d16b2b72202a5d2196d Mon Sep 17 00:00:00 2001 From: Kaur Kuut Date: Mon, 6 May 2024 08:51:06 +0200 Subject: [PATCH] Add `README.md` for `xilem`. (#268) This is a basic skeleton based on the latest Linebender standards. I also added a paragraph about the reactive layer's origins. Plus a section describing the modularity of our stack. Additional sections describing more of the actual new state of things are welcome in follow-up PRs, but are not a goal of this PR. --- crates/xilem_masonry/README.md | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 crates/xilem_masonry/README.md diff --git a/crates/xilem_masonry/README.md b/crates/xilem_masonry/README.md new file mode 100644 index 000000000..2c75da8f7 --- /dev/null +++ b/crates/xilem_masonry/README.md @@ -0,0 +1,58 @@ +
+ +# Xilem + +**An experimental Rust architecture for reactive UI** + +[![Latest published version.](https://img.shields.io/crates/v/xilem.svg)](https://crates.io/crates/xilem) +[![Documentation build status.](https://img.shields.io/docsrs/xilem.svg)](https://docs.rs/xilem) +[![Apache 2.0 license.](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](#license) + +[![Linebender Zulip chat.](https://img.shields.io/badge/Linebender-%23xilem-blue?logo=Zulip)](https://xi.zulipchat.com/#narrow/stream/354396-xilem) +[![GitHub Actions CI status.](https://img.shields.io/github/actions/workflow/status/linebender/xilem/ci.yml?logo=github&label=CI)](https://github.com/linebender/xilem/actions) +[![Dependency staleness status.](https://deps.rs/crate/xilem/latest/status.svg)](https://deps.rs/crate/xilem) + +
+ +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](https://xi.zulipchat.com/), specifically the [#xilem stream](https://xi.zulipchat.com/#narrow/stream/354396-xilem). +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](#license) section, without any additional terms or conditions. + +## License + +Licensed under the Apache License, Version 2.0 ([LICENSE](LICENSE) or ) + +[Masonry]: https://crates.io/crates/masonry +[Druid]: https://crates.io/crates/druid +[Vello]: https://crates.io/crates/vello +[wgpu]: https://crates.io/crates/wgpu +[Parley]: https://crates.io/crates/parley +[Fontique]: https://crates.io/crates/fontique +[Swash]: https://crates.io/crates/swash +[Skrifa]: https://crates.io/crates/skrifa +[AccessKit]: https://crates.io/crates/accesskit +[winit]: https://crates.io/crates/winit +[Xilem: an architecture for UI in Rust]: https://raphlinus.github.io/rust/gui/2022/05/07/ui-architecture.html +[Rust code of conduct]: https://www.rust-lang.org/policies/code-of-conduct