2 unstable releases
Uses new Rust 2024
| 0.4.0 | Oct 29, 2025 |
|---|---|
| 0.3.0 | May 10, 2025 |
#1253 in GUI
401 downloads per month
Used in 4 crates
(2 directly)
390KB
6.5K
SLoC
This is the Winit backend for the Masonry GUI framework.
See Masonry's documentation for more details, examples and resources.
Example
use masonry::core::{ErasedAction, NewWidget, Widget, WidgetId, WidgetPod};
use masonry::dpi::LogicalSize;
use masonry::theme::default_property_set;
use masonry_winit::app::{AppDriver, DriverCtx, NewWindow, WindowId};
use masonry_winit::winit::window::Window;
struct Driver {
// ...
}
impl AppDriver for Driver {
fn on_action(
&mut self,
window_id: WindowId,
ctx: &mut DriverCtx<'_, '_>,
widget_id: WidgetId,
action: ErasedAction,
) {
// ...
}
}
fn main() {
let main_widget = {
// ...
};
let window_size = LogicalSize::new(400.0, 400.0);
let window_attributes = Window::default_attributes()
.with_title("My Masonry App")
.with_resizable(true)
.with_min_inner_size(window_size);
let driver = Driver {
// ...
};
let event_loop = masonry_winit::app::EventLoop::with_user_event()
.build()
.unwrap();
masonry_winit::app::run_with(
event_loop,
vec![NewWindow::new(
window_attributes,
NewWidget::new(main_widget).erased(),
)],
driver,
default_property_set(),
)
.unwrap();
}
(See the Masonry documentation for more detailed examples.)
Minimum supported Rust Version (MSRV)
This version of Masonry Winit has been verified to compile with Rust 1.88 and later.
Future versions of Masonry Winit 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 Masonry Winit development happens in the Linebender Zulip, specifically the #masonry channel. All public content can be read without logging in.
Contributions are welcome by pull request. The Rust code of conduct applies.
License
Licensed under the Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
Dependencies
~37–79MB
~1M SLoC