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.

9,0-9,3 Gbps op een 10 GbE-lijn 190 GB → 4m47s 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

Ongeveer 95% van alle usenet-downloads in één doorgang

We hebben eerst gemeten wat er op usenet daadwerkelijk gepost wordt voordat we besloten wat we zouden optimaliseren, en één idee doet het meeste werk. Alles ervan is gemeten in de benchmarklog met commando's die je zelf opnieuw kunt draaien.

🚿

Eén doorgang, vrijwel elke vorm

Artikelen worden in-place SIMD-gedecodeerd, één keer weggeschreven op hun definitieve offsets en PAR2-geverifieerd vanuit dezelfde buffers. Het archief wordt tijdens de download uitgepakt, dus de volumes bestaan nooit als bestand. Dat geldt voor gewone, versleutelde, geneste en 7z-archieven, samen zo'n 95% van alles wat gepost wordt, naar volume. Ook echt gecomprimeerde archieven worden tijdens het binnenkomen uitgepakt; ze vallen pas terug op een tweede doorgang als de set te groot is om tijdens het uitpakken in het geheugen te houden.

🕸️

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.

🔁

Gepipelinede NNTP, goed gedaan

Meerdere verzoeken tegelijk onderweg houden per verbinding is niet ons idee, en de goede clients doen het. Dat van ons is ongewoon efficiënt: op vier locaties maten we +12% tot +270% t.o.v. serieel, en een lijn raakt verzadigd met 8 verbindingen in plaats van 30–50, dus je haalt de volle snelheid zonder je provider te overvragen. SABnzbd levert het nog altijd uitgeschakeld.

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 ─▶ (ontgrendelen, indien versleuteld) ─▶
                   │         pwrite rechtstreeks in het uitgepakte bestand
                   │         (de rar-volumes raken de schijf nooit aan - gewone,
                   │         versleutelde en geneste archieven, allemaal)
                   ├─▶ 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 9,0-9,3 Gbps over een 10-GbE-lijn met een eigen plafond van 9,8; de snelste client op elke schone benchmarkleg, bij elke grootte.
  • One-pass pipeline: decoderen, verifiëren en uitpakken overlappen; de archiefvolumes raken de schijf nooit, of de post nu gewoon, versleuteld of genest is; heeft 1× schijf nodig waar anderen ~2× nodig hebben. Bij een versleutelde release van 94 GB is dat 90 GB geschreven in plaats van 180 GB.
  • 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.
  • nzblnk:-links, opgelost: plak er een op het dashboard, of klik er een rechtstreeks aan op een board zodra de macOS- of Windows-installatie het schema heeft geregistreerd. De versluierde post wordt eerst in je eigen index opgezocht en daarna bij je indexers, en het wachtwoord uit de link gaat mee naar de klus.
  • 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, en beide evenaren of verslaan de losse tools wanneer je ze apart tegen elkaar laat racen.

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 47s
NZBGet 26.29m 06s · +90%
SABnzbd 5.0.419m 29s · +307%
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.

Step-by-step setup →

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. (nzb360: SABnzbd API.)

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.