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.

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

What's needed now is:

  • Testing! Try it out on all kinds of archives, see what it handles, and what it chokes on. Send me archives it doesn't handle, and I'll see what I can do about fixing support for them.
  • Icons! Are you a Mac icon artists? I want your help!
  • Code contribution! Libxad is an awesome library. However, it could always use support for more formats. Is your favourite format not supported, or broken? If you contribute code for it to libxad, it will be supported by The Unarchiver, too!
  • Suggestions! Is it missing features not already mentioned here? Suggest them, and I'll give them consideration!

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

Oh yeah, one more missing feature:

  • A preference page, including at least some way to easily make archives open with The Unarchiver, like the format list in Xee.
This thread has been closed. You cannot post in this thread any longer.