iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
RustyGet is a Usenet downloader rewritten from NZBGet in Rust. It treats every copy of a release as one fleet, so missing articles come from other copies instead of failing the download.
MediaC++ · PythonGitHub @Appz4FunOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
RustyGet: a Usenet downloader rewritten from NZBGet in Rust, built around duplicate fleets
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
RustyGet is a Usenet downloader that started as a fork of NZBGet and is being rewritten in Rust. It carries every improvement from NZBGet pull request 850, which NZBGet never merged, and builds on them: RustyGet treats every copy of a release as one fleet, so an article that's missing on every news server comes from another copy instead of failing the download.Read the full README ↗RustyGet is a Usenet downloader that started as a fork of NZBGet and is being rewritten in Rust. It carries every improvement from NZBGet pull request 850, which NZBGet never merged, and builds on them: RustyGet treats every copy of a release as one fleet, so an article that's missing on every news server comes from another copy instead of failing the download.
[!IMPORTANT] RustyGet is no longer a fork. The repository has left GitHub's fork network and is a standalone rewrite. It still speaks NZBGet's API today, but future versions may break NZBGet API compatibility, and may add a SABnzbd-compatible API. See API and compatibility.
| Area | NZBGet | RustyGet |
|---|---|---|
| Language | C++ | C++ moving to Rust module by module, each port proven identical by differential tests |
| An article missing on every server | Lost, and left to par2 repair or failure | Fetched from a matching file in another copy of the release. A borrowed yEnc article must fit its place in the file, and, where they're available, it's checked against its yEnc checksum (with the default CrcCheck=yes) and the download's par2 block checksums |
| Duplicates of a release | Spare downloads, tried one after another from scratch | One fleet: copies lend each other articles, bytes, and par2 recovery volumes |
| Byte-identical copies | Not detected | Twins proven by par2 checksums (MD5, 16 KB hash, and length of every file); other encodes are alts, kept mainly as failover backups |
| Not enough par2 blocks | Repair fails | Repairs with the fewest recovery volumes of a twin that cover the damage |
| Holes after the download | Left to par2 | Stream repair patches verified bytes from duplicates, even across RAR, ZIP, 7-Zip, raw splits, and encrypted RAR |
| A download that can't complete | Runs to the end, then fails over | HealthCheck=dupe fails over within seconds, and a probe parks dead copies before they download |
| Finding more copies | Only what feeds and clients send | DupeSearch queries NZBHydra2, checks each copy on your servers, and queues the live ones as backups |
| Clients with many copies | One append per copy | One appendfleet call: RustyGet checks every copy and downloads the most complete one |
| Configuration | 155 options | 17 new options and a new HealthCheck value, all off by default |
| API | NZBGet API | NZBGet API, plus appendfleet, new fields, POST for every method that changes something (plain GET runs only the methods that read), JSON-P off unless option JsonP turns it on, and access checks in multicalls |
| Queue and history files | NZBGet formats | NZBGet formats, with RustyGet's data in a trailer that NZBGet ignores |
| Inherited bugs |
The new options are DupeArticleFallback, DupeStreamDecompress, DupeStreamTimeout, DupeSearch, DupeSearchUrl, DupeSearchApiKey, DupeSearchDelay, DupeSearchDryRun, DupeSearchMaxDonors, DupeHealthPercent, DupeHealthMin, DupeHealthMax, DupeBodyChecks, DupeHealthBudget, DupeMinAlive, and DupeFastDonors, plus JsonP in the security settings. The full list of changes is in Differences from NZBGet.
The same release usually exists as many postings: reposts, listings on several indexers, and other encodes. NZBGet keeps them as spares. RustyGet uses them together, and it pairs with the beta version of the NeNeTeePee Stream add-on for Kodi, which can use RustyGet as its download backbone.
appendfleet call under a duplicate key built from the content ID and the release name.CrcCheck=yes) and the download's par2 block checksums. Duplicate fleets lists when a check can't run. Holes are patched from verified bytes. If the copy can't complete, the best backup takes over within seconds, and the add-on follows the duplicate key to the new download.RustyGet can also search on its own: with DupeSearch=yes, it queries NZBHydra2 for more copies of each new download, checks them the same way, and adds the live ones as backups.
The add-on decides which release you get. RustyGet decides which copy of it downloads, because only your news servers know which copies still exist. Fleet submission with appendfleet came in add-on pull requests 514, 518, and 519, and shipped in the add-on's 2.0.0-beta.3 pre-release on 2026-10-11. With stock NZBGet, the add-on falls back to one append per copy.
For more detail, see Duplicate fleets, Streaming with Kodi, Donor search, and NZBHydra2.
NZBGet pull request 850, "Add DupeArticleFallback: recover missing articles from duplicate releases," opened in July 2026. Over three months it grew from article fallback to the whole fleet: stream repair across packaging and encryption, live repair, early failover with HealthCheck=dupe, donor search through NZBHydra2, appendfleet, a queue format that NZBGet can still read, about 100 fixes to inherited bugs, and a functional test harness with more than 100 scenarios. It reached 385 commits and about 45,000 added lines, much of it tests.
What the pull request's comments documented, in order:
DupeRecoveredArticles counter in the API and web interface. Cutover after three recoveries in a file, lead rotation after three misses in a row, and a fix for a use-after-free crash with many duplicates.DupeArticleFallback became no, article, stream, or live. Byte-level repair from same-byte reposts, across packaging (store-mode RAR, ZIP, 7-Zip, raw splits), and across RAR encryption with the NZB password. DupeStreamDecompress repairs from compressed duplicates, live mode repairs during the download, and a fully repaired release without par2 completes with SUCCESS.stream and live modes, when a download's own par2 files can repair the damage, they repair it first; in article mode, articles are borrowed right away. articles of recognized par2 files are never borrowed. The first article of each file is the exception: RustyGet borrows it at once, because it needs that article to identify and rename the file. Later work added another: when par2 clearly can't cover the damage, duplicates go first.HealthCheck=dupe with a dead-copy probe, DupeStreamTimeout, DupeSearch through Newznab or NZBHydra2 with a dry run, whole files rebuilt from a byte-identical duplicate, server answer 451 treated as missing when downloading and probing, and the yEnc checksum of articles fetched for stream repair checked whenever the article carries one, even with CrcCheck=no.After the last comment, the branch added appendfleet, twins and alts from par2 file lists, repair with a twin's par2 volumes, about 100 fixes to inherited bugs, and the start of the Rust port.
On 2026-10-09 the NZBGet maintainers closed it without merging, along with the related bug reports. No formal review was submitted, and no reason was given. That work is the starting point of RustyGet.
nzbget and nzbget.conf, so existing setups keep working.RustyGet has no release packages yet. Build it from source with CMake, a C++20 compiler, and Rust. The repository pins Rust 1.99.0, and rustup installs it on the first build.
git clone https://github.com/Appz4Fun/nzbget.git rustyget
cd rustyget
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j 8
sudo cmake --install build
[ -e ~/.nzbget ] || install -m 600 /usr/local/share/nzbget/nzbget.conf ~/.nzbget
nzbget -D
~/.nzbget is the first place RustyGet looks for its configuration, and the web interface saves your settings there. The test keeps an existing copy when you run these steps again to upgrade. Then open http://<host>:6789. The default login is nzbget with the password tegbzn6789. Change it first. See Install and build for the libraries each platform needs, and Quick start for the first settings.
To move from NZBGet, stop it, back up the queue directory and nzbget.conf, and start RustyGet with the same configuration file.
NZBGet Observe is an opt-in Rust watcher that tracks job progress, records Linux resource observations, and saves bounded evidence when an active job stops showing progress. Its guide explains how to investigate downloading, storage, PAR repair, and unpacking symptoms.
The documentation site covers:
nzbget.confThe site's source is in site/. It deploys on every push to the default branch, after Vale checks the prose against the Google developer documentation style.
Issues and pull requests are welcome in this repository. Write new code in Rust, keep ports byte-identical with the code they replace, and add tests that fail without your change. AI-assisted work is welcome if you say which tools you used and understand every line. See Contributing.
RustyGet is free software under the GNU General Public License, version 2 or, at your option, any later version. It's built on NZBGet, created by its original author and continued by the NZBGet team; their copyright notices stay in the source.
| About 100 fixed, 96 of them reported to NZBGet as its issues 940 to 1046: downloads, post-processing, queue edits, state files, scripts, feeds, and the web interface |
| CI workflows | Builds and tests for every platform | Turned off in the Actions tab while the tests are rebuilt; only the documentation workflow runs |