#bare-bones #9p #serving #framework #protocols #server

arigato

barebones Rust framework for creating and serving a 9p filesystem

2 unstable releases

0.2.0 Oct 9, 2024
0.1.0 Apr 13, 2024

#368 in Filesystem

MIT license

110KB
2K SLoC

arigato!

arigato is a very barebones Rust framework for creating and serving a 9p filesystem. Running on port 564 is customary; you may need to use setcap or iptables or something to route traffic to your binary.

This currently only supports 9P2000.u; but that may change in the future. This uses nightly-only features and isn't documented. Most of this was written fairly quickly and carelessly to implement debugfs but I may keep this up to date over the next few years.

Example Usage

Given an arigato 9p server running on tcp port 5641, with a mountpoint exposed with the name foo, the following will mount it to /mnt:

$ sudo mount \
  -t 9p \
  -o trans=tcp,port=5641,version=9p2000.u,aname=foo \
  127.0.0.1 \
  /mnt

lib.rs:

Arigato! Plan 9! In Rust!

For those not yet in on the bit, "Mr. Roboto" is a song by Styx. Styx is also the name of the 9P protocol.

Dependencies

~3–11MB
~100K SLoC