RStyx is an implementation of the Styx/9P2000 distributed filesystem protocol used on Plan 9 and Inferno. As of now, we've got a more full client which supports Inferno authentication but not yet the encryption layer used by Inferno. The API is fairly simple at the moment. To open and read a file on a remote Styx server, the following code should suffice:
RStyx::Client::TCPConnection.new(styxserver, serverport) do |conn|
conn.open(myfile, "r") do |fp|
data = fp.read
end
end
Writing files is equally simple.
The design of this library is heavily influenced by the PyStyx Python Styx client and JStyx. The Inferno authentication code is based on the Java styx-n-9p code released by Vitanuova Inc.
There is a server in heavy development, that more or less works, but is still somewhat incomplete.
The client code needs far more extensive unit tests behind it. There's probably a bit of breakage there that hasn't manifested in my cursory tests connecting against a real Styx server.
The server code is not very well tested. The new Inferno keyring authentication code needs to be integrated into the Styx server.
If you wish to install this not via rubygems but manually, copy the contents of the lib/ directory to a convenient location where Ruby includes can find it, e.g. /usr/lib/ruby/site_ruby/1.8. You'll also need EventMachine to use it.
Rafael R. Sevilla (dido period sevilla at-mark gmail dot com)