Module fuse_backend_rs::common
source · 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§
File
to wrap overtokio::fs::File
andtokio-uring::fs::File
.Runtime
to wrap over tokio current-threadRuntime
and tokio-uringRuntime
.- Provide data buffers to support tokio and tokio-uring based async io.
- File extension traits to transfer data between File objects and VolatileSlice buffers.
- Asynchronous Multi-Producer Multi-Consumer channel.