3 ms·
> You simply need to implement the vfs::NFSFileSystem trait. Wait, what...... .. So not only is it an easy-to-run Rust NFS server and client (I gave up on NFS
by ReactiveJelly 3y ago
> You simply need to implement the vfs::NFSFileSystem trait.
Wait, what......
.. So not only is it an easy-to-run Rust NFS server and client (I gave up on NFS some years ago because I couldn't figure out how to run Samba) but it's also meant to use as a _substitute_ for FUSE in stacks like SSHFS or an app wanting to serve debug data as files?
Awesome!
- eqvinox 3y agoI don't think this includes a client, in fact the post argues that not having to implement the client because it already exists in the kernel was a major benefit of the approach…
- ylow 3y agoExactly. You build the server-side (as a FUSE alternative), and just use the OS's NFS client to mount it.
- inferiorhuman 3y agoSweet! I've been monkeying around with writing an HFS interpreter (in rust ofc). Unfortunately 'fuser' is less than ideal on a Mac. This could be an interesting alternative. Edit: Oh. It's async. The other bit that I liked from fuser: the default implementations in the trait cut down on the boiler plate. Setting the RO mount option got you defaults that DTRT.
- ReactiveJelly 3y agoYou can interoperate async and threads, but yes you have to tolerate having Tokio or similar as a dep