#windows #version #wiard

wiard

Window handling library for Windows in Rust

22 releases (4 breaking)

Uses new Rust 2024

new 0.5.1 May 5, 2025
0.4.0 Feb 22, 2025
0.3.1 Oct 25, 2024
0.1.9 Jul 27, 2024
0.1.1 Nov 26, 2023

#190 in GUI

Download history 157/week @ 2025-01-08 5/week @ 2025-01-15 8/week @ 2025-02-05 22/week @ 2025-02-12 129/week @ 2025-02-19 19/week @ 2025-02-26 2/week @ 2025-03-05 6/week @ 2025-03-12 13/week @ 2025-04-09 149/week @ 2025-04-16 8/week @ 2025-04-23

170 downloads per month
Used in 2 crates

MIT license

155KB
4.5K SLoC

Window handing library for Windows in Rust

Simple examples

sync version

fn main() {
    let mut event_rx = wiard::EventReceiver::new();
    let _window = wiard::Window::builder(&event_rx)
        .build()
        .unwrap();
    loop {
        let Some((event, _)) = event_rx.recv() else {
            break;
        };
        println!("{event:?}");
    }
}

async version

#[tokio::main]
async fn main() {
    let mut event_rx = wiard::AsyncEventReceiver::new();
    let _window = wiard::Window::builder(&event_rx)
        .await
        .unwrap();
    loop {
        let Some((event, _)) = event_rx.recv().await else {
            break;
        };
        println!("{event:?}");
    }
}

Note

wiard use WM_APP. Don't post directly WM_APP to wiard's UI thread.


wiard

Window handling library for Windows in Rust

Simple examples

sync version

fn main() {
    let mut event_rx = wiard::EventReceiver::new();
    let _window = wiard::Window::builder(&event_rx)
        .build()
        .unwrap();
    loop {
        let Some((event, _)) = event_rx.recv() else {
            break;
        };
        println!("{event:?}");
    }
}

async version

#[tokio::main]
async fn main() {
    let mut event_rx = wiard::AsyncEventReceiver::new();
    let _window = wiard::Window::builder(&event_rx)
        .await
        .unwrap();
    loop {
        let Some((event, _)) = event_rx.recv().await else {
            break;
        };
        println!("{event:?}");
    }
}

License

This library is licensed under the MIT license.

Dependencies

~127MB
~2M SLoC