このプロジェクトについて
Echoはローカルファーストのクロスプラットフォーム音楽プレーヤーで、macOS・Windows・Linuxデスクトップ向けです。アカウント体系やストリーミング曲庫に依存せず、ユーザーがローカル音楽ライブラリのルートディレクトリを選択すると、Echoはその中の音楽ファイルをスキャンし、再生・管理・検索はすべてネットワーク不要で行えます。
コア機能
曲庫管理:ライブラリのルートディレクトリをスキャンし、タグ・カバー・歌詞を解析。ディレクトリの変更を継続的に監視し、手動での再スキャンにも対応します。新曲インポート時はライブラリの media/ ディレクトリにコピーし、「アーティスト/アーティスト - 曲名」の形式で整理。同一内容は重複インポートせず、同名で内容が異なる場合は自動的に番号を付与し、既存ファイルを上書きしません。
再生体験:安定した再生キュー、進捗、音量、ショートカットキー操作を提供し、没入型レコード再生インターフェースを備えます。歌詞は埋め込み解析、同名 .lrc ファイル、ユーザーオーバーレイに対応し、再生進行に合わせて位置を特定。歌詞がない場合は空状態を表示します。
システム統合:macOSではメニューバーのステータス行とコントロールセンターの「再生中」統合を提供し、Windows/Linuxではシステムトレイを提供。メインウィンドウを閉じた後も再生状態の確認と操作が可能です。システムのデフォルトプレーヤーとして設定でき、ファイルマネージャーで音声ファイルをダブルクリックすると一時的に再生できます。
パーソナライズ:3つのテーマ(コーラルローズ、ディープコバルトブルー、ターコイズグリーン)を内蔵し、選択を記憶。メインウィンドウを閉じたときに終了するかバックグラウンドに常駐するかを設定できます。カバー・歌詞・メタデータはオーバーレイ方式で管理し、元のファイルを書き換えません。表示と再生時はオーバーレイがファイル埋め込みデータより優先されます。
技術アーキテクチャ
Rust Coreはライブラリ、インポート、タグ解析、同期、競合解決を担当し、UIやプレーヤーから独立しています。デスクトップUIはTauri 2 + React + TypeScriptを採用し、再生にはmpv/libmpvを使用。プラットフォームに応じて再生能力を適応させます。リポジトリにはecho-core(ドメインモデル、ユースケース、SQLiteインフラ)とecho-desktop(デスクトップランタイム、IPC DTO、プラットフォーム適応)などのcrate、およびReactシェル、Tauriシェル、ネイティブ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を採用し、シナリオIDはスクリプトによってタイトル順に決定的に導出されます。
現状とロードマップ
現在は第1期、すなわち完全なデスクトップ版プレーヤーです。v0.1.0がリリース済みで、GitHub Actionsを通じてmacOS、Windows、Linuxのインストールパッケージ(DMG / EXE / deb / AppImage)とSHA256SUMSチェックサムをビルド。成果物は現在未署名・未公証です。macOS単一プラットフォームの実行、ネイティブE2E、障害回復マトリックスの検証は完了しており、Windows/LinuxのネイティブE2Eと回復マトリックスは拡張中です。今後の段階ではライブラリ同期(S3互換)、AndroidおよびiOSクライアントを計画しています。第1期の境界はオフライン、アカウントなし、ネットワークなしです。UIは同期エントリを描画せず、bridgeには同期コマンドがなく、Cargoワークスペースにはネットワーククライアント依存がなく、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.