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§
- Provide data buffers to support tokio and tokio-uring based async io.
- File extension traits to transfer data between File objects and VolatileSlice buffers.