ANN: Qubes shared folders likely changing implementation of Plan 9 file server

Highly based update:

I found two Rust implementations of Plan 9 file serving:

  1. GitHub - pfpacket/rust-9p: Tokio-based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9. : Works, is Tokio async, but doesn’t have support for using file descriptors as communication channels (prerequisite to use it via qrexec). I have added support for that, and contributed to upstream in this pull request. Regrettably, the implementation seems a bit messy, upstream seems dead, and there are no tests I can speak highly of.
  2. GitHub - google/rust-p9 : Ugh. I have to hold my nose to use code from these freaks, but at least this specific code base works, has tests (even fuzzing, it appears), and uses good practices. The server implementation doesn’t actually have a server executable you can run, so I have written one compatible with file descriptors as communication channels.

The server code will be pushed shortly to the Qubes network server repo. After pushing the code, I will work on RPM packaging (it’s Rust code— it’ll be my first time doing that) so it can be distributed properly.

This is awesome! This means we can finally say goodbye to diod!

**Update: the code has been pushed to a branch. the code has been tested, pushed and tagged on the repository.

3 Likes