26 个稳定版本

3.3.2 2024 年 3 月 6 日
3.3.1 2024 年 3 月 5 日
2.15.1 2024 年 3 月 10 日
2.8.1 2024 年 2 月 25 日
1.0.1 2024 年 2 月 23 日

231渲染 分类中

Download history 1431/week @ 2024-03-07 176/week @ 2024-03-14 3/week @ 2024-03-21 66/week @ 2024-03-28 85/week @ 2024-04-04

1,696 每月下载量

MIT/Apache

79KB
2.5K SLoC

ezwin:一个最小的原生 Win32 窗口库

注意:进一步的开发将作为 witer 包的一部分进行。

Crates.io Version Discord

use ezwin::prelude::*;

fn main() {
  // Configure
  let settings = WindowSettings::default();

  // Build
  let window = Window::new(settings).unwrap();

  // Run
  for message in &window {
    if let Message::Window(..) = message {
      println!("{message:?}");
    }
  }
}

目标

ezwin 的主要目标是拥有一个简单、易于使用的 API。目标受众是希望快速、轻松、以惯用方式创建窗口的开发者。我最终的目标是达到与 winit 相当的功能,作为次要目标。

跨平台支持的可能性非常小,但如果有人想要解决这个问题,欢迎提交拉取请求。

我最终希望从使用 windows 转向使用 windows-sys,以利用更好的编译时间,因为前者包含的包装器对这个包来说是多余的。

文档

随着包的发展,文档仍在进行中。这里目前可能不会有很多内容,所以如果你有任何问题,请

  • 在 GitHub 的“讨论”标签页中发帖
  • 通过 Discord 发送消息
  • 自己深入研究代码库

Cargo 特性

  • rwh_05 / rwh_06: 使用 raw-window-handle 的合适版本。默认使用 rwh_06

示例

您可以在 示例文件夹 中找到示例。您还可以查看 foxy-rs/foxy 的 vulkano 分支,截至写作时,该分支正在使用 ezwin,但可能会发生变化。

联系我

您可以通过顶部链接的 Discord 联系我,或者在 GitHub 的“讨论”标签页中发帖。

常见问题解答

问:为什么不使用 winit

A: 虽然 winit 对于几乎所有用户来说都是最佳选择,但我发现多线程窗口消息泵可以提高性能(未经证实)。此外,我对 winit API 的外观和感觉并不满意。如果您对 winit 提供的内容非常满意,那么我建议您继续使用它。

Q: 3.0 版本发生了什么?

A: 由于这个项目处于变动之中,曾经实现了一个临时的 3.0 版本,这个版本偏离了我对这个软件包的愿景。我后悔发布了那个版本,并且已经从 crates.io 上撤回了每个版本。未来,我打算更加审慎和周到地考虑发布的内容,而不是随意发布下一个大特性。

⚠️ 警告 ⚠️

该项目仍然非常不完整。毕竟,我只是一个学生。

ko-fi

依赖项

~129MB
~2M SLoC