Приложение для голосового общения во время сетевых игр
  • Rust 65.1%
  • Svelte 18.7%
  • TypeScript 14.9%
  • CSS 0.6%
  • HTML 0.4%
  • Other 0.3%
Find a file
2026-04-15 01:33:39 +03:00
docs Add TCP voice fallback, UDP keepalive, single-instance, audio-talking event 2026-04-14 22:41:19 +03:00
src Disable browser context menu globally via layout 2026-04-15 01:33:39 +03:00
src-tauri Fix audit issues: dead code, race conditions, missing handlers, UX bugs 2026-04-15 01:14:15 +03:00
static add icons 2026-04-12 23:41:18 +03:00
.gitignore Initial project scaffold: full HomeVoice architecture 2026-04-10 14:31:48 +03:00
AGENTS.md Add i18n localization with 9 languages and language picker on first launch 2026-04-14 21:02:01 +03:00
Cargo.lock Add deep-link URI scheme, pendingDeepLink store, and 25 new unit tests 2026-04-14 23:06:14 +03:00
Cargo.toml Initial project scaffold: full HomeVoice architecture 2026-04-10 14:31:48 +03:00
eslint.config.js Fix lint/test errors: ESLint config, Svelte warnings, Rust fmt, failing test 2026-04-14 22:01:56 +03:00
package-lock.json Add deep-link URI scheme, pendingDeepLink store, and 25 new unit tests 2026-04-14 23:06:14 +03:00
package.json Add deep-link URI scheme, pendingDeepLink store, and 25 new unit tests 2026-04-14 23:06:14 +03:00
README.md Fix room leave/join state management bugs, add host_list_rooms, update build scripts, add README 2026-04-14 17:50:15 +03:00
svelte.config.js Initial project scaffold: full HomeVoice architecture 2026-04-10 14:31:48 +03:00
tsconfig.json Initial project scaffold: full HomeVoice architecture 2026-04-10 14:31:48 +03:00
vite.config.ts Redesign UI: Skeleton UI + Tailwind CSS v4, theme switching, room sidebar, form fixes 2026-04-11 00:37:26 +03:00

HomeVoice

Кроссплатформенное десктопное голосовое чат-приложение для компьютерных игр. Каждый экземпляр может быть сервером и клиентом одновременно. Без регистрации — подключение по ссылке-приглашению.

Возможности

  • Голосовой чат с минимальной задержкой (< 100 мс интернет, < 30 мс LAN)
  • Шифрование (X25519 + ChaCha20-Poly1305)
  • Подавление шума (RNNoise)
  • Эхоподавление (WebRTC AEC3)
  • Автоматическая регулировка усиления (AGC)
  • PTT (Push-to-Talk) с несколькими хоткеями
  • Комнаты с опциональными паролями
  • Ссылки-приглашения (homevoice://)
  • UPnP для автоматического проброса портов
  • До 64 участников на сервере

Технологии

Слой Стек
Backend Rust, Tauri v2, Tokio
Frontend TypeScript, Svelte 5, Skeleton UI, Tailwind CSS v4
Аудио cpal, Opus, nnnoiseless, webrtc-audio-processing, rubato
Сеть TCP (сигнализация) + UDP (голос), шифрование X25519/ChaCha20-Poly1305

Требования

Установка и запуск

git clone <repo-url>
cd HomeVoice

npm install
npm run dev

Сборка (release)

npm run build

Готовый исполняемый файл появится в src-tauri/target/release/bundle/.

Скрипты

Команда Описание
npm run dev Разработка (hot-reload фронтенд + Rust backend)
npm run build Сборка release
npm run build:frontend Сборка только фронтенда
npm run dev:frontend Dev-сервер только фронтенда
npm run check TypeCheck фронтенда
npm run lint Линт фронтенда
cargo test Запуск тестов Rust
cargo clippy -- -D warnings Линт Rust
cargo fmt Форматирование Rust

Архитектура

Capture → Resample → Noise Gate → Noise Suppression → Echo Cancel → AGC → Opus Encode → UDP Send
                                                                                                    ↓
UDP Recv → Jitter Buffer → Opus Decode → Volume → Mix → Playback
  • Сервер работает как relay — ретранслирует аудиопотоки, микширование на стороне клиента
  • Каждая пара клиент-сервер имеет уникальный ключ шифрования (X25519 key exchange)
  • Конфигурация хранится в %APPDATA%/HomeVoice/ (Windows), ~/Library/Application Support/HomeVoice/ (macOS), ~/.config/homevoice/ (Linux)

Лицензия

Частный проект.