Van NZB naar een geverifieerd bestand
voordat anderen klaar zijn met downloaden.

nzbfast is een Usenet-downloader die om één enkele pass is gebouwd: elke byte wordt gedecodeerd, geverifieerd en uitgepakt tijdens het downloaden. Achteraf volgt geen samenvoegpass, en er blijft niets meer te verifiëren of uit te pakken zodra hij klaar is. Op het moment dat de voortgangsbalk vol loopt, is het bestand af en aantoonbaar intact.

8,31 Gbps op een 10 GbE-lijn 190 GB → 4m33s tot een geverifieerd bestand RAR-volumes raken de schijf nooit Halve schijf t.o.v. concurrenten RAM-gebudgetteerd · 0 swaps, nooit
Download Bekijk de cijfers

macOS · Windows · Linux · Docker: één op zichzelf staand uitvoerbaar bestand, herstel- en uitpaktools ingebouwd.

nzbfast-dashboard tijdens een download op 61 MB/s: doorvoer met een piek van 104 MB/s over een volledige geschiedenisgrafiek, live resource- en per-provider-grafieken, en de overlappende pipelinefasen downloaden/verifiëren/uitpakken

Waarom het snel is

Drie ideeën die de gangbare clients niet volledig benutten

Dit is architectuur, geen micro-optimalisatie, en alles ervan is gemeten in de benchmarklog met commando's die je zelf opnieuw kunt draaien.

🔁

Gepipelinede NNTP

Meerdere artikelverzoeken blijven tegelijk onderweg per verbinding, dus round-trips laten de socket nooit stilvallen, en TCP laat z'n congestievenster tussen artikelen door nooit inzakken. Gemeten +12% tot +270% t.o.v. serieel op vier locaties; een lijn raakt verzadigd met 8 verbindingen in plaats van 30–50.

🚿

De one-pass pipeline

Artikelen worden in-place SIMD-gedecodeerd, één keer weggeschreven op hun definitieve offsets, PAR2-geverifieerd vanuit de decodebuffers, en de inhoud van store-mode RAR's wordt tijdens de download uitgepakt. De volumes bestaan nooit als bestand. Schrijfwerk naar schijf = content × 1,0.

🕸️

Union-beschikbaarheid

Een artikel is pas "ontbrekend" als élke ingestelde backbone het heeft geweigerd. Blok-exacte boekhouding bepaalt COMPLEET / HERSTELBAAR / ONMOGELIJK voordat er bytes verspild worden, haalt het exact passende minimum aan recovery-blokken op, en breekt kansloze downloads binnen seconden af.

De pipeline

Raak elke byte één keer aan

De concurrentie schrijft de archiefvolumes weg, leest ze terug om te verifiëren, leest ze nóg eens om uit te pakken, en schrijft dan de uitvoer, grofweg 2× schrijven en 2× lezen. nzbfast doet het zo:

socket ──TLS──▶ rapidyenc SIMD-decode (in-place - 4,95 GB/s per core)
                   │
                   ├─▶ pwrite op definitieve offset     (gewone posts)
                   │      └─ of: RAR-map vertalen ─▶ pwrite rechtstreeks in het
                   │         uitgepakte bestand (store-mode posts - de rar-
                   │         volumes raken de schijf nooit aan)
                   ├─▶ PAR2-blokhasher - elk blok MD5-geverifieerd vanuit de
                   │      decodebuffer; verificatie is klaar als de download klaar is
                   └─▶ beschikbaarheidsregister - blok-exacte status, live
Beschadigde post? Beschadigde blokken zijn bekend zodra hun artikelen mislukken, het exact passende minimum aan recovery-volumes wordt tijdens de download opgehaald (22 blokken opgehaald voor 20 benodigde, in de benchmarkronde), en het herstel raakt alleen de beschadigde stukken aan. Onmogelijke post? Hij breekt binnen seconden af met vrijwel niets gedownload, nog voordat je quotum het merkt.

Belangrijkste functies

Alles wat een serieuze setup nodig heeft

