libixp is a stand-alone client/server 9P library including
ixpc client. It consists of less than 2000 lines of code (including
libixp’s server API is based heavily on that of Plan 9’s
lib9p, and the two libraries export virtually identical data structures. There are a few notable differences between the two, however:
libixpmultiplexes connections internally, while on
Plan 9, the kernel performs this task, and in plan9port, a separate process is spawned to do so. Despite this divergence, the user of the library will not notice any difference in behavior, except that there may be duplicate
fidnumbers between different connections. This issue is of little relevance, however, as the library handles the task of mapping
tags to arbitrary pointers and
libixpis released under a lenient MIT-style license, with the exception of the file
intmap.c, which comes from
Plan 9, and falls under the LPL. This file may be rewritten at some point, but the authors, as of yet, has been uncompelled to do so.
lib9p’s file trees.
libixpis POSIX based, and should compile without specialized libraries on nearly any POSIX system.
The latest libixp code can be checked out with mercurial:
hg clone http://code.suckless.org/hg/libixp
Original code by garbeam, most of it rewriten and heavily improved by Kris Maglione, other small fixes and improvements by others.