P9 Versions Save

Idiomatic Go 9P2000.L client and server, extracted from gVisor for general use

v0.3.0

9 months ago

A few bug fixes and a few new features.

Bug fixes:

  • staticfs now compliant with 9P2000.L Linux kernel client (and tested to be).
  • ede3efe contains fix for servers in use with Linux kernels built after 9/2020 walking open FIDs, which are spec-non-compliant.
  • 218df7a allows server p9.File implementations to omit returning a QID on clones, as is spec-compliant.

Performance:

  • 7d660a9 nudges clients to use msize-sized iounits for opened files for localfs.
  • 78606c4 improved throughput by 13MB/s to 92MB/s (Linux kernel client over QEMU TCP) (d40d140 fixes the client bug introduced by this, also in this release).

Features:

  • Locks & extended attributes are now supported, with new methods in p9.File to implement for servers (some help for xattr on local file systems in fsimpl/xattr)
    • Extended attributes are only supported by the server-side implementation. The client-side implementation is missing so far.
  • composefs: a file system to compose disjoint files and file systems (i.e. p9.Files and p9.Attachers) into one 9P file server

v0.2.0

2 years ago

v0.1.0

3 years ago