Usenet downloader · rewrite in progress
Every copy of a release,
working as one download.
RustyGet is a rewrite of NZBGet in Rust. It keeps NZBGet's speed and API, and adds duplicate fleets: when an article is missing on every server, it comes from another copy of the release, checked before it counts, instead of failing the download.
- NZBGet API today
- Rust, one module at a time
- Borrowed articles checked
- GPL v2 or later
Grouped 4 postings under one key Ranked primary 99% alive · 2160p Proved twin par2 hashes match Kept alt other encode · backup Missing 212 articles on all servers Borrowed 212 articles from the twin Verified par2 · nothing left to repair Finished 1 download · 0 failovers
Start here
Get started
Install and build
Build from source with CMake and the pinned Rust toolchain, then run it as a service.
Get started
Quick start
Five settings to start downloading, and five more to turn on duplicate fleets.
Features
Duplicate fleets
Article fallback, twins and alts, par2 from a twin, stream repair, and early failover.
Features
Streaming with Kodi
How the NeNeTeePee Stream add-on finds every copy through NZBHydra2 and hands the fleet to RustyGet.
Overview
Differences from NZBGet
Every change, area by area, from new options to about 100 bug fixes.
Overview
Why RustyGet
From pull request 850 to a standalone rewrite, and what it means for compatibility.
What it does
RustyGet downloads files from Usenet using NZB files, the way NZBGet does: it fetches articles from your news servers, decodes them, checks and repairs the result with par2, unpacks archives, and runs your extensions. It runs on anything from a small NAS to a large server, and media managers such as Sonarr and Radarr talk to it as NZBGet.
What's new is how it treats duplicates. The same release usually exists as several postings: reposts, listings on other indexers, and other encodes. NZBGet keeps them as spares and starts the next one from scratch when a download fails. RustyGet uses them together:
- An article missing on every server is fetched from a matching file in another copy. A yEnc article must fit its place in the file, and, where they're available, it's checked against its checksum (with the default
CrcCheck=yes) and the download's par2 data. - Copies with byte-identical files, called twins, are proven by par2 checksums and can lend articles and recovery volumes. Other encodes, called alts, mostly serve as failover backups.
- Holes that articles can't fill are patched with verified bytes, even from copies that are split, packed, or encrypted differently.
- A copy that can't complete hands over to the best backup within seconds.
- RustyGet can search NZBHydra2 for more copies and check each one on your servers before it counts on it.
See Feature highlights for the full list.
Status
RustyGet is in active development and runs in daily use. The C++ code inherited from NZBGet moves to Rust one module at a time, each port proven against the old code. There are no release packages yet, and the API may change as the rewrite goes on. Follow progress in the Rust port status and the repository.