О проекте
Что такое VKMuX
Назначение
VKMuX — десктоп-клиент VK Музыки. Название образовано от VK + MuXolotl. Приложение работает полностью локально — все запросы идут напрямую к VK API с вашего ПК, без промежуточных серверов.
Проект создан как самостоятельная альтернатива с открытым исходным кодом. Rust-ядро (vkmux-vk) реализует только необходимые методы VK API — без внешних VK SDK, без ненужных модулей.
Возможности
- • Авторизация по логину/паролю (с 2FA и капчей) или по токену
- • Библиотека, плейлисты, поиск, рекомендации, популярное
- • Текст песни — караоке для синхронизированных, статика для остальных
- • Системный трей с управлением воспроизведением
- • Мини-плеер у трея (по клику на иконку)
- • Настраиваемое поведение при закрытии окна (спрашивать / трей / выход)
- • Перемешивание, повтор (все / один), горячие клавиши
Архитектура
Самостоятельное ядро VK API. Авторизация (Android-эмуляция, GCM, OAuth, 2FA, капча), аудио-методы, protobuf-кодирование, управление токенами. Не зависит от Tauri/GUI.
Оболочка десктоп-приложения. Tauri-команды (IPC), системный трей, мини-плеер (поповер), JSON KV-хранилище настроек, обработка оконных событий.
Фронтенд: авторизация, библиотека, плеер, тексты песен, настройки. Svelte 5 runes для реактивного состояния. Vite для сборки.
Стек
| Слой | Технологии |
|---|---|
| Ядро VK API | Rust (крейт vkmux-vk, без VK SDK) |
| Desktop shell | Tauri 2 |
| UI | Svelte 5 + TypeScript + Vite |
| Шрифт | Inter Variable |
Структура проекта
VKMuX/
├── crates/vkmux-vk/ # Rust-ядро: авторизация, аудио, токены, protobuf
├── src-tauri/ # Tauri: команды, трей, мини-плеер, настройки
├── src/
│ ├── components/ # Svelte-компоненты: плеер, список треков, иконки
│ ├── lib/ # Состояние, плеер, мост now-playing, VK API обёртка
│ └── views/ # Страницы: библиотека, авторизация, настройки
├── docs/ # Этот сайт (GitHub Pages)
├── index.html # Главное окно приложения
└── mini.html # Мини-плеер