Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Use unar to add support for uncompressing formats 7z can't handle #148
There is unar CLI utility (Unarchiver) and it supports a wide range of formats, including some that aren't supported by Keka now... some of those formats go back to days of Classic Mac OS and it could still be useful adding support for those formats if someone who is emulating old Macs wants to uncompress some archives in modern macOS, so he wouldn't have to look for Classic Mac OS archivers that can handle them.
Even if you want to use 7z by default for uncompressing less common formats, you could maybe check if 7z throws an error and if it does try uncompressing with unar.
And maybe just give users an option in preferences to choose between 7z or unar as a default unarchiving utility for less common formats.
For more common modern formats, just use what performs the best with multithreading for that specific format (users don't need to have an option with what to compress/uncompress popular modern formats, so they wouldn't select something without multithreading and significantly degrade performance).
BTW... if you are using unar for an ISO in some archive, make sure to use options not to uncompress the ISO too after it decompresses the archive because many would probably just want to take an ISO out of an archive and not uncompress it too.
There are often old archives on pages related to Classic Mac emulation... formats that were used by some Classic Mac archivers decades ago... for example, .hqx or some ancient Mac binary format with a .bin extension that was used on Classic Macs to preserve resource forks when they exchanged files... and there were other archive formats with different extensions too, although it seems that .hqx was most common... 7z usually just throws an error for archives with extensions like those that they often have on pages related to Classic Mac emulation... unless someone repackaged old archives to .zip or something like that.
With unar it seems that usually those old archives can be opened... and Archive Utility can open .hqx and archives in that old Mac binary format with a .bin extension (it even sometimes seems to do a better job than unar for some archives, but unar supports more of those old formats than Archive Utility).
There are also some old disk images with .smi or .img or .dsk extension that even unar can't open, but they can be converted to .dmg with
It’s the command line part of The Unarchiver app (recently bought out by MacPaw)
If this is added to Keka, it blurs the line between Keka and The Unarchiver. Why not just use The Unarchiver for those other formats?
I think that Keka should use whatever works the best for a specific format and at a specific level.
Like if pbzip2 can compress something at lower levels faster than 7z can, it makes sense to use pbzip2 for bzip2 format at lower levels... and if 7z can compress something more at it's highest level than pbzip2 can at it's highest levels, it makes to use 7z when the speed of compression doesn't matter... and if pbzip2 can decompress bzip2 archives faster, it makes sense to use pbzip2 for uncompressing.
So... if 7z doesn't support some specific format, it makes sense to add support for those formats using something else... and just choose what will handle which format based on the performance.