6 个版本
0.2.3 | 2023 年 8 月 24 日 |
---|---|
0.2.2 | 2023 年 4 月 2 日 |
0.2.1 | 2023 年 3 月 27 日 |
0.1.4 | 2023 年 3 月 27 日 |
0.1.1 |
|
#1335 in 异步
140KB
2.5K SLoC
tokio-iocp
此 crate 受 tokio-uring
启发,通过公开一个新的与 Tokio 兼容且可以驱动 IOCP 支持的资源兼容的运行时,为 Tokio 提供 IOCP。任何与 Tokio 工作的库也适用于 tokio-iocp
。该 crate 提供了与 IOCP 一起工作的新资源类型。
入门指南
使用 tokio-iocp
需要启动一个 tokio-iocp
运行时。此运行时内部管理主要的(单线程)Tokio 运行时和一个 IOCP 驱动程序。
use tokio_iocp::fs::File;
fn main() -> Result<(), Box<dyn std::error::Error>> {
tokio_iocp::start(async {
// Open a file
let file = File::open("hello.txt")?;
let buf = Vec::with_capacity(4096);
// Read some data, the buffer is passed by ownership and
// submitted to the kernel. When the operation completes,
// we get the buffer back.
let (res, buf) = file.read_at(buf, 0).await;
let n = res?;
// Display the contents
println!("{:?}", &buf);
Ok(())
})
}
要求
Windows。
项目状态
tokio-iocp
项目还非常年轻。目前,我们专注于支持文件系统和网络操作。我们期待您的贡献!
许可证
此项目受 MIT 许可证 许可。
依赖
~21–34MB
~472K SLoC