4 releases

0.2.0 May 7, 2024
0.1.2 Feb 5, 2023
0.1.1 Feb 5, 2023
0.1.0 Nov 30, 2022

#165 in GUI

Download history 53/week @ 2024-03-31 1/week @ 2024-04-07 199/week @ 2024-05-05 28/week @ 2024-05-12 34/week @ 2024-05-19 23/week @ 2024-05-26 40/week @ 2024-06-02 32/week @ 2024-06-09 28/week @ 2024-06-16 22/week @ 2024-06-23 5/week @ 2024-06-30 8/week @ 2024-07-07

67 downloads per month
Used in xilem

Apache-2.0

715KB
14K SLoC

Masonry

Foundational framework for Rust GUI libraries

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

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

Masonry gives you a platform to create a window (using winit as a backend) with a tree of widgets. It also gives you tools to inspect that widget tree at runtime, write unit tests on it, and generally have an easier time debugging and maintaining your app.

The framework is not opinionated about what your user-facing abstraction will be: you can implement immediate-mode GUI, the Elm architecture, functional reactive GUI, etc, on top of Masonry. See Xilem as an example of reactive UI built on top of Masonry.

Masonry was originally a fork of Druid that emerged from discussions with Druid authors Raph Levien and Colin Rofls about what it would look like to turn Druid into a foundational library.

Masonry can currently be considered to be in an alpha state. Lots of things need improvements, e.g. text input is janky and snapshot testing is not consistent across platforms.

Community

Discussion of Masonry development happens in the Linebender Zulip, specifically the #masonry 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

~29–67MB
~1M SLoC