Module fuse_backend_rs::api::server

source ·
Expand description

Fuse API Server to interconnect transport layers with filesystem drivers.

The Fuse API server is a adapter layer between transport layers and file system drivers. The main functionalities of the Fuse API server is:

  • Support different types of transport layers, fusedev, virtio-fs or vhost-user-fs.
  • Hide different transport layers details from file system drivers.
  • Parse transport messages according to the Fuse ABI to avoid duplicated message decoding in every file system driver.
  • Invoke file system driver handler to serve each request and send the reply.

The Fuse API server is performance critical, so it’s designed to support multi-threading by adopting interior-mutability. And the arcswap crate is used to implement interior-mutability.

Structs

Fuse Server to handle requests from the Fuse client and vhost user master.

Constants

Maximum buffer size of FUSE requests.
Maximum number of pages required for FUSE requests.

Traits

Provide concrete backend filesystem a way to catch information/metrics from fuse.