Архитектура системы
Общий дизайн мессенджера Chepuhagram, его компоненты и каналы взаимодействия.
Основные компоненты
Chepuhagram построен по гибридной архитектуре: управляющая сигнализация и база данных обслуживаются FastAPI бэкендом, высокоскоростной медиа-трафик звонков маршрутизируется специализированным Go SFU сервером по протоколу SCP (QUIC/UDP) или направляется напрямую через P2P Hole Punching. Все операции шифрования и дешифрования выполняются на клиенте (E2EE Zero-Knowledge).
FastAPI Backend
REST API, WebSockets, управление сессиями, авторизация звонков, интеграция с Google Drive и Firebase.
Go Media SFU (SCP)
Высокопроизводительный сервер звонков: QUIC (:4001, RFC 9221 Datagrams, TLS 1.3), UDP Relay (:4000, DSCP EF), E2EE passthrough fanout.
Flutter Client & Rust Core
Кроссплатформенное приложение с E2EE, нативным Zero-Copy Pipeline (D3D11 / WinMFT / MediaCodec) и локальной БД Drift.
Google Drive
Физическое хранение зашифрованных медиафайлов через Service Account.
Firebase (FCM)
Push-уведомления о новых сообщениях и входящих звонках для фонового и офлайн режима.
Схема взаимодействия
Компоненты взаимодействуют по следующим протоколам:
/auth, /users, /media, /admin./ws. Передает чат-сообщения, квитанции о доставке/прочтении (ACK), статус печати, сигнализацию инициализации звонков и обмен ICE-кандидатами.Детальные сценарии работы
Для подробного изучения того, как компоненты взаимодействуют друг с другом во время регистрации, инициализации чата, отправки E2EE медиафайлов и звонков, перейдите в раздел 🛣️ Пути пользователя.