docs: add multi-language documentation (ru, fa, zh, tr, ar)
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# API бинарного протокола
|
||||
|
||||
Низкоуровневый wire-протокол для высокопроизводительных клиентских соединений.
|
||||
|
||||
## Формат сообщения
|
||||
|
||||
Все сообщения используют порядок байтов big-endian:
|
||||
|
||||
```
|
||||
┌────────┬────────┬────────┬────────┬─────────────┐
|
||||
│ Length │ Type │ Seq │ Status │ Payload │
|
||||
│ 4 bytes│ 1 byte │ 2 bytes│ 1 byte │ N bytes │
|
||||
└────────┴────────┴────────┴────────┴─────────────┘
|
||||
```
|
||||
|
||||
## Типы сообщений
|
||||
|
||||
### Query (0x01)
|
||||
|
||||
```nim
|
||||
let msg = makeQueryMessage(seq, "SELECT * FROM users")
|
||||
```
|
||||
|
||||
### Insert (0x02)
|
||||
|
||||
```nim
|
||||
let msg = makeInsertMessage(seq, "users", data)
|
||||
```
|
||||
|
||||
### Update (0x03)
|
||||
|
||||
```nim
|
||||
let msg = makeUpdateMessage(seq, "users", updates, where)
|
||||
```
|
||||
|
||||
### Delete (0x04)
|
||||
|
||||
```nim
|
||||
let msg = makeDeleteMessage(seq, "users", where)
|
||||
```
|
||||
|
||||
### Ready (0x05)
|
||||
|
||||
```nim
|
||||
let msg = makeReadyMessage(seq)
|
||||
```
|
||||
|
||||
### Error (0x06)
|
||||
|
||||
```nim
|
||||
let msg = makeErrorMessage(seq, code, message)
|
||||
```
|
||||
|
||||
## Коды ответов
|
||||
|
||||
| Код | Имя | Описание |
|
||||
|-----|-----|---------|
|
||||
| 0x00 | OK | Успех |
|
||||
| 0x01 | ERROR | Общая ошибка |
|
||||
| 0x02 | AUTH_REQUIRED | Требуется аутентификация |
|
||||
| 0x03 | INVALID_QUERY | Синтаксическая ошибка запроса |
|
||||
| 0x04 | NOT_FOUND | Ресурс не найден |
|
||||
|
||||
## Сериализация
|
||||
|
||||
```nim
|
||||
import barabadb/protocol/wire
|
||||
|
||||
let bytes = serializeValue(Value(kind: vkString, strVal: "test"))
|
||||
let value = deserializeValue(bytes)
|
||||
```
|
||||
Reference in New Issue
Block a user