Техническая документация

Chepuhagram

Защищённый мессенджер с end-to-end шифрованием на основе протокола X25519/AES-GCM

X25519 Обмен ключами
AES-256 Шифрование
JWT Аутентификация
QUIC / UDP SCP Звонки v2.1.1

Стек технологий

🐍 Бэкенд & Медиа SFU
  • FastAPI Web-фреймворк REST & WS
  • Go (QUIC SFU) Медиа-сервер :4001 & :4000
  • quic-go RFC 9000 + RFC 9221 Datagrams
  • SQLAlchemy ORM (async)
  • SQLite / PostgreSQL БД
  • APScheduler Планировщик фоновых задач
  • python-jose JWT HS256 токены
  • Firebase Admin Push уведомления
📱 Flutter & Нативные Движки
  • Flutter 3.x Кроссплатформенный UI
  • Rust (FFI) Zero-Copy Media Pipeline
  • DirectX 11 (D3D11) Shared GPU Textures
  • WinMFT / MediaCodec Аппаратный H.264 GDR
  • RNNoise Нейросетевое шумоподавление
  • Drift (SQLite) Локальная БД сообщений
  • Provider State management
  • cryptography X25519 / AES-256-GCM
🔒 Безопасность & Сеть
  • X25519 ECDH обмен ключами E2EE
  • AES-256-GCM 96-bit Nonce медиа & сообщений
  • TLS 1.3 Встроенное шифрование QUIC
  • DSCP EF (0xB8) Приоритет QoS в сетях
  • XOR FEC Защита от потери видеопакетов
  • PBKDF2-HMAC Хеширование мастер-пароля
  • TOTP Двухфакторная аутентификация

Структура проекта

📁 chepuhagram/
📁 lib/ — Flutter клиент
📁 core/ — Константы, тема
📁 data/ — Модели, репозитории, локальная БД
📁 datasources/ — local_db_service.dart, ws_client.dart
📁 models/ — contact_model, message_model, session_model
📁 repositories/ — contact_repository
📁 domain/ — Бизнес-логика
📁 services/ — api_service, crypto_service, webrtc_service
📁 logic/ — State management
📄 auth_provider.dart
📄 contact_provider.dart
📁 presentation/ — UI экраны
📁 screens/ — 25 экранов приложения
📁 srv/ — Python бэкенд
📁 app/ — Основное приложение
📁 api/ — REST эндпоинты
📁 core/ — Конфигурация, безопасность
📁 db/ — Модели SQLAlchemy
📁 services/ — Крипто, уведомления
📁 websocket/ — ConnectionManager
📄 main.py — FastAPI entrypoint
📁 site/ — Эта документация