Liking cljdoc? Tell your friends :D

Plan 9 Filesystem Protocol, as implemented in Clojure.

Build Status

[phlegyas "0.1.7"]

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.

Notes

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).

TODO

Authentication is not yet supported. The example VFS is rudimentary and leaves room for improvement.

Can you improve this documentation? These fine people already did:
Dominic Pearson & zuccon
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close