Thanks to visit codestin.com
Credit goes to lib.rs

2 unstable releases

Uses new Rust 2024

0.4.0 Oct 29, 2025
0.3.0 May 10, 2025

#1253 in GUI

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

401 downloads per month
Used in 4 crates (2 directly)

Apache-2.0

390KB
6.5K SLoC

Masonry Winit

A 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.

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