[phlegyas "0.1.8"]
The vast majority of the protocol-level documentation was sourced from the wonderful Plan 9 from User Space project.
I have copied the test resources from droyo's styx package, credit due for making it available.
Run lein test
to verify things work as they should. Currently, 100% of the provided framedumps are successfully handled, hopefully indicating that this is fully up to spec.
Note the field names in types.clj
. The assemble-packet
function will take a map of these and create a byte-array for you. disassemble-packet
will do the reverse.
An example server is available (see the phlegyas.server
namespace).
Client routines are also available (see the phlegyas.client
namespace).
For testing, build plan9port (will require compilers & development headers):
git clone https://github.com/9fans/plan9port.git && cd plan9port && ./INSTALL
Or, alternatively, if you have Docker installed, there is a project that will do this for you inside a container, so you don't have to touch your base system.
Then, run the built 9P FUSE client, e.g.:
9pfuse -D 'tcp!localhost!10001' mountpoint
The example VFS layer will create a single filesystem for attaching, and some example files within, with both dynamic and static content (see the phlegyas.vfs
namespace).
Authentication is not yet supported. The example VFS is rudimentary and leaves room for improvement.