nzbfast è un downloader Usenet costruito attorno a un'unica passata: ogni byte viene decodificato, verificato ed estratto mentre scarica. Dopo non resta nessuna passata di assemblaggio, niente da verificare o da estrarre una volta finito. Nell'istante in cui la barra di avanzamento si riempie, il file è pronto e dimostrabilmente integro.
macOS · Windows · Linux · Docker: un unico eseguibile autonomo, strumenti di riparazione ed estrazione integrati.

Perché è veloce
Non micro-ottimizzazioni, architettura. Ognuna è misurata nel log dei benchmark con comandi riproducibili.
Più richieste di articoli restano in volo per connessione, così i round-trip non lasciano mai il socket inattivo, e TCP non decade mai la sua finestra di congestione tra un articolo e l'altro. Misurato da +12% a +270% rispetto al seriale su quattro siti; una linea satura con 8 connessioni invece di 30–50.
Gli articoli vengono decodificati SIMD sul posto, scritti una sola volta ai loro offset finali, verificati PAR2 dai buffer di decodifica, e i contenuti RAR in modalità store vengono estratti durante il download, i volumi non esistono mai come file. Scritture su disco = contenuto × 1.0.
Un articolo è «mancante» solo quando ogni backbone configurato lo ha rifiutato. Una contabilità esatta al blocco decide COMPLETO / RIPARABILE / IMPOSSIBILE prima di sprecare byte, recupera il minimo su misura di blocchi di recupero e interrompe in pochi secondi i download senza speranza.
La pipeline
I concorrenti scrivono i volumi dell'archivio, li rileggono per verificarli, li rileggono di nuovo per estrarli, poi scrivono l'output, grosso modo 2× scritture e 2× letture. nzbfast fa invece così:
socket ──TLS──▶ decodifica SIMD rapidyenc (sul posto - 4.95 GB/s per core)
│
├─▶ pwrite all'offset finale (post semplici)
│ └─ oppure: traduzione RAR-map ─▶ pwrite dritto nel file
│ estratto (post in modalità store - i volumi rar
│ non toccano mai il disco)
├─▶ hasher a blocchi PAR2 - ogni blocco verificato in MD5 dal
│ buffer di decodifica; la verifica finisce col download
└─▶ registro di disponibilità - salute esatta al blocco, in tempo reale
Funzionalità di punta
L'elenco completo (ogni regolazione, ogni integrazione) è nella pagina delle funzionalità.
Benchmark
Stessa macchina, stessi sei provider, esecuzioni alternate una dopo l'altra. Tempo fino a quando esiste un file utilizzabile ed estratto, l'unica metrica che conta. Ogni concorrente ottimizzato al suo meglio documentato (incluso l'attivare il pipelining di SABnzbd, che di serie ne è privo).
NZB da 190.6 GB → singolo mkv da 167.9 GB, M1 Ultra su 10 GbE, 6 provider × 8 connessioni. Lo stesso job si completa dentro un budget di memoria di 1 GB. Tabelle complete, tutti e sette gli scenari e le prove che non vinciamo (più come riprodurle) nella pagina dei benchmark.
Si integra nel tuo stack
API completa compatibile SABnzbd. Aggiungi nzbfast come client di download «SABnzbd» e funziona e basta: prelievi, categorie, priorità, tentativi, script di post-elaborazione (contratto SAB_*), storico. La facciata Newznab permette inoltre agli *arr di cercare nel tuo indice locale come se fosse un indexer.
Il daemon parla anche il JSON-RPC di NZBGet. I telecomandi per telefono più diffusi pilotano nzbfast senza modifiche. E la dashboard stessa ha un layout per telefono di prima classe per quando sei lontano dallo schermo grande.
Un clic importa i tuoi server da un'installazione SABnzbd o NZBGet esistente (legge anche sabnzbd.ini direttamente). Cartelle monitorate, feed RSS con filtri, cartelle smart con archiviazione TV e regole di pulizia vengono al seguito.
Estrai, doppio clic sul launcher, rispondi a tre domande (o lascia che trovi la tua configurazione SABnzbd), e la dashboard si apre. Primo download entro due minuti.