Технологический стек Disban

Disban создаётся на современном стеке, ориентированном на производительность, надёжность и дальнейшее масштабирование. Ниже — технологии, которые реально используются в проекте.

Web-интерфейс

Веб-интерфейс Disban построен на React и TypeScript. Компонентная архитектура помогает постепенно развивать интерфейс, а типизация снижает количество ошибок при изменении приложения.

  • React 18;
  • TypeScript;
  • Vite;
  • Zustand для состояния клиента;
  • Tailwind CSS;
  • lucide-react для иконок.

Десктопный клиент

Десктопный клиент создаётся на Tauri 2 и Rust. Tauri использует системный WebView и позволяет объединять веб-интерфейс с нативными возможностями операционной системы.

Такой подход создаёт основу для компактного и производительного десктопного клиента. Мы считаем Rust и Tauri перспективной основой развития, но не сравниваем Disban с другими продуктами без независимых замеров.

Серверная часть

Текущий production API работает на Python (FastAPI) и uvicorn: REST для авторизации и данных, отдельный WebSocket-шлюз для обновлений в реальном времени.

В репозитории есть заготовки Rust-сервисов, но они не являются действующим production backend.

База данных

PostgreSQL хранит пользователей, сессии, серверы, каналы, сообщения, роли и связанные данные. Доступ к БД из API выполняется через psycopg.

Голос

  • WebRTC для передачи аудио;
  • Opus в браузерном SDP;
  • TURN/coturn для прохождения NAT;
  • сигнализация через WebSocket.

Инфраструктура

  • Nginx как reverse proxy;
  • TLS/HTTPS для сайта, API и WebSocket.

Авторизация

Поддерживаются вход по логину и паролю, Google, Mail.ru, Telegram, а также одноразовые коды через Telegram-бота. Сессии хранятся на сервере (токен сессии), а не как пользовательские JWT-сессии приложения.