MyGo 云音乐
Go와 MyGo로 만든 서드파티 네이버 클라우드 뮤직 데스크톱 클라이언트
RustyGet은 NZBGet을 Rust로 재작성한 Usenet 다운로더로, 복제본을 플릿으로 취급해 누락 기사를 다른 복제본에서 받아온다
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.
미디어C++ · PythonGitHub @Appz4Fun온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기RustyGet: a Usenet downloader rewritten from NZBGet in Rust, built around duplicate fleets
저장소 README에서 가져옴
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.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 |