Skip to content

feat(q): decode Q wire messages received by an external transport#2

Merged
protocolstardust merged 1 commit into
masterfrom
fixes
Jul 21, 2026
Merged

feat(q): decode Q wire messages received by an external transport#2
protocolstardust merged 1 commit into
masterfrom
fixes

Conversation

@birrgrrim

Copy link
Copy Markdown
Collaborator

Expose q_decode from the vendored client and wrap it as q::decode_response(), which turns a complete Q IPC message (8-byte wire header + body, compressed or not) into a Value.

This splits the client in two: socket I/O can now live in a separate transport service/thread that owns a plain TcpStream and just moves bytes, while deserialization into engine objects stays on the thread that owns the Runtime. Q server-side errors surface as Err.

Expose q_decode from the vendored client and wrap it as
q::decode_response(), which turns a complete Q IPC message
(8-byte wire header + body, compressed or not) into a Value.

This splits the client in two: socket I/O can now live in a
separate transport service/thread that owns a plain TcpStream
and just moves bytes, while deserialization into engine objects
stays on the thread that owns the Runtime. Q server-side errors
surface as Err.
@protocolstardust
protocolstardust merged commit 13894ca into master Jul 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants