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日 |
#102 在 Windows API
每月 562 次下载
18KB
327 行
wePoll 绑定
使用 wepoll 和 wepoll-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