This repo provides Go packages for writing 9P2000 file servers. One such example is jsonfs, which serves a JSON-encoded file as a file tree. Currently, only server functionality is provided, though a client is planned -- see plan9port, v9fs for client implementations.
9P2000 provides a lightweight, stateful protocol for using hierarchical
APIs. The styx
package attempts to expose, rather than hide, this
statefulness; user sessions are handled by, and tied to the lifetime of,
a single function.
This is a work-in-progress on a high-level library for writing 9P servers and clients. While it has reached a point where it can be used to write working file systems, the high-level API and its implementation are still subject to change. For now, please vendor this dependency if you would choose to use it.
This repository provides the following packages:
styxproto
: Low-level decoder and encoder for 9P2000 messages.styx
: high-level server package akin tonet/http
styxauth
- variousstyx.AuthFunc
implementations
Of these, styxproto
is the most stable. The styx
package is still in
an experimental stage.