nzbfast یک دانلودر Usenet است که حول یک تکگذر ساخته شده: هر بایت حین دانلود رمزگشایی، تأیید و استخراج میشود. پس از آن نه گذر مونتاژی هست و نه چیزی که برای تأیید یا باز کردن باقی مانده باشد. همان لحظه که نوار پیشرفت پر میشود، فایل تمام است و بهطور اثباتپذیر سالم.
macOS · Windows · Linux · Docker: یک فایل اجرایی خودکفا، ابزارهای تعمیر و باز کردن درونساخت.

چرا سریع است
پیش از آنکه تصمیم بگیریم چه چیزی را بهینه کنیم، سنجیدیم Usenet واقعاً چه چیزی پست میکند، و یک ایده بیشترِ کار را انجام میدهد. همهٔ اینها در گزارش محک با فرمانهایی که میتوانید دوباره اجرا کنید سنجیده شده است.
مقالهها در جای خود با SIMD رمزگشایی میشوند، یکبار مستقیم در آفستهای نهاییشان نوشته میشوند و از همان بافرها با PAR2 تأیید میشوند. آرشیو حین دانلود استخراج میشود، پس جلدهایش هرگز بهعنوان فایل وجود ندارند. این برای آرشیوهای ساده، رمزگذاریشده، تودرتو و 7z صادق است، که حدود 95% از هرچه پست میشود، برحسب حجم است. آرشیوهای واقعاً فشرده هم همانطور که میرسند باز میشوند و تنها زمانی به گذر دوم بازمیگردند که مجموعه بزرگتر از آن باشد که هنگام باز شدن در حافظه نگه داشته شود.
یک مقاله تنها زمانی «گم» بهشمار میآید که هر ستون فقرات پیکربندیشده آن را رد کرده باشد. حسابداری بلوک-دقیق پیش از هدر دادن بایتها کار را COMPLETE، REPAIRABLE یا IMPOSSIBLE میخواند، تنها کمینهٔ دقیقاً-جامتناسب از بلوکهای بازیابی را میکشد، و دانلودهای ناامیدکننده را ظرف چند ثانیه کنار میگذارد.
نگه داشتن چند درخواست در جریان روی هر اتصال ایدهٔ ما نیست و کلاینتهای خوب همین کار را میکنند. اما پیادهسازی ما بهطور غیرمعمولی کاراست: در چهار سایت +12% تا +270% نسبت به سریالی سنجیدیم، و یک خط بهجای 30-50 اتصال با 8 اتصال اشباع میشود، پس بدون فشار آوردن به ارائهدهندهتان به سرعت کامل میرسید. SABnzbd هنوز آن را خاموش عرضه میکند.
خط پردازش
کلاینتهای دیگر جلدهای آرشیو را مینویسند، برای تأیید آنها را بازمیخوانند، برای استخراج بار دوم میخوانند، سپس خروجی را مینویسند، تقریباً 2× نوشتن و 2× خواندن. اینجا کاری است که nzbfast بهجایش میکند:
socket ──TLS──▶ rapidyenc SIMD decode (in place - 4.95 GB/s per core)
│
├─▶ pwrite at final offset (plain posts)
│ └─ or: RAR-map translate ─▶ (unlock, if encrypted) ─▶
│ pwrite straight into the extracted file
│ (the rar volumes never touch disk - plain,
│ encrypted and nested archives alike)
├─▶ PAR2 block hasher - every block MD5-verified from the
│ decode buffer; verification finishes with the download
└─▶ availability ledger - block-exact health, live
ویژگیهای شاخص
فهرست کامل (هر تنظیم، هر یکپارچهسازی) در صفحهٔ ویژگیها است.
محکها
همان ماشین، همان شش ارائهدهنده، اجراها بهصورت درهمتنیده پشتسرهم. آنچه زمانگیری میشود لحظهٔ وجود یک فایل قابلاستفاده و استخراجشده است، تنها معیاری که واقعاً اهمیت دارد. هر رقیب به بهترین حالت مستند خودش تنظیم شد، تا آنجا که خطلولهسازی SABnzbd را روشن کردیم، همان که بدون آن عرضه میشود.
NZB با 190.6 GB ← یک mkv واحد 167.9 GB، M1 Ultra روی 10 GbE، 6 ارائهدهنده × 8 اتصال. همان کار درون بودجهٔ حافظهٔ 1 GB هم کامل میشود. جدولهای کامل، هر هفت سناریو، و لِگهایی که در آنها نمیبریم (بهعلاوهٔ نحوهٔ بازتولیدشان) در صفحهٔ محکها هستند.
با پشتهٔ شما جور است
API کاملاً سازگار با SABnzbd را دارد، پس nzbfast را همچون یک کلاینت دانلود «SABnzbd» اضافه میکنید و کار میکند: گرفتنها، دستهها، اولویتها، تلاشهای مجدد، اسکریپتهای پسپردازش روی قرارداد SAB_*، تاریخچه. نمای Newznab یک قدم جلوتر میرود و به *arrها اجازه میدهد ایندکس محلی شما را جستوجو کنند گویی یک ایندکسر است.
دیمن JSON-RPC NZBGet را هم صحبت میکند، پس کنترلهای محبوب گوشی بدون هیچ تغییری nzbfast را میرانند. خودِ داشبورد هم یک چیدمان گوشی درستوحسابی دارد، برای زمانی که از صفحهٔ بزرگ دورید. (nzb360: SABnzbd API.)
یک کلیک سرورهای شما را از یک نصب موجود SABnzbd یا NZBGet میکشد، و اگر همان را بیابد sabnzbd.ini را مستقیم میخواند. پوشههای پایش، فیدهای RSS با فیلتر، پوشههای هوشمند با بایگانی TV و قواعد پاکسازی هم همه همراه میآیند.
اکسترکت کنید، روی راهانداز دوبار کلیک کنید، به سه سؤال پاسخ دهید (یا بگذارید پیکربندی موجود SABnzbd شما را پیدا کند) و داشبورد باز میشود. اولین دانلودتان ظرف دو دقیقه فرود میآید.