ID | IEP-76 |
Author | |
Sponsor | |
Created |
|
Status | DRAFT |
Thin client protocol will be the primary way to interact with Ignite 3.0 from code.
Adapt Ignite 2.x protocol for Ignite 3.0. Main differences are:
ClientConnectorConfiguration
class.MsgPack is used for data serialization.
Ignite data types defined in IEP-54 map to MsgPack data types the following way:
Ignite Type | Size | MsgPack Type | Notes |
---|---|---|---|
Bitmask(n) | ⌈n/8⌉ bytes | bin8 / bin16 / bin32 | |
IntX, UintX | 1-8 bytes | fixint / intX / uintX | Integer types are interchangeable when possible. fixint (1 byte) can be passed as a value for uint64 column. |
Float | 4 bytes | float32 | |
Double | 8 bytes | float64 | |
Number([n]) | Variable | ext16 (up to 2^8 - 1 bytes) | Extension 1 |
Decimal | Variable | ext16 (up to 2^8 - 1 bytes) | Extension 2 |
UUID | 16 bytes | fixext16 | Extension 3 |
String | Variable | str | |
Date | 3 bytes | fixext4 | Extension 4 |
Time | 4 bytes | fixext4 | Extension 5 |
Datetime | 7 bytes | fixext8 | Extension 6 |
Timestamp | 8 bytes | timestamp 64 | |
Binary | Variable | bin32 (up to 2^32 - 1 bytes) |
"Extension X" is a MsgPack extension type (up to 128 extension types are allowed).
All messages, request and response, except handshake, start with unsigned integer
message length (excluding the length itself). Any MsgPack integer type can be used, so that shorter messages use smaller type to encode length. Empty message will be single 0 byte.
positive fixint / uint8 / uint16 / uint32 / uint64 | Length of Payload |
... | Payload |
TODO: Magic word, features as map
TODO