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

PeerLink X — это кроссплатформенный мессенджер, созданный на Flutter и построенный вокруг ядра децентрализованной сети. Приложение сочетает прямой транспорт WebRTC для пиринговых сессий (используемый для оверлейного трафика) и WebRTC-медиа с маршрутизацией через TURN для аудио- и видеозвонков, придерживаясь политики «только TURN». Доставка сообщений осуществляется по принципу «хранения и пересылки» через ретрансляторы по протоколу HTTP с использованием криптографии на уровне приложения для идентификации, подписей и сессий. Пользовательский интерфейс включает рабочие разделы «Контакты», «Чаты», «Звонки» и «Настройки». Статусы доставки сообщений отображаются следующим образом: одна галочка — подтверждено хранение, две — надежное сохранение получателем, три — прочитано (в групповых сообщениях галочки появляются после действия первого участника). Списки чатов отображают индикаторы получения и форматирование времени (сегодня — HH:MM, текущий год — DD:MM, предыдущие годы — DD:MM:YY). Сообщения, состоящие только из эмодзи (1–3 штуки), отображаются в крупном формате без фона. Хранение данных является постоянным: secure storage для настроек и идентификации, Drift/SQLite для базы данных чатов и файловая система для медиафайлов. Поддерживается self-hosted развертывание через «Настройки» с поэтапным прогрессом, конфигурацией эндпоинтов и проверками работоспособности серверов bootstrap, relay и TURN. Приложение использует сигнализацию bootstrap через WebSocket для транспорта и сигнализации вызовов, поддерживая несколько соединений и используя снимки присутствия (presence snapshots) для определения статуса онлайн/оффлайн. Функции конфиденциальности включают внутренние контакты приложения (не системную адресную книгу), поэтому сборки для iOS/macOS не запрашивают доступ к контактам. Модерация включает принятие Условий/EULA, режим «только контакты» по умолчанию и систему жалоб, которая отправляет только метаданные (без содержания сообщений). Предупреждения и баны устанавливаются модераторами и отображаются на языке пользователя. В «Настройках» осуществляется управление конфигурациями серверов (bootstrap, relay, TURN) с карточками, отсортированными по состоянию здоровья, анализ хранилища с удалением по категориям, а также глубокие ссылки для приглашений и настройки сервера (peerlink:// и резервные URL). Push-уведомления интегрированы с опросом ретранслятора, и приложение использует определенный контракт Push API с подписями Ed25519 и защитой от повторов. Функции групп включают унифицированную доставку, blob-транспорт для медиа и ротацию ключей при изменении состава участников. Для стабильности звонков при различных типах сетей используется TURN.