The Unarchiver (1000)

1 Name: !WAHa.06x36 : 2006-07-01 16:32 ID:3em7Hrs8 [Del]

So. I kind of like BOMArchiverHelper.app, the default OS X unzipping utility. However, it has quite a number of limitations. Most other unarchivers on OS X have interfaces that I don't like, or just don't work very well. Also, thanks to Windows' idiotic idea of using the current system encoding for filenames, I have tons of archives from Japan with Shift_JIS filenames, which none of the unarchivers on OS X I've tried will handle properly.

And so I, because I obviously don't have enough to do already, get the idea that I need to write a better unarchiver. Features I think it needs include:

  • Handle as many formats as possible. Not just Zip and Tar-Gzip, but RAR, 7-Zip, LhA, StuffIt, and anything else you can think of.
  • Handle non-UTF8 filenames, perferrably automatically.
  • Have a simple and straightforward interface like BOMArchiveHelper.app.
  • Not leave .tar files lying around when unpacking .tar.gz files and the like.
  • As a side benefit, produce some code that can be re-used to add archive support to Xee (so this whole project doesn't just steal time I could be working on Xee instead).

For actual information on the current state of this project, read on!

2 Name: !WAHa.06x36 : 2006-07-01 16:45 ID:3em7Hrs8 (Image: 372x138 png, 15 kb) [Del]

src/1151797516673.png: 372x138, 15 kb

Well, after some work, I've finally got this into a state where it is actually just about presentable. It's still an alpha version, and is released mostly because I could really use some large-scale testing, but it should actually be useful.

http://wakaba.c3.cx/releases/mac/TheUnarchiver_alpha_1.zip

3 Name: !WAHa.06x36 : 2006-07-01 16:45 ID:3em7Hrs8 [Del]

Features include:

  • Built around libxad (http://sourceforge.net/projects/libxad/). This is an old Amiga library for handling unpacking of archives. It supports a whole lot of formats, and I added a couple more, and bugfixed old code. I also wrote a higher-level Objective-C wrapper around it, which might be useful for other projects too (including Xee).
  • Supports more formats than I can remember. Zip, Tar, Gzip, Bzip2, 7-Zip, Rar, LhA, StuffIt, several old Amiga file and disk archives, CAB, LZX, stuff I don't even know what it is.
  • Supports split archives for certain formats, like RAR.
  • I copied the Finder file-copying/moving/deleting interface for its interface.
  • Uses the character set autodetection code from Mozilla to auto-detect the encoding of the filenames in the archives.
  • I haven't bothered packaging them yet, but at some point I'll release the source for all this, and also frameworks for linking against the archive and character set autodetection parts, which might be useful in other projects.

4 Name: !WAHa.06x36 : 2006-07-01 16:50 ID:3em7Hrs8 [Del]

Issues:

  • The format support is not complete for many formats. Given the complexity and unplanned evolution of most popular archive formats, support will probably never be complete. However, most files should work. Notable exceptions include:

    • No support for encryption in any formats. Libxad supports encryption, but the GUI does not. The RAR and 7-Zip modules do not support encryption at all.
    • No support for fancy RAR features like recovery records.
    • Very basic 7-Zip support (based on the 7zC code). It can open all of the (very few) 7-Zip archives I have, but there are probably archives out there it doesn't support.
    • No support for .sitx files. This format seems completely undocumented and un-reverse-engineered.
  • No icons yet. If anyone wants to contribute, I would be very grateful. It needs a program icon, and a set of icons for the huge set of archive formats it supports.
  • The error messages should probably be re-written to be more friendly.
  • It opens an icon in the dock, unlike BOMArchiveHelper.app. This is very easy to fix, but for the alpha versions, it's easier to keep track of what's happening if the icon is there.
This thread has been closed. You cannot post in this thread any longer.