docs: add multi-language documentation (ru, fa, zh, tr, ar)
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# Справочник по протоколу
|
||||
|
||||
BaraDB поддерживает несколько протоколов для клиентской коммуникации:
|
||||
- **Binary Wire Protocol** — высокопроизводительный, низкая латентность
|
||||
- **HTTP/REST API** — независимый от языка, легко отлаживать
|
||||
- **WebSocket** — потоковая передача и pub/sub
|
||||
|
||||
## Binary Wire Protocol
|
||||
|
||||
Использует big-endian кодирование для всех многобайтовых значений.
|
||||
|
||||
### Цикл соединения
|
||||
|
||||
```
|
||||
Client Server
|
||||
| |
|
||||
|─── TCP connect ──────────────>|
|
||||
|<── TLS handshake (optional) ──|
|
||||
|─── Auth message ─────────────>|
|
||||
|<── Auth_OK / Error ───────────|
|
||||
|─── Query message ────────────>|
|
||||
|<── Data / Complete / Error ───|
|
||||
|─── Close message ────────────>|
|
||||
|<── TCP close ─────────────────|
|
||||
```
|
||||
|
||||
### Формат сообщения
|
||||
|
||||
```
|
||||
┌─────────────┬─────────────┬─────────────┬─────────────────────┐
|
||||
│ Length │ Type │ Sequence │ Payload │
|
||||
│ (4 bytes) │ (1 byte) │ (1 byte) │ (Length - 6 bytes) │
|
||||
└─────────────┴─────────────┴─────────────┴─────────────────────┘
|
||||
```
|
||||
|
||||
### Типы сообщений
|
||||
|
||||
| Тип | ID | Направление | Описание |
|
||||
|----|----|-------------|---------|
|
||||
| Query | 0x01 | C→S | Выполнить запрос |
|
||||
| Insert | 0x02 | C→S | Вставить данные |
|
||||
| Update | 0x03 | C→S | Обновить данные |
|
||||
| Delete | 0x04 | C→S | Удалить данные |
|
||||
| Ready | 0x05 | S→C | Готов к следующей команде |
|
||||
| Error | 0x06 | S→C | Ответ об ошибке |
|
||||
|
||||
## HTTP/REST API
|
||||
|
||||
Base URL: `http://localhost:9470/api/v1`
|
||||
|
||||
### Endpoints
|
||||
|
||||
#### Health
|
||||
|
||||
```http
|
||||
GET /health
|
||||
```
|
||||
|
||||
#### Query
|
||||
|
||||
```http
|
||||
POST /query
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"query": "SELECT name, age FROM users WHERE age > 18"
|
||||
}
|
||||
```
|
||||
|
||||
#### Schema
|
||||
|
||||
```http
|
||||
GET /schema
|
||||
```
|
||||
|
||||
## WebSocket Protocol
|
||||
|
||||
URL: `ws://localhost:9471`
|
||||
|
||||
### Pub/Sub
|
||||
|
||||
```javascript
|
||||
ws.send(JSON.stringify({
|
||||
type: 'subscribe',
|
||||
table: 'users'
|
||||
}));
|
||||
```
|
||||
Reference in New Issue
Block a user