Об этом проекте

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 или коммерческая лицензия. Он содержит шифрование, поэтому документированы соображения экспортного контроля. Название и логотип являются товарными знаками.