Amaquet protocol overview
Amaquet is Amaquet’s binary framed protocol. It is not RESP and it does not proxy Redis.
Two URI schemes are recognized:
amaquet://for plain TCP.amaquets://for TLS.
The default port is 13378.
Request flow
Section titled “Request flow”Connections negotiate the single supported protocol version before normal command traffic. Authentication follows negotiation when enabled, after which request IDs let command responses complete independently.
- Open TCP/TLS connection.
- Send
HELLOto negotiate protocol version and inspect server metadata/identity (the Go client does this automatically). - If authentication is required, send
AUTH. - Send command frames. Request IDs allow responses to be matched to requests.
- For Pub/Sub,
SUBSCRIBEcreates an event stream whose event frames reuse the subscription request ID.
Payload encoding
Section titled “Payload encoding”Frame payloads are JSON. Framing is binary; command values are typed JSON structures.
Protocol version 1 capabilities advertised by HELLO are cancel, batch, cas, scan, chunked_blob, and pubsub. The protocol supports multiplexed command responses but makes no cross-command transaction guarantee.
Hard limits
Section titled “Hard limits”The protocol implementation has a 64 MiB hard payload ceiling. The server can configure a smaller per-connection maximum with limits.max_payload_bytes.
The configured read timeout applies while waiting for the next frame/header/payload; successful reads refresh it. The write timeout applies to responses and Pub/Sub event frames. limits.command_timeout_ms creates a context deadline for each command and synchronous non-command opcode handler.