প্রকল্প সম্পর্কে
slskr হল Soulseek পিয়ার-টু-পিয়ার ফাইল-শেয়ারিং নেটওয়ার্কের জন্য একটি স্ব-হোস্টেড Rust ডেমন, HTTP API এবং ব্রাউজার UI। এটি এমন অপারেটরদের জন্য ডিজাইন করা হয়েছে যারা একটি ব্যক্তিগত, স্ক্রিপ্টযোগ্য Soulseek ক্লায়েন্ট চান যা লোকালি, সার্ভারে বা নিজস্ব সার্ভিস সীমানার পিছনে চালানো যায়। একটি একক `slskr serve` প্রক্রিয়া Soulseek সেশন, পিয়ার লিসেনার, শেয়ার ইনডেক্স, ট্রান্সফার ইঞ্জিন, HTTP API, ইভেন্ট স্ট্রিম এবং একটি বান্ডেলড ওয়েব UI পরিচালনা করে।
মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
- **ওয়েব অ্যাক্সেস**: একই HTTP লিসেনারে পরিবেশিত একটি React-ভিত্তিক ওয়েব UI, যার মধ্যে সার্চ, ডাউনলোড, আপলোড, রুম, ব্যক্তিগত বার্তা, ব্যবহারকারী, পরিচিতি, ব্রাউজ অবস্থা, শেয়ার, সংগ্রহ, ইন্টিগ্রেশন, প্লেয়ার নিয়ন্ত্রণ, কনফিগারেশন অবস্থা, টেলিমেট্রি এবং রানটাইম স্বাস্থ্য অন্তর্ভুক্ত।
- **সার্চ এবং ফলাফল**: গ্লোবাল, ব্যবহারকারী, রুম এবং উইশলিস্ট-স্টাইল লক্ষ্য সমর্থন করে। ফলাফলে পিয়ার মেটাডেটা অন্তর্ভুক্ত থাকে যেমন লকড অবস্থা, স্লট প্রাপ্যতা, কিউ দৈর্ঘ্য, গতি, ফাইল আকার এবং পাথ। UI ফিল্টার, ডুপ্লিকেট ফোল্ডিং, লুকানো/ব্লক করা ব্যবহারকারী, সার্চ ইতিহাস, পর্যালোচনা নোট, অর্জন প্রোফাইল, ডিসকভারি গ্রাফ প্যানেল এবং মেটাডেটা-সহায়ক ফলো-আপ সার্চ যোগ করে।
- **ট্রান্সফার**: ডাউনলোড এবং আপলোড ডেমন-মালিকানাধীন ট্রান্সফার রেকর্ড হিসাবে উপস্থাপিত হয় যার সাথে কিউ, শুরু, অগ্রগতি, সমাপ্তি, বাতিলকরণ, পুনরায় চেষ্টা এবং ব্যর্থতা অবস্থা থাকে। পরীক্ষার জন্য লোকাল ফাইল-ব্যাকড প্রজেকশন, আউটবাউন্ড ডাউনলোড, ইনবাউন্ড শেয়ার্ড-ফাইল সার্ভিং, সরাসরি পিয়ার ট্রান্সফার সকেট, টাইপ-১ অস্পষ্ট ট্রান্সফার সকেট, পরোক্ষ ট্রান্সফার ফলব্যাক, অফসেট/রিজিউম ফিল্ড এবং সীমিত ট্রান্সফার ইভেন্ট ইতিহাস সমর্থন করে। ত্বরিত ডাউনলোড একাধিক HTTP রেঞ্জ-সক্ষম উৎস এবং প্রত্যাশিত SHA-256 ডাইজেস্ট সহ `POST /api/v0/multisource/swarm` ব্যবহার করতে পারে। স্বল্পস্থায়ী পিয়ার এবং মেশ প্রিভিউ টিকেট স্বাভাবিক ডাউনলোড তৈরি না করেই ব্রাউজারে অডিও স্ট্রিম করে।
- **শেয়ার এবং ব্রাউজ**: শেয়ার রুট স্টার্টআপে বা রিস্ক্যানের মাধ্যমে সূচিত হয়। ক্যাটালগ ভার্চুয়াল শেয়ার পাথ ব্যবহার করে, কাঁচা হোস্ট পাথ প্রকাশ না করে। অপারেটররা লুকানো-ফাইল হ্যান্ডলিং, সিমলিংক অনুসরণ, স্ক্যান সীমা এবং অনুমোদিত ট্রান্সফার দিকনির্দেশ কনফিগার করতে পারেন।
- **মেসেজিং, রুম এবং ব্যবহারকারী**: ব্যক্তিগত-বার্তা কথোপকথন, বার্তা স্বীকৃতি, রুম তালিকা, রুম যোগদান/ত্যাগ অবস্থা, সাম্প্রতিক রুম বার্তা, পর্যবেক্ষণ করা ব্যবহারকারী, ব্যবহারকারী পরিসংখ্যান, পরিচিতি, নোট এবং সম্পর্কিত পিয়ার প্রসঙ্গ ট্র্যাক করে।
- **API এবং অটোমেশন**: সংস্করণযুক্ত `/api/v0/*` রুট এবং নির্বাচিত সংস্করণহীন সামঞ্জস্য অ্যালিয়াস। API ক্লায়েন্টরা বিয়ারার অথ বা `X-API-Key` হেডার ব্যবহার করতে পারে। ইভেন্ট ভোক্তারা সীমিত ইভেন্ট রেকর্ড পোল করতে বা WebSocket ইভেন্ট স্ট্রিমে সাবস্ক্রাইব করতে পারে। OpenAPI এবং বিস্তারিত এন্ডপয়েন্ট ডক্স প্রদান করা হয়।
- **ইন্টিগ্রেশন**: Spotify OAuth কলব্যাক হ্যান্ডলিং, Lidarr অবস্থা/কাঙ্ক্ষিত/ম্যানুয়াল-ইমপোর্ট ফ্লো, বাহ্যিক ভিজ্যুয়ালাইজার লঞ্চ রিপোর্টিং এবং লাইব্রেরি, উৎস এবং সুপারিশ ওয়ার্কফ্লোর জন্য UI-সাইড প্যানেল অন্তর্ভুক্ত।
নিরাপত্তা ডিফল্ট রক্ষণশীল: HTTP ডিফল্টরূপে `127.0.0.1:5030`-এ বাঁধে, নন-লুপব্যাক বাইন্ডের জন্য কমপক্ষে একটি API টোকেন প্রয়োজন যদি না অথ স্পষ্টভাবে নিষ্ক্রিয় করা হয়, ব্রাউজার-অরিজিন মিউটেটিং অনুরোধ `Origin`/`Referer` দিয়ে পরীক্ষা করা হয়, স্যানিটাইজড কনফিগারেশন প্রতিক্রিয়া ক্রেডেনশিয়াল ফেরত দেয় না এবং শেয়ার API কাঁচা হোস্ট পাথের পরিবর্তে ভার্চুয়াল পাথ ফেরত দেয়।
ডিপ্লয়মেন্ট সম্পদের মধ্যে systemd উদাহরণ, Kubernetes ম্যানিফেস্ট, Prometheus নিয়ম এবং পাবলিক পোস্টার চেক অন্তর্ভুক্ত। প্রকল্পে একটি সার্টিফিকেশন রানার রয়েছে যার সাথে প্রতি-অ্যাকাউন্ট VPN বিচ্ছিন্নতা রয়েছে Soulseek-এর প্রতি-IP রেট সীমাবদ্ধতা বাইপাস করতে, ৩৯টি পরীক্ষার ক্ষেত্রে ৭টি পর্যায় কভার করে। ক্লায়েন্ট লাইব্রেরি TypeScript, Python, Go এবং Rust-এর জন্য উপলব্ধ। প্রকল্পটি AGPL-3.0-only লাইসেন্সের অধীনে।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.