Open paul-chambers opened 9 months ago
Good idea! I've been thinking about that too. We use the yencode library in the same way. We could try to update this lib as well.
Sab uses par2cmdline as well. In the latest minor release they started recommending par2cmdline-turbo, which seems to be a maintained fork.
v24 build would be dedicated to performance improvements, this issue would be included into the scope.
Good idea! I've been thinking about that too. We use the yencode library in the same way. We could try to update this lib as well.
The mentioned par2cmdline-turbo should be a pretty easy upgrade, as it's designed as a "drop-in"-replacement. I couldn't test it so far, because I didn't have the time to set up a building-env for nzbget so far, but I'll try.
For the future, it could be interesting to enable the usage of external par2cmdline-variations.
As in regard to the brought up yenc-implementation. https://github.com/animetosho/rapidyenc is something I have in my bookmarks. Could be interesting, if you guys haven't seen it yet.
v24 build would be dedicated to performance improvements, this issue would be included into the scope.
If performance is a target, take a look at this too: https://github.com/animetosho/rapidyenc?tab=readme-ov-file Discussion with the original author: https://github.com/animetosho/node-yencode/issues/4#issuecomment-330025192
Moving this into v25 milestone since it's performance-related.
@isarrider @magicdoublem NZBGet already uses rapidyenc. I started the conversation about it with animetosho, but it was hugbug (with animetosho's help) who implemented it many years ago (2017) in NZBGet, before we got it into SABnzbd only 2 years ago. Because I suck at C++ 😂 You see can the whole back-and-forth between animetosho and hugbug that in the issue you linked 🙂
I know - and thats why I think it makes sense to lift it to the latest version... ;)
Looked into it and it's not fully clear why @hugbug modified the integrated par2 library. We still need to compare current version used versus original (old) version.
We do plan to switch away to external new library anyway within v25, but the scope of the task is bigger considering building and testing for all platforms.
Looked into it and it's not fully clear why @hugbug modified the integrated par2 library
From memory, it was based on an old version of par2cmdline (0.4?), before it included multi-threading. Nzbget's version added multi-threading, plus hooks to get the current progress (libpar2 still doesn't offer this capability).
Good to know, thank you.
The version of libpar2 embedded in the nzbget source tree was derived from par2cmdline v0.4
The official par2cmdline repo on github (https://github.com/Parchive/par2cmdline) lists 0.8.1 as the current version, which is already almost four years old.
Since the current owner has put out a call for a new maintainer, perhaps it would be worth bringing it into the nzbgetcom org on github?
I don't know how many other projects use it, but it seems like a safe bet that nzbget is one of biggest users.