প্রকল্প সম্পর্কে
Echo হলো একটি লোকাল-ফার্স্ট ক্রস-প্ল্যাটফর্ম মিউজিক প্লেয়ার, যা macOS, Windows ও Linux ডেস্কটপের জন্য তৈরি। এটি অ্যাকাউন্ট সিস্টেম বা স্ট্রিমিং মিউজিক লাইব্রেরির উপর নির্ভর করে না; ব্যবহারকারী লোকাল মিউজিক লাইব্রেরির রুট ডিরেক্টরি নির্বাচন করলে Echo সেখানকার মিউজিক ফাইল স্ক্যান করে, এবং প্লেব্যাক, ম্যানেজমেন্ট ও সার্চ সবই ইন্টারনেট ছাড়া কাজ করে।
মূল সক্ষমতা
লাইব্রেরি ম্যানেজমেন্ট: লাইব্রেরির রুট ডিরেক্টরি স্ক্যান করে, ট্যাগ, কভার ও লিরিক্স পার্স করে, ডিরেক্টরির পরিবর্তন ধারাবাহিকভাবে মনিটর করে এবং ম্যানুয়াল রি-স্ক্যান সমর্থন করে। নতুন গান ইমপোর্ট করলে সেটি লাইব্রেরির media/ ডিরেক্টরিতে কপি হয়, “শিল্পী/শিল্পী - গানের নাম” অনুযায়ী সংগঠিত হয়; একই কনটেন্ট পুনরায় ইমপোর্ট হয় না, একই নামের ভিন্ন কনটেন্ট স্বয়ংক্রিয়ভাবে নম্বর যোগ করে, বিদ্যমান ফাইল ওভাররাইট করে না।
প্লেব্যাক অভিজ্ঞতা: স্থিতিশীল প্লে কিউ, অগ্রগতি, ভলিউম ও শর্টকাট নিয়ন্ত্রণ, ইমার্সিভ ভিনাইল প্লেব্যাক ইন্টারফেস প্রদান করে; লিরিক্স এমবেডেড পার্সিং, একই নামের .lrc ফাইল ও ব্যবহারকারীর ওভারলে স্তর সমর্থন করে, প্লেব্যাক অগ্রগতির সাথে অবস্থান নির্ধারণ করে, লিরিক্স না থাকলে খালি অবস্থা দেখায়।
সিস্টেম ইন্টিগ্রেশন: macOS-এ মেনু বার স্ট্যাটাস লাইন ও কন্ট্রোল সেন্টারের “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-এ রয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.