纯 Rust io_uring 库,基于 libc,支持线程和异步操作,抗误用
rio 旨在利用 Rust 的编译时检查来提高对误用的抵御能力,与其他语言中的 io_uring 接口相比,但用户应注意,在使用 rio 时,unsafe 仍然可能导致use-after-free 错误。**Completion 会借用请求中涉及的缓冲区,其析构函数会阻塞,以延迟释放这些缓冲区,直到相应的请求完成;但在 Rust 中,它被认为是安全的,对象的生命周期内的借用不会导致其析构函数运行,并且这可能以各种方式发生,包括通过 std::mem::forget。请注意不要让完成函数以这种方式泄露,如果 Rust 的可靠性保证对您很重要,您可能会想避免使用此 crate。
Completion 实现了 Future)IoSlice 或 libc::iovec。rio 会在后台为您维护这些内容。暂无开放 Issues,或尚未同步最近议题。