Expand description
Async RESP3 codec — state machine mirroring the blocking
[kevy_resp_client::RespClient] but with async IO.
Reuses kevy_resp::{encode_command, parse_reply} for the pure parse
/ encode logic so the wire format never has two implementations.
What’s different here is the IO loop: instead of blocking
Read::read we drive the codec on top of any
AsyncTransport.
The state machine is identical to blocking:
encode_command(args)→write_allover the transport.- Loop:
parse_reply(&buf); onNoneawait onereadchunk and extendbuf; onSome((reply, used))drainusedand return.
No buffered allocations beyond what blocking does (one growable
buf for partial replies + one boxed chunk for reads). Pipelining
reuses this same codec — run_pipeline writes N commands in one
batch and reads N replies in sequence (T4.16).
Structs§
- Async
Resp Codec - Buffered RESP3 codec over an
AsyncTransport.