Roman Gromov C++ web systems architect & software engineer
Дорожная карта
Функция
Максимальный
Запланировано

Sapphire IPC: протокол и многоязычные SDK для сторонних разработчиков

Версионируемый IPC-контур и SDK позволят расширять Sapphire I.C.D.S. из C, C++, Go, Rust, Zig и других языков без доступа к закрытому ядру.
0%
Тип
Функция
Приоритет
Максимальный
Цель
02.08.2026
Прогресс
0%

Содержимое

Цель

Создать стабильный, версионируемый и безопасный IPC-контур Sapphire I.C.D.S., через который сторонние разработчики смогут создавать внешние модули, сервисы и интеграции без доступа к закрытому C++-ядру платформы.

Первая линия SDK ориентирована на C, C++, Go, Rust и Zig. Архитектура контрактов должна позволять добавлять новые языки без изменения базового протокола.

Этапы разработки

  1. Контракт и модель протокола. Определение lifecycle соединения, handshake, version negotiation, request/response, events, correlation IDs, timeouts, cancellation, error model и совместимости между версиями.
  2. Транспорт и framing. Выбор и реализация локального транспорта, бинарного или структурированного framing, ограничений размера сообщений, backpressure и корректного восстановления после разрыва соединения.
  3. Безопасность и изоляция. Аутентификация локального клиента, capability/permission scopes, защита от подмены процесса, validation входных данных, rate limits, audit и безопасная обработка недоверенного payload.
  4. Reference SDK. Канонический C ABI и базовые SDK для C/C++, Go, Rust и Zig с единым поведением lifecycle, ошибок, cancellation и events.
  5. Developer experience. Headers/packages, build integration, минимальные шаблоны модулей, runnable examples, тестовый сервер/клиент, diagnostics, logging и пошаговая документация.
  6. Совместимость и hardening. Contract tests для всех SDK, fuzzing parser/framing, reconnect tests, version mismatch tests, resource cleanup и проверка работы с persistent FastCGI/runtime-процессами.

Критерии первой версии

  • Опубликована спецификация IPC v1 и versioning policy.
  • Есть reference implementation со стороны Sapphire.
  • Работают SDK или официальные bindings минимум для C, C++, Go, Rust и Zig.
  • Одинаковые error codes, lifecycle и cancellation semantics во всех SDK.
  • Есть минимум один end-to-end внешний модуль, работающий без линковки с закрытым ядром.
  • Присутствуют примеры, contract tests и базовая документация для стороннего разработчика.
  • Протокол не раскрывает внутренние ABI и implementation details ядра.

Следующие этапы

После первой версии: дополнительные языки, code generation из схем, удалённый защищённый transport при необходимости, registry/capability discovery, package distribution и отдельная публичная документация для экосистемы.

Целевая дата: 2 августа 2026 года.