ninep-client 0.1.2

Async 9P2000.L client with transparent reconnection
Documentation

Asynchronous 9P2000.L client.

Reconnection

9P sessions are stateful: every fid and byte-range lock lives on the connection, so a dropped socket invalidates all of it. This client records, per fid, the stable inode id it points at (plus open flags) and which locks it holds, in [SessionState]; a supervisor task reconnects (indefinite backoff) and replays that state onto the fresh session. Requests block through the reconnect and are resent. A request in flight at the drop is ambiguous; under .zerofs3 every non-idempotent mutation carries a stable op-id (including the fid-opening create, Tlcreate), so the server deduplicates the resend instead of double-applying it.