11 个稳定版本

3.0.0 2020年10月2日
2.0.2 2020年5月23日
2.0.0 2020年4月26日
1.1.0 2020年2月10日
1.0.4 2019年4月6日

#102Windows API

Download history 182/week @ 2024-04-07 272/week @ 2024-04-14 284/week @ 2024-04-21 240/week @ 2024-04-28 237/week @ 2024-05-05 267/week @ 2024-05-12 219/week @ 2024-05-19 239/week @ 2024-05-26 241/week @ 2024-06-02 121/week @ 2024-06-09 223/week @ 2024-06-16 232/week @ 2024-06-23 52/week @ 2024-06-30 79/week @ 2024-07-07 214/week @ 2024-07-14 184/week @ 2024-07-21

每月 562 次下载

MPL-2.0 许可证

18KB
327

wePoll 绑定

使用 wepollwepoll-sys 的安全 Rust 绑定。

要求

  • Rust 2018
  • Windows
  • clang
  • 如 gcc、MSVC 编译器(cl.exe)等编译器

用法

将 wePoll 绑定作为 Windows 依赖项添加(因为它不会在其他平台上构建)

[dependencies.'cfg(windows)'.dependencies]
wepoll-binding = "^2.0"

接下来,您需要创建一个 Epoll 实例,并将其与一些套接字注册

use wepoll_binding::{Epoll, EventFlag};
use std::net::UdpSocket;

let epoll = Epoll::new().unwrap();
let socket = UdpSocket::new("0.0.0.0:0").unwrap();

epoll.register(&socket, EventFlag::OUT | EventFlag::ONESHOT, 42).unwrap();

您可以使用 Epoll::poll() 来轮询事件。为此,您需要创建一个 Events 缓冲区

use wepoll_binding::{Epoll, EventFlag, Events};
use std::net::UdpSocket;

let epoll = Epoll::new().unwrap();
let socket = UdpSocket::new("0.0.0.0:0").unwrap();
let mut events = Events::with_capacity(1);

epoll.register(&socket, EventFlag::OUT | EventFlag::ONESHOT, 42).unwrap();
epoll.poll(&mut events, None);

请注意,wePoll(以及因此此绑定)仅支持套接字,因此您不能使用任意文件描述符。

许可证

此存储库中所有源代码均受 Mozilla 公共许可证版本 2.0 许可,除非另有说明。该许可证的副本可在 "LICENSE" 文件中找到。

依赖关系

~150–360KB