О проекте

Что такое MusiMuX

Назначение

MusiMuX — музыкальный десктоп-клиент. Название собрано из Musi (music) и имени автора — MuXolotl. Приложение работает полностью локально — все запросы идут напрямую к музыкальному сервису с вашего ПК, без промежуточных серверов.

Проект создан как самостоятельная альтернатива. Rust-ядро (mux-api) реализует только необходимые методы API — без внешних SDK, без ненужных модулей.

Возможности

  • Авторизация по логину/паролю (с 2FA и капчей) или по токену
  • Библиотека, плейлисты, поиск, рекомендации, популярное
  • Текст песни — караоке для синхронизированных, статика для остальных
  • Системный трей с управлением воспроизведением
  • Мини-плеер у трея (по клику на иконку)
  • Настраиваемое поведение при закрытии окна (спрашивать / трей / выход)
  • Перемешивание, повтор (все / один), горячие клавиши

Архитектура

mux-api Rust

Самостоятельное ядро API. Авторизация (Android-эмуляция, GCM, OAuth, 2FA, капча), аудио-методы, protobuf-кодирование, управление токенами. Не зависит от Tauri/GUI.

src-tauri Rust + Tauri 2

Оболочка десктоп-приложения. Tauri-команды (IPC), системный трей, мини-плеер (поповер), JSON KV-хранилище настроек, обработка оконных событий.

src Svelte 5 + TS

Фронтенд: авторизация, библиотека, плеер, тексты песен, настройки. 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             # Мини-плеер

Автор

M
MuXolotl
Разработка, дизайн, архитектура