Об этом проекте
Offline Protocol SDK — это основанный на Rust транспортный и координационный слой для создания приложений, агентов и устройств с приоритетом офлайн-работы. Он обеспечивает обнаружение пиров, безопасную связь и координацию через несколько транспортов, включая BLE, Wi-Fi Direct, интернет, Reticulum и реле Nostr.
Ключевые возможности:
- **Мультитранспортность**: автоматическое переключение между BLE, WiFi Direct, интернетом, Reticulum и реле Nostr в зависимости от условий в реальном времени.
- **Ячеистая сеть**: автоматическое обнаружение пиров и ретрансляция сообщений с самоорганизующейся ячеистой сетью на основе кластеров.
- **Сквозное шифрование**: автоматическое шифрование MLS с прямой секретностью (RFC 9420), по умолчанию fail-closed.
- **Роли в группе**: управление ролями администратора и участника с инвариантами безопасности последнего администратора.
- **DORS**: Dynamic Offline Relay Switch для оптимального выбора транспорта.
- **Надёжность**: встроенные ACK, повторные попытки и дедупликация.
- **Кроссплатформенные привязки**: React Native для iOS/Android и Python для macOS/Linux/Windows.
SDK модульный и состоит из нескольких крейтов Rust: базовые типы, кодек sealed-envelope, абстракция транспорта, маршрутизация DORS, надёжность, шифрование MLS, обнаружение сервисов, репликация данных CRDT, поддержка leaf-устройств с ограниченными ресурсами, основной протокольный движок и привязки UniFFI.
Важное архитектурное замечание: крейты Rust — это протокольные движки без ввода-вывода. Они ставят в очередь, маршрутизируют, шифруют и выбирают транспорты, но никогда не открывают сокеты и не обращаются к радиомодулям. Фактический ввод-вывод выполняет платформенный мост. Привязка React Native поставляется с мостами для iOS и Android (BLE, WiFi Direct, интернет, Nostr, Reticulum), а привязка Python — с мостами BLE и интернета. Потребители Rust напрямую должны написать собственный мост.
Примеры быстрого старта приведены для React Native (npm install @offline-protocol/mesh-sdk) и настольных приложений на Python (сборка из bindings/python). Шифрование включено по умолчанию и работает по принципу fail-closed; для работы в открытом виде требуется явный отказ, при этом выводятся предупреждения безопасности.
Документация включает глубокие разборы архитектуры, справочник API, руководства по конфигурации, сведения о доставке сообщений, подробный разбор DORS, руководство по ячеистой сети, интеграцию MLS, архитектуру транспортов, обнаружение сервисов, интеграцию с React Native и Python, транспорты Reticulum и Nostr, телеметрию, интеграцию с iOS/Android, спецификацию протокола, модель угроз, конечные автоматы, ADR и контракты мостов.
SDK имеет двойное лицензирование: AGPL-3.0-only или коммерческая лицензия. Он содержит шифрование, поэтому документированы соображения экспортного контроля. Название и логотип являются товарными знаками.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.