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