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
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.
WARNING: WORK IN PROGRESS
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
This repository provides the following packages:
styxproto: Low-level decoder and encoder for 9P2000 messages.
styx: high-level server package akin to net/http
styxauth - various styx.AuthFunc implementations
Of these, styxproto is the most stable. The styx package is still in
an experimental stage.