De volledige lijst (elke knop, elke integratie) staat op de functiepagina.

  • Downloaden op lijnsnelheid: gepipelinede NNTP gemeten op 8,31 Gbps over 10 GbE; de snelste client op elke schone benchmarkleg, bij elke grootte.
  • One-pass pipeline: decoderen, verifiëren en uitpakken overlappen; store-mode RAR-volumes raken de schijf nooit; geneste archieven pakken uit in dezelfde doorgang; heeft 1× schijf nodig waar anderen ~2× nodig hebben.
  • Union-beschikbaarheid over meerdere providers: blok-exacte routing over backbones; preflight-oordelen; exact passend herstel; vroegtijdig afbreken van onmogelijke posts.
  • Geheugenbudget: één globaal RAM-budget met nette spill-niveaus. Het laat je machine nooit swappen: een taak van 190 GB voltooit binnen een budget van 1 GB (~1,1 GB piek-RSS).
  • Crashbestendig hervatten: dankzij een journal op artikelniveau kost een crash of kill −9 midden in een download vrijwel niets: hij hervat en haalt alleen opnieuw op wat nog niet was opgeslagen.
  • Drop-in-API's: SABnzbd-compatibele API en NZBGet JSON-RPC: Sonarr, Radarr, nzb360 en LunaSea werken zonder aanpassing. Import van je SAB/NZBGet-config met één klik.
  • Ingebouwde indexer: scant je nieuwsgroepen naar een doorzoekbare lokale index en serveert Newznab, zodat je *arr-stack er ook in kan zoeken.
  • Posterwall met sleutelloze metadata: artwork, ratings, cast en synopsissen voor alles in je index, zonder ook maar één API-sleutel aan te vragen.
  • Watchlist-automatisering: voer een serie of film op (uitgezonden of niet); hij wordt gegrepen zodra hij verschijnt en daarna in kwaliteit geüpgraded tot je doel is bereikt.
  • Eén enkel uitvoerbaar bestand: herstel (par2) en uitpakken (RAR) zitten in de binary. Uitpakken, uitvoeren, klaar.

Benchmarks

190,6 GB → een geverifieerd bestand van 167,9 GB

Zelfde machine, dezelfde zes providers, runs afwisselend achter elkaar gedraaid. Wat geklokt wordt, is wanneer er een bruikbaar, uitgepakt bestand bestaat, de enige maatstaf die er echt toe doet. Elke concurrent is afgesteld op z'n eigen gedocumenteerde optimum, tot en met het aanzetten van SABnzbds pipelining, die het standaard zonder levert.

nzbfast4m 33s
NZBGet 26.27m 58s · +75%
SABnzbd 5.0.419m 32s · +329%
rustnzb 1.3.4geen bruikbaar bestand

190,6 GB NZB → één mkv van 167,9 GB, M1 Ultra op 10 GbE, 6 providers × 8 verbindingen. Dezelfde taak voltooit binnen een geheugenbudget van 1 GB. Volledige tabellen, alle zeven scenario's en de legs die we niet winnen (plus hoe je het reproduceert) op de benchmarkpagina.

Past in je stack

Richt je bestaande tools erop

Sonarr / Radarr

Hij draagt de volledige SABnzbd-compatibele API, dus je voegt nzbfast toe als "SABnzbd"-downloadclient en het werkt meteen: grabs, categorieën, prioriteiten, retries, nabewerkingsscripts op het SAB_*-contract, geschiedenis. De Newznab-facade gaat nog een stap verder en laat de *arrs je lokale index doorzoeken alsof het een indexer is.

nzb360 / LunaSea

De daemon spreekt ook NZBGets JSON-RPC, dus de populaire telefoon-remotes bedienen nzbfast zonder enige aanpassing. Het dashboard zelf heeft bovendien een volwaardige telefoonweergave voor als je niet achter het grote scherm zit.

Kom je van SAB of NZBGet?

Eén klik haalt je servers binnen uit een bestaande SABnzbd- of NZBGet-installatie, en hij leest sabnzbd.ini rechtstreeks als dat is wat hij aantreft. Watchmappen, gefilterde RSS-feeds, slimme mappen met tv-opberging en opruimregels reizen allemaal mee.

Probeer het in de komende twee minuten

Uitpakken, dubbelklik de launcher, beantwoord drie vragen (of laat hem je bestaande SABnzbd-config vinden), en het dashboard opent. Je eerste download landt binnen twee minuten.