Об этом проекте
Echo — это локальный кроссплатформенный музыкальный плеер для macOS, Windows и Linux. Он не зависит от учётных записей или стриминговых каталогов: пользователь выбирает корневую папку локальной музыкальной библиотеки, Echo сканирует находящиеся в ней музыкальные файлы, а воспроизведение, управление и поиск не требуют сети.
Основные возможности
Управление библиотекой: сканирование корневой папки библиотеки, разбор тегов, обложек и текстов песен, постоянное отслеживание изменений каталога и поддержка ручного повторного сканирования. При импорте новых песен они копируются в каталог библиотеки media/ и организуются по схеме «исполнитель/исполнитель - название песни»; одинаковое содержимое не импортируется повторно, при совпадении имён, но разном содержимом автоматически добавляется номер, существующие файлы не перезаписываются.
Воспроизведение: стабильная очередь воспроизведения, управление прогрессом, громкостью и горячими клавишами, иммерсивный интерфейс винилового проигрывания; тексты песен поддерживают встроенный разбор, одноимённые файлы .lrc и пользовательский слой переопределения, синхронизируются с прогрессом воспроизведения, при отсутствии текста отображается пустое состояние.
Системная интеграция: в macOS предусмотрены строка состояния в меню-баре и интеграция с «Сейчас играет» в Пункте управления, в Windows/Linux — системный трей; после закрытия главного окна можно по-прежнему видеть состояние воспроизведения и управлять им. Поддерживается назначение плеера системным по умолчанию: двойной щелчок по аудиофайлу в файловом менеджере запускает временное воспроизведение.
Персонализация: три встроенные темы (кораллово-розовая, тёмно-кобальтово-синяя, бирюзово-зелёная) с запоминанием выбора; можно настроить выход при закрытии главного окна или пребывание в фоне. Обложки, тексты и метаданные управляются через слой переопределения, исходные файлы не изменяются; при отображении и воспроизведении слой переопределения имеет приоритет над встроенными в файл данными.
Техническая архитектура
Rust Core отвечает за библиотеку, импорт, разбор тегов, синхронизацию и разрешение конфликтов и не зависит от UI и плеера; настольный UI построен на Tauri 2 + React + TypeScript, воспроизведение использует mpv/libmpv с адаптацией возможностей под платформу. Репозиторий содержит crate echo-core (доменные модели, сценарии использования, инфраструктура SQLite) и echo-desktop (настольная среда выполнения, IPC DTO, платформенная адаптация), а также оболочку React, оболочку Tauri и каталог native E2E.
Разработка и проверка
Требования к окружению: Node.js ≥ 20, pnpm 11, Rust 1.98.1; libmpv в macOS уже поставляется вместе с репозиторием. Команда запуска — pnpm echo dev, она последовательно выполняет генерацию типов IPC, сборку фронтенда и tauri dev; релизные пакеты собираются через pnpm echo release. Все задачи и сценарии зарегистрированы в scripts/verify/manifest.json, их можно запускать через node scripts/verify/run-task.mjs или pnpm verify:scenario; сценарный manifest содержит всего 218 записей. Контроль качества включает cargo fmt, cargo clippy, cargo test, а также typecheck и тесты фронтенда. Спецификации и процесс изменений используют OpenSpec, идентификаторы сценариев детерминированно выводятся скриптом в порядке заголовков.
Текущее состояние и план
Сейчас идёт первая фаза — полноценный настольный плеер. v0.1.0 уже выпущена, через GitHub Actions собираются установочные пакеты для macOS, Windows и Linux (DMG / EXE / deb / AppImage) и контрольные суммы SHA256SUMS; артефакты пока не подписаны и не нотаризованы. Проверка запуска, native E2E и матрицы восстановления после сбоев завершена для одной платформы macOS; native E2E и матрица восстановления для Windows/Linux расширяются. В последующих фазах запланированы синхронизация библиотеки (совместимая с S3), клиенты для Android и iOS. Границы первой фазы — офлайн, без аккаунтов, без сети: UI не отображает входы синхронизации, bridge не имеет команд синхронизации, Cargo workspace не содержит сетевых клиентских зависимостей, CSP отклоняет удалённые подключения; синхронизация существует только в виде базовой формы данных.
Лицензия
Echo использует кастомную лицензию на основе Business Source License 1.1, ограниченную личным обучением и исследованием; коммерческое использование, самостоятельная продажа, перепродажа и повторное распространение запрещены; после Change Date (2099-12-31) предоставляется по GPL-2.0-or-later. Список лицензий сторонних зависимостей см. в LICENSES.md.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.