nzbfast este un descărcător Usenet construit în jurul unui pipeline într-o singură trecere: fiecare octet este decodat, verificat și extras în timp ce se descarcă. Nu urmează nicio trecere de asamblare, nu mai rămâne nimic de verificat sau dezarhivat odată terminat. În clipa în care bara de progres se umple, fișierul e gata și demonstrabil intact.
macOS · Windows · Linux · Docker: un singur executabil de sine stătător, cu instrumentele de reparare și dezarhivare integrate.

De ce e rapid
Am măsurat ce se postează de fapt pe usenet înainte de a decide ce optimizăm, iar o singură idee face cea mai mare parte a muncii. Totul este măsurat în jurnalul de benchmark cu comenzi pe care le poți rula din nou.
Articolele sunt decodate SIMD pe loc, scrise o singură dată direct la offset-urile lor finale și verificate PAR2 din aceleași buffere. Arhiva este extrasă în timpul descărcării, așa că volumele ei nu există niciodată ca fișiere. Asta e valabil pentru arhivele simple, criptate, imbricate și 7z, adică circa 95% din tot ce se postează, ca volum de date. Și arhivele cu adevărat comprimate sunt dezarhivate pe măsură ce sosesc, iar la o a doua trecere se ajunge doar când setul e prea mare ca să încapă în memorie în timpul decomprimării.
Un articol este „lipsă” doar când fiecare backbone configurat l-a refuzat. Contabilitatea exactă la nivel de bloc decide COMPLETE / REPAIRABLE / IMPOSSIBLE înainte de a irosi octeți, preia minimul exact potrivit de blocuri de recuperare și abandonează descărcările fără speranță în câteva secunde.
Să ții mai multe cereri în tranzit per conexiune nu e ideea noastră, iar clienții buni o fac. Al nostru este neobișnuit de eficient: la patru servere am măsurat +12% până la +270% față de serial, iar o linie se saturează cu 8 conexiuni în loc de 30–50, așa că obții viteză maximă fără să-ți suprasoliciți providerul. SABnzbd încă îl livrează dezactivat.
Pipeline-ul
Concurenții scriu volumele de arhivă, le citesc înapoi pentru verificare, le citesc din nou pentru extragere, apoi scriu ieșirea, aproximativ 2× scrieri și 2× citiri. nzbfast face în schimb asta:
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
Funcții principale
Lista completă (fiecare reglaj, fiecare integrare) este pe pagina de funcții.
Benchmark-uri
Aceeași mașină, aceiași șase provideri, rulări intercalate una după alta. Timpul până la existența unui fișier utilizabil și extras, singura măsură care contează. Fiecare concurent reglat la maximul său documentat (inclusiv activarea pipelining-ului SABnzbd, pe care nu îl are pornit din fabrică).
NZB de 190.6 GB → un singur mkv de 167.9 GB, M1 Ultra pe 10 GbE, 6 provideri × 8 conexiuni. Același job se finalizează într-un buget de memorie de 1 GB. Tabele complete, toate cele șapte scenarii și probele pe care nu le câștigăm (plus cum să reproduci) pe pagina de benchmark-uri.
Se potrivește cu stack-ul tău
API complet compatibil SABnzbd. Adaugă nzbfast ca un client de descărcare „SABnzbd” și pur și simplu funcționează: preluări, categorii, priorități, reîncercări, scripturi de post-procesare (contractul SAB_*), istoric. Fațada Newznab le permite și *arr-urilor să caute în indexul tău local ca și cum ar fi un indexer.
Daemonul vorbește și JSON-RPC-ul NZBGet, telecomenzile populare de telefon controlează nzbfast nemodificat. Iar panoul în sine are un aspect de telefon de primă clasă pentru când ești departe de ecranul mare. (nzb360: SABnzbd API.)
Un singur clic îți importă serverele dintr-o instalare SABnzbd sau NZBGet existentă (citește și sabnzbd.ini direct). Folderele monitorizate, feedurile RSS cu filtre, folderele inteligente cu arhivare TV și regulile de curățare vin la pachet.
Dezarhivează, dublu-clic pe launcher, răspunde la trei întrebări (sau lasă-l să-ți găsească configurația SABnzbd) și panoul se deschide. Prima descărcare în mai puțin de două minute.