ninep-client 0.2.0

Async 9P2000.L client with transparent reconnection
Documentation

Asynchronous 9P2000.L client.

Reconnection

Fids and byte-range locks are connection-scoped. The client records their replay state, reconnects with backoff, and restores that state before releasing blocked requests. Reorder-sensitive mutations retain one op-id across resends. Resends stop at the protocol retry horizon; expiry returns a disconnect error with an ambiguous outcome.

An op-id is local to one public mutation future and is not reusable after the future completes or is cancelled.

Dropping a future after a fid- or lock-state request is dispatched retires the connection that carried it. If that connection is still current, requests wait for reconnect and replay before resuming.

The negotiated message size is fixed for the logical session. Reconnect candidates must negotiate the same value.

Replay restores recorded fids and locks before the replacement connection becomes live. An opened fid that no longer exists becomes an ESTALE tombstone; its operations fail without affecting other fids. Failure to restore a held lock terminates the logical session.