Apache Iggy
Binary Protocol

Binary Protocol

Iggy speaks one binary protocol over its three binary transports: TCP, QUIC, and WebSocket. Commands, responses, data models, and status codes are the same on all of them. The HTTP transport is separate: it exposes the same operations as JSON REST endpoints, listed in server.http.

This section describes binary protocol version 0.11.0. The protocol version is the semver of the iggy_binary_protocol crate, and it's exchanged and checked during login (see Connection lifecycle). The crate itself is the source of truth: every request and response module carries a Wire format: doc comment, and these pages are written against those.

All multi-byte integers are little-endian unless stated otherwise.

The same 256-byte header layout carries two traffic planes. The pages below cover both:

  • Server ↔ SDK client, everything a client sends or receives:
  • Server ↔ server, the replica-to-replica consensus traffic that never appears on a client connection: