Liking cljdoc? Tell your friends :D

Plan 9 Filesystem Protocol, as implemented in Clojure.

Build Status

[phlegyas "0.1.6"]

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.

Development Notes

I have included a built-in TCP server in order to aid this development, accessible from the phlegyas.core namespace.

Jack in with Spacemacs/CIDER with ,' and then, at the REPL, (r)

This will start a server at localhost on port 10001.

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

This should aid in the development cycle.

The example VFS layer will create a single filesystem for attaching, and some example files within, with both dynamic and static content.

When hitting inevitable issues, a simple call to (r) again will reset the service back to a clean state, ready to continue on your adventures.

Can you improve this documentation?Edit on GitHub

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

× close