Skip to content

🛠️ 开发指南

欢迎来到 EchoMusic 开发文档。本节面向希望参与项目开发或了解内部实现的开发者。

技术栈

类别技术
桌面框架Electron 42
前端框架Vue 3 + Composition API
类型系统TypeScript 5.7
构建工具Vite
状态管理Pinia + pinia-plugin-persistedstate
UI 组件库Reka UI
CSS 框架Tailwind CSS v4
路由Vue Router
包管理pnpm 9+
后端服务Node.js(内置本地服务,进程内直接调用)
音频引擎libmpv(通过 Rust NAPI addon 进程内嵌入)
原生扩展napi-rs(Rust → Node.js 原生模块)
本地存储SQLite(通过 echo-storage addon)
许可证MIT

核心架构

EchoMusic 采用 Electron 经典的双进程架构,通过 Rust NAPI 原生扩展实现高性能音频播放:

┌─────────────────────────────────────────┐
│              Electron Shell              │
│  ┌──────────────┐  ┌─────────────────┐  │
│  │  Main Process │  │ Renderer Process │  │
│  │  (Node.js)    │  │   (Vue 3 + Vite)│  │
│  │               │  │                  │  │
│  │  ┌─────────┐  │  │  ┌────────────┐  │  │
│  │  │ Server  │  │  │  │   Pinia    │  │  │
│  │  │ (API)   │◄─┼──┼─►│  (Store)   │  │  │
│  │  └─────────┘  │  │  └────────────┘  │  │
│  │  ┌─────────┐  │  │  ┌────────────┐  │  │
│  │  │ Native  │  │  │  │  Tailwind  │  │  │
│  │  │ Addons  │  │  │  │  CSS v4    │  │  │
│  │  │ (Rust)  │  │  │  └────────────┘  │  │
│  │  └─────────┘  │  │                  │  │
│  └──────────────┘  └─────────────────┘  │
└─────────────────────────────────────────┘

三个原生模块

模块功能技术
echo-mpv-playerlibmpv 播放引擎封装Rust + libmpv
echo-media-controls系统媒体控制集成Rust + OS API
echo-storageSQLite 本地持久化Rust + rusqlite

文档索引