FuseMT -- A higher-level FUSE (Filesystem in Userspace) interface and wrapper around the
rust-fuse library that makes implementing a filesystem a bit easier.
FuseMT translates inodes to paths and dispatches I/O operations to multiple threads, and
simplifies some details of filesystem implementation, for example: splitting the
into multiple separate operations, and simplifying the
readdir call so that filesystems don't
need to deal with pagination.
To implement a filesystem, implement the
FilesystemMT trait. Not all functions in it need to
be implemented -- the default behavior is to return
ENOSYS ("Function not implemented"). For
example, a read-only filesystem can skip implementing the
write call and many others.
Dummy struct returned by the callback in the
The return value for
A directory entry.
Info about a request.
Represents the return value from the
This trait must be implemented to implement a filesystem with FuseMT.
Mount the given filesystem to the given mountpoint. This function will not return until the filesystem is unmounted.
Mount the given filesystem to the given mountpoint. This function spawns a background thread to handle filesystem operations while being mounted and therefore returns immediately. The returned handle should be stored to reference the mounted filesystem. If it's dropped, the filesystem will be unmounted.