Skip to content

🛠️ Development Guide ​

Welcome to the EchoMusic development documentation. This section is for developers who want to contribute to the project or understand its internal implementation.

Tech Stack ​

CategoryTechnology
Desktop FrameworkElectron 42
Frontend FrameworkVue 3 + Composition API
Type SystemTypeScript 5.7
Build ToolVite
State ManagementPinia + pinia-plugin-persistedstate
UI Component LibraryReka UI
CSS FrameworkTailwind CSS v4
RoutingVue Router
Package Managerpnpm 9+
Backend ServiceNode.js (built-in local server, in-process invocation)
Audio Enginelibmpv (embedded via Rust NAPI addon in-process)
Native Extensionsnapi-rs (Rust → Node.js native modules)
Local StorageSQLite (via echo-storage addon)
LicenseMIT

Core Architecture ​

EchoMusic uses Electron's classic dual-process architecture with Rust NAPI native extensions for high-performance audio playback:

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

Three Native Modules ​

ModuleFunctionTechnology
echo-mpv-playerlibmpv playback engine wrapperRust + libmpv
echo-media-controlsSystem media control integrationRust + OS API
echo-storageSQLite local persistenceRust + rusqlite

Document Index ​