প্রকল্প সম্পর্কে

Diffuse হল একটি মিউজিক প্লেয়ার যা ক্লাউড এবং বিতরণকৃত স্টোরেজের সাথে সংযোগ স্থাপন করে। এটি ফ্রেমওয়ার্ক-অ্যাগনস্টিক কাস্টম DOM এলিমেন্ট (ওয়েব কম্পোনেন্ট) এর সংগ্রহ হিসেবে তৈরি করা হয়েছে যা ডেভেলপারদের একটি অডিও প্লেয়ার একত্রিত করতে, অডিও মেটাডেটা প্রসেস এবং ব্রাউজ করতে, বিভিন্ন উৎস, API এবং সার্ভার থেকে অডিও ফাইল ও স্ট্রিম তালিকাভুক্ত করতে এবং ব্যবহারকারী ডেটা কীভাবে সংরক্ষণ বা সিঙ্ক করা হবে তা নির্ধারণ করতে দেয়। প্রকল্পের মূল অংশসমূহ: - কাস্টম এলিমেন্ট: প্লেয়ার তৈরি, মেটাডেটা পরিচালনা, উৎস তালিকাকরণ এবং ব্যবহারকারী ডেটা স্থায়িত্বের জন্য পুনঃব্যবহারযোগ্য ওয়েব কম্পোনেন্ট। - HTML লোডার: স্থানীয় ব্যবহারকারী ডেটা ক্যাশ, ডিফল্ট Diffuse সেট, HTTP(S) URL বা AT Protocol URI থেকে "ইন্টারফেস" লোড করে। ইন্টারফেসগুলি ঐচ্ছিক "ফিচার" বা ফ্যাসেট গ্রহণ করে যা স্থানীয় ক্যাশ থেকেও লোড করা হয়। - ফাউন্ডেশন: ডিফল্ট ফ্যাসেট জুড়ে ব্যবহৃত কাস্টম এলিমেন্টের একটি ডিফল্ট কনফিগারেশন। এলিমেন্টগুলি `group` অ্যাট্রিবিউটের মাধ্যমে ট্যাব এবং ফ্রেম জুড়ে যোগাযোগ করতে পারে। - লেক্সিকন: atproto লেক্সিকনের আকারে ডেটা স্কিমা, যা `lexicons` ডিরেক্টরিতে সংরক্ষিত। লক্ষ্য হল সহযোগী, নমনীয় সফটওয়্যার। আরও বিস্তারিত প্রকল্পের ওয়েবসাইটে পাওয়া যাবে। ডেভেলপার ব্যবহার: লাইব্রেরিটি হয় ডিপ্লয়েড ইনস্ট্যান্সের মাধ্যমে (এলিমেন্টগুলি JavaScript ফাইলের সাথে লিঙ্ক করে) অথবা JSR-এ JavaScript প্যাকেজের মাধ্যমে ব্যবহার করা যেতে পারে। কাস্টম এলিমেন্টগুলি অন্য যেকোনো DOM এলিমেন্টের মতো ব্যবহার করা হয়, হয় HTML-এ অথবা একটি ক্লাস ইনস্ট্যান্টিয়েট করে। একটি উদাহরণ দেখায় স্ক্রিপ্ট ট্যাগের মাধ্যমে কিউ ইঞ্জিন এলিমেন্ট লোড করা বা এটি ইম্পোর্ট করে `group` অ্যাট্রিবিউট সহ ডকুমেন্ট বডিতে যুক্ত করা। সোর্স থেকে বিল্ড করতে Deno প্রয়োজন। কমান্ডের মধ্যে টাইপ ডেফিনিশন তৈরি, বিল্ড এবং সার্ভ করা অন্তর্ভুক্ত। স্ট্যাকের মধ্যে রয়েছে Deno, ওয়েব কম্পোনেন্ট, ওয়েব ওয়ার্কার (শেয়ার্ড এবং সার্ভিস ওয়ার্কার), সিগন্যাল (বর্তমানে alien-signals, TC39 প্রস্তাবের আশা সহ), lit-html, music-metadata, Lume এবং ESBuild।