Expand description
Some utilities to support fuse-backend-rs.
§Wrappers for Rust async io
It’s challenging to support Rust async io, and it’s even more challenging to support Rust async io with Linux io-uring.
This common
module adds a wrapper layer over tokio and tokio-uring to simplify the way to support Rust async io by providing:
- FileReadWriteVolatile: A trait similar to std::io::Read and std::io::Write, but uses FileVolatileSlice objects as data buffers.
- FileVolatileSlice: An adapter structure to work around limitations of the vm-memory crate.
- FileVolatileBuf: An adapter structure to support io-uring based asynchronous IO.
- File: An adapter for for tokio::fs::File and [tokio-uring::fs::File].
- Runtime: An adapter for for tokio::runtime::Runtime and [tokio-uring::Runtime].
Modules§
- async_
file File
to wrap overtokio::fs::File
andtokio-uring::fs::File
.- async_
runtime Runtime
to wrap over tokio current-threadRuntime
and tokio-uringRuntime
.- file_
buf - Provide data buffers to support tokio and tokio-uring based async io.
- file_
traits - File extension traits to transfer data between File objects and VolatileSlice buffers.
- mpmc
- Asynchronous Multi-Producer Multi-Consumer channel.