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