#windows #version #wiard

wiard

Window handling library for Windows in Rust

21 releases (4 breaking)

Uses new Rust 2024

0.5.0 Apr 18, 2025
0.4.0 Feb 22, 2025
0.3.2 Jan 10, 2025
0.3.1 Oct 25, 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

162 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