9P Implementations

This is a list of existing client and server 9P implementations.

Name Version Client Server Lang OSs License Comments
Plan 9 from Bell Labs 9p2000 Client Server C Plan 9, Plan B LPL The original and 'reference' implementation as part of the Plan 9 operating system.
plan9port 9p2000, 9p2000.u Client Server C Most Unix variants LPL/MIT Plan 9 from User Space(aka plan9port) is a port of many user space utilities and libraries from Plan 9 to Unix systems.
Inferno 9p2000 Client Server Limbo All Inferno host systems GPL/BSD Part of the Inferno operating system, can run hosted on top of other systems.
v9fs 9p2000, 9p2000.u Client C Linux GPL File system driver for the Linux kernel.
py9p 9p2000 Client Server Python - Public Domain 9P implementation in pure python.
libixp 9p2000 Client Server C All Unix variants MIT Originally as part of the wmii project.
Ruby-IXP 9p2000 Client Server(?) Ruby - GPL A simple and fast client implementation in pure Ruby.
Rstyx 9p2000 Client Server(?) Ruby - LGPL/Ruby License Another pure Ruby implementation.
Jstyx 9p2000 Client Server Java - BSD License A 9P implementation in pure Java, also includes special libraries for grid services.
ninep 9p2000 Client Lisp - MIT A multi-threaded client implementation in Lisp.
9pvfs.tcl 9p2000 Client Server TCL - Public Domain? Transparent access to 9P server from TCL.
9pc 9p2000 Client Server C# - Public Domain? 9P for .NET environments.
rii 9p2000 Client C/Ruby - MIT? Ruby bindings to the libixp library.
ocaml-9p 9p2000 Client Ocaml - BSD OCaml-9P is a pure OCaml implementation.
styx-n-9p 9p2000 Client Java - MIT Client only multi-threaded Java implementation including Inferno authentication support.
r9p 9p2000 Client Ruby - MIT A simple client implementation for Ruby. It supports the operations of the IO class by providing a true file descriptor through a proxy thread.
9puffs 9p2000 Client C NetBSD BSD Userspace file system driver implemented on top of puffs.
9p.scm 9p2000 Client Scheme - MIT? A simple client implementation in Scheme using gauche's networking, by Neale Pickett.
PHP9P 9p2000 Client/Server PHP/C - MIT PHP bindings for libixp.
JS9P 9p2000 Client/Server JavaScript - MIT A javascript 9p library.
Net_9P 9p2000 Client/Server PHP - LGPL v2 A pure PHP implementation of 9P, to be included in PEAR.
JavaScript Styx 9p2000 Client/Server JavaScript - LGPL v2 JavaScript 9p implementation for FireFox (to be ported to other browsers in the future).
Chicken Scheme 9p 9p2000 Client/Server Chicken Scheme - BSD A pure Scheme implementation of the 9p networked filesystem protocol.
Duat 9p2000, 9p2000.u Client/Server C - BSD An I/O library for C applications. It may be used to implement FS-ish servers; primarily via the 9p2000(.u) protocol.
NPFS/SPFS 9p2000, 9p2000.u Server C - BSD-like A multi-threaded replacement of u9fs -- npfs also functions as a framework which can be easily reused to build synthetic file systems.
Lib-IXP 9p2000 Client C/Perl - MIT? Perl bindings to the [libixp library](http://repo.cat-v.org/libixp/).
J9P/StyxLib 9p2000 Client/Server Java - LGPL A pure Java implementation designed to ease the integration of legacy and non-9P services into 9P networks. Includes p9sk1, p9sk2 and Inferno message digest and encryption.
Go9p 9p2000 Client/Server Go - BSD License A 9P library in the Go programming language, by Andrey Mirtchovski and Latchesar Ionkov.

Implementations in progress for: lua and others. But don't let that deter you from writing your own! Contact me if you know of any others.