Expand description
§kmb-wire: Binary wire protocol for Kimberlite
This crate defines the binary wire protocol used for client-server
communication in Kimberlite.
§Frame Format
┌─────────┬─────────┬──────────┬──────────┬──────────────────┐
│ Magic │ Version │ Length │ Checksum │ Payload │
│ (4 B) │ (2 B) │ (4 B) │ (4 B) │ (var) │
└─────────┴─────────┴──────────┴──────────┴──────────────────┘- Magic:
0x56444220(“VDB “) - Version: Protocol version (currently 1)
- Length: Payload length in bytes (max 16 MiB)
- Checksum: CRC32 of payload
- Payload: Bincode-encoded message
§Message Types
Messages are either requests (client → server) or responses (server → client). Each request has a corresponding response type.
Structs§
- Append
Events Request - Append events request.
- Append
Events Response - Append events response.
- Create
Stream Request - Create stream request.
- Create
Stream Response - Create stream response.
- Error
Response - Error response.
- Frame
- A complete frame with header and payload.
- Frame
Header - Frame header containing metadata about the payload.
- Handshake
Request - Handshake request to establish connection.
- Handshake
Response - Handshake response.
- Query
AtRequest - SQL query at specific position request.
- Query
Request - SQL query request.
- Query
Response - Query response.
- Read
Events Request - Read events request.
- Read
Events Response - Read events response.
- Request
- A client request to the server.
- Request
Id - Unique identifier for a request, used to match responses.
- Response
- A server response to a client request.
- Sync
Request - Sync request.
- Sync
Response - Sync response.
Enums§
- Error
Code - Error codes for wire protocol errors.
- Query
Param - Query parameter value.
- Query
Value - Query result value.
- Request
Payload - Request payload variants.
- Response
Payload - Response payload variants.
- Wire
Error - Errors that can occur during wire protocol operations.
Constants§
- FRAME_
HEADER_ SIZE - Frame header size in bytes (magic + version + length + checksum).
- MAGIC
- Protocol magic bytes: “VDB “ in big-endian.
- MAX_
PAYLOAD_ SIZE - Maximum payload size (16 MiB).
- PROTOCOL_
VERSION - Current protocol version.
Type Aliases§
- Query
AtResponse - Query at response (same as Query).
- Wire
Result - Result type for wire protocol operations.