Сервер и клиент взаимодействуют по TCP с простым framed‑протоколом и JSON‑ответами.
Реализация: src/main/java/ru/open/cu/student/protocol/FramedProtocol.java
Формат сообщения:
┌────────────┬─────────────────────────┐
│ Length (4B)│ Payload (UTF-8 bytes) │
└────────────┴─────────────────────────┘
Где Length — длина payload в байтах (big‑endian), payload — UTF‑8 строка.
Payload запроса: SQL‑строка.
Payload ответа: JSON.
{
"ok": true,
"columns": ["id", "name"],
"rows": [[1, "Alice"], [2, "Bob"]]
}{
"ok": false,
"errorStage": "PARSER",
"errorMessage": "Expected SELECT, CREATE or INSERT"
}errorStage соответствует стадии pipeline (см. PIPELINE.md).
CLI может отображать:
- “pretty” таблицы (читаемый вывод),
- raw JSON‑ответы (для отладки протокола).
Подробности запуска: DEVELOPMENT.md.