Binary protocol
This section provides information on the Tarantool binary protocol, iproto. The protocol is called “binary” because the database is most frequently accessed via binary code instead of Lua request text. Tarantool experts use it:
- to write their own connectors
- to understand network messages
- to support new features that their favorite connector doesn’t support yet
- to avoid repetitive parsing by the server
The binary protocol provides complete access to Tarantool functionality, including:
- request multiplexing, for example ability to issue multiple requests asynchronously via the same connection
- response format that supports zero-copy writes
Note
Since version 2.11.0, you can use the box.iproto submodule to access IPROTO constants and features from Lua. The submodule enables to send arbitrary IPROTO packets over the session’s socket and override the behavior for all IPROTO request types. Also, IPROTO_UNKNOWN constant is introduced. The constant is used for the box.iproto.override() API, which allows setting a handler for incoming requests with an unknown type.
- Understanding the binary protocol
- MP_* MessagePack types
- Request and response format
- Keys used in requests and responses
- Client-server requests and responses
- Session start and authentication
- Streams
- Events and subscriptions
- Graceful shutdown protocol
- SQL-specific requests and responses
- Replication requests and responses