nzbfast est un téléchargeur Usenet bâti autour d’un pipeline en une passe : chaque octet est décodé, vérifié et extrait pendant qu’il se télécharge. Aucune passe d’assemblage ensuite, plus rien à vérifier ni à décompresser une fois qu’il est terminé. À l’instant où la barre de progression se remplit, le fichier est achevé et son intégrité prouvée.
macOS · Windows · Linux · Docker : un seul exécutable autonome, outils de réparation et d’extraction embarqués.

Pourquoi c’est rapide
C’est de l’architecture, pas de la micro-optimisation, et tout est mesuré dans le journal de benchmarks avec des commandes que vous pouvez relancer vous-même.
Plusieurs requêtes d’articles restent en vol par connexion : les allers-retours ne laissent jamais le socket inactif, et TCP n’affaisse jamais sa fenêtre de congestion entre deux articles. Mesuré de +12% à +270% face au mode sériel sur quatre sites ; une ligne sature avec 8 connexions au lieu de 30–50.
Les articles sont décodés en SIMD sur place, écrits une seule fois à leur position finale, vérifiés en PAR2 depuis les tampons de décodage, et le contenu des RAR en mode store est extrait pendant le téléchargement, les volumes n’existent jamais sous forme de fichiers. Écritures disque = contenu × 1.0.
Un article n’est « manquant » que lorsque chaque backbone configuré l’a refusé. Un décompte au bloc près tranche COMPLET / RÉPARABLE / IMPOSSIBLE avant de gaspiller le moindre octet, récupère le minimum ajusté de blocs de récupération, et abandonne les téléchargements sans espoir en quelques secondes.
Le pipeline
Les concurrents écrivent les volumes d’archive, les relisent pour vérifier, les relisent encore pour extraire, puis écrivent le résultat, en gros 2× d’écritures et 2× de lectures. nzbfast fait plutôt ceci :
socket ──TLS──▶ décodage SIMD rapidyenc (sur place - 4.95 GB/s par cœur)
│
├─▶ pwrite à la position finale (posts simples)
│ └─ ou : traduction RAR-map ─▶ pwrite directement dans le
│ fichier extrait (posts en mode store - les
│ volumes rar ne touchent jamais le disque)
├─▶ hacheur de blocs PAR2 - chaque bloc vérifié en MD5 depuis
│ le tampon de décodage ; la vérification finit avec le téléchargement
└─▶ registre de disponibilité - santé au bloc près, en direct
Fonctionnalités phares
La liste complète (chaque réglage, chaque intégration) est sur la page des fonctionnalités.
Benchmarks
Même machine, mêmes six fournisseurs, exécutions entrelacées coup sur coup. Temps jusqu’à l’existence d’un fichier utilisable et extrait, la seule métrique qui compte. Chaque concurrent réglé à son meilleur documenté (y compris en activant le pipelining de SABnzbd, livré sans).
NZB de 190.6 GB → un seul mkv de 167.9 GB, M1 Ultra sur 10 GbE, 6 fournisseurs × 8 connexions. La même tâche se termine dans un budget mémoire de 1 GB. Tableaux complets, les sept scénarios, et les manches que nous ne gagnons pas (plus comment les reproduire) sur la page des benchmarks.
S’intègre à votre pile
Il embarque toute l’API compatible SABnzbd : ajoutez nzbfast comme client de téléchargement « SABnzbd » et ça fonctionne tout seul : récupérations, catégories, priorités, réessais, scripts de post-traitement sur le contrat SAB_*, historique. La façade Newznab va encore plus loin et laisse les *arr chercher dans votre index local comme s’il s’agissait d’un indexeur.
Le daemon parle aussi le JSON-RPC de NZBGet, les télécommandes mobiles populaires pilotent nzbfast sans modification. Et le tableau de bord lui-même offre une vraie disposition téléphone pour quand vous êtes loin du grand écran.
Un clic importe vos serveurs depuis une installation SABnzbd ou NZBGet existante (il lit aussi sabnzbd.ini directement). Dossiers surveillés, flux RSS avec filtres, dossiers intelligents avec classement TV et règles de nettoyage suivent le mouvement.
Dézippez, double-cliquez sur le lanceur, répondez à trois questions (ou laissez-le trouver votre config SABnzbd), et le tableau de bord s’ouvre. Premier téléchargement en moins de deux minutes.