इस प्रोजेक्ट के बारे में

Echo एक लोकल-फर्स्ट क्रॉस-प्लेटफ़ॉर्म संगीत प्लेयर है, जो macOS, Windows और Linux डेस्कटॉप के लिए बनाया गया है। यह किसी अकाउंट सिस्टम या स्ट्रीमिंग संगीत लाइब्रेरी पर निर्भर नहीं करता; उपयोगकर्ता द्वारा लोकल संगीत डेटा लाइब्रेरी की रूट डायरेक्टरी चुनने के बाद, Echo उसमें मौजूद संगीत फ़ाइलों को स्कैन करता है, और प्लेबैक, प्रबंधन तथा खोज के लिए नेटवर्क की आवश्यकता नहीं होती। मुख्य क्षमताएँ लाइब्रेरी प्रबंधन: डेटा लाइब्रेरी की रूट डायरेक्टरी को स्कैन करता है, टैग, कवर और लिरिक्स को पार्स करता है, डायरेक्टरी में बदलावों की लगातार निगरानी करता है और मैन्युअल पुनः स्कैन का समर्थन करता है। नए गाने आयात करते समय उन्हें लाइब्रेरी की media/ डायरेक्टरी में कॉपी किया जाता है, और “कलाकार/कलाकार - गाने का नाम” के अनुसार व्यवस्थित किया जाता है; समान सामग्री दोबारा आयात नहीं होती, समान नाम वाली भिन्न सामग्री में स्वतः संख्या जोड़ी जाती है, और मौजूदा फ़ाइलों को ओवरराइट नहीं किया जाता। प्लेबैक अनुभव: स्थिर प्लेबैक क्यू, प्रगति, वॉल्यूम और शॉर्टकट नियंत्रण, तथा इमर्सिव विनाइल प्लेबैक इंटरफ़ेस प्रदान करता है; लिरिक्स में इनलाइन पार्सिंग, समान नाम वाली .lrc फ़ाइल और उपयोगकर्ता ओवरले परत का समर्थन है, जो प्लेबैक प्रगति के साथ स्थिति निर्धारित करती है, और लिरिक्स न होने पर खाली स्थिति दिखाई जाती है। सिस्टम एकीकरण: macOS पर मेन्यू बार स्टेटस लाइन और Control Center “Now Playing” एकीकरण उपलब्ध है, Windows/Linux पर सिस्टम ट्रे उपलब्ध है; मुख्य विंडो बंद होने के बाद भी प्लेबैक स्थिति देखी और नियंत्रित की जा सकती है। सिस्टम का डिफ़ॉल्ट प्लेयर बनाने का समर्थन है, और फ़ाइल मैनेजर में ऑडियो पर डबल-क्लिक करके अस्थायी रूप से चलाया जा सकता है। वैयक्तिकरण: तीन अंतर्निहित थीम (कोरल रोज़ पिंक, डीप कोबाल्ट ब्लू, टर्क्वाइज़ ग्रीन) हैं और चयन याद रखा जाता है; मुख्य विंडो बंद करने पर बाहर निकलने या बैकग्राउंड में बने रहने की सेटिंग की जा सकती है। कवर, लिरिक्स और मेटाडेटा को ओवरले परत के रूप में प्रबंधित किया जाता है, मूल फ़ाइलों को फिर से नहीं लिखा जाता, और प्रदर्शन तथा प्लेबैक के समय ओवरले परत फ़ाइल में एम्बेडेड डेटा पर प्राथमिकता लेती है। तकनीकी आर्किटेक्चर Rust Core डेटा लाइब्रेरी, आयात, टैग पार्सिंग, सिंक और संघर्ष निर्णय के लिए जिम्मेदार है, और UI तथा प्लेयर से स्वतंत्र रहता है; डेस्कटॉप UI में Tauri 2 + React + TypeScript का उपयोग होता है, प्लेबैक के लिए mpv/libmpv का उपयोग होता है, और प्लेटफ़ॉर्म के अनुसार प्लेबैक क्षमताएँ अनुकूलित की जाती हैं। रिपॉज़िटरी में echo-core (डोमेन मॉडल, यूज़केस, SQLite इन्फ्रास्ट्रक्चर) और echo-desktop (डेस्कटॉप रनटाइम, IPC DTO, प्लेटफ़ॉर्म अनुकूलन) जैसे crate, तथा React शेल, Tauri शेल और native E2E डायरेक्टरी शामिल हैं। विकास और सत्यापन पर्यावरण आवश्यकताएँ Node.js ≥ 20, pnpm 11, Rust 1.98.1 हैं, और macOS पर libmpv रिपॉज़िटरी के साथ vendored है। प्रारंभ कमांड 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 स्क्रिप्ट द्वारा शीर्षक क्रम के अनुसार निर्धारित रूप से निकाले जाते हैं। वर्तमान स्थिति और रोडमैप वर्तमान में चरण एक, अर्थात पूर्ण डेस्कटॉप संस्करण प्लेयर, में है। v0.1.0 जारी हो चुका है, और GitHub Actions के माध्यम से macOS, Windows, Linux इंस्टॉलर (DMG / EXE / deb / AppImage) तथा SHA256SUMS सत्यापन बनाए जाते हैं; आर्टिफ़ैक्ट वर्तमान में अहस्ताक्षरित और नॉटराइज़्ड नहीं हैं। macOS एकल प्लेटफ़ॉर्म का रन, native E2E और फ़ॉल्ट रिकवरी मैट्रिक्स सत्यापन पूरा हो चुका है, और Windows/Linux का native E2E तथा रिकवरी मैट्रिक्स विस्तारित किया जा रहा है। आगे के चरणों में डेटा लाइब्रेरी सिंक (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 में देखी जा सकती है।