7 个不稳定版本

0.3.3 2020年9月26日
0.3.2 2020年9月25日
0.2.0 2019年12月10日
0.1.0 2019年11月8日
0.0.0-ringbahn.12020年5月27日

#1081 in 异步

Download history 2053/week @ 2024-03-14 1754/week @ 2024-03-21 2076/week @ 2024-03-28 1457/week @ 2024-04-04 2563/week @ 2024-04-11 2631/week @ 2024-04-18 2412/week @ 2024-04-25 1835/week @ 2024-05-02 1673/week @ 2024-05-09 2655/week @ 2024-05-16 2474/week @ 2024-05-23 2438/week @ 2024-05-30 1714/week @ 2024-06-06 2931/week @ 2024-06-13 2843/week @ 2024-06-20 2007/week @ 2024-06-27

9,784 每月下载量
用于 3 crates

MIT/Apache

80KB
1.5K SLoC

Linux 的 io_uring 接口

iou 是一个围绕 liburing 库的包装器,它提供了对 Linux 新的 io_uring 接口的高级接口。它旨在为任何 io_uring 的使用案例提供可扩展性和灵活性,同时仍在用户的利益方面解决许多基本的安全问题。

iou 的主要 API 是 IoUring 类型及其组件,包括 SubmissionQueueCompletionQueueRegistrar。这提供了一个类似 Rust 的高层 API,用于管理 io_uring。

安全性

iou 中的大多数 API 都是安全的,并且在使用 io_uring 时解决了许多安全问题。特别是,iou 所基于的 liburing 库正确实现了与内核通过 io_uring 接口进行协调所需的原子操作。然而,一些关键接口仍然是不安全的。特别是,为 io_uring 准备要提交的 IO 事件是不安全的:用户必须确保在 IO 的生命周期内缓冲区和文件描述符被视为借用。

内核支持

为了使用 io_uring,你运行代码的机器必须有一个支持该接口的内核。io_uring 的第一个版本是在 Linux 5.1 中添加的,但它不包括此库所支持的所有功能。此库的一些功能可能取决于你使用的 Linux 版本,可能无法正常工作。

依赖项

~2MB
~49K SLoC