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.

7 Name: Anonymous : 2006-07-01 17:20 ID:6NZh6CPE [Del]

Is this universal if not then you need to DIE.

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

It's universal, but I have no idea if it works right on Intel. There might very well be endianness issues in the various pieces of code. I'd especially like to know if the RAR and 7-Zip code works right on Intel, so get testing.

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

Ok, first obvious bug: Xcode has somehow messed up the framework linking, and this won't launch at all on most machines! Stay tuned for alpha 2!

10 Name: !WAHa.06x36 : 2006-07-01 19:21 ID:3em7Hrs8 [Del]

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

All right, fixed! Big thanks to Rich Siegel for untangling my linking issues.

11 Name: !WAHa.06x36 : 2006-07-07 18:39 ID:3em7Hrs8 (Image: 560x560 jpg, 113 kb) [Del]

src/1152322766966.jpg: 560x560, 113 kb

Alpha 3 is done. It is pretty much feature-complete for 1.0. However, it still has no icons. I have some help for that lined up, though, but I don't know how long that will take. In the meantime, for testing purposes, the archive icons are replaced by a picture of Aruruw sitting in a box.

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

Changes since the last version include:

  • Bugfixed file type declarations.
  • Interface for easily associating (and un-associating) archives with The Unarchiver, making it easy to install and remove.
  • Working password interface.
  • Bugfixes for bzip2 archives.
  • Various other bugfixes.

I could really use some testing results from this, successful or not. I'd really like to know if it is working at all for whatever archives you have lying around!

12 Name: Anonymous : 2006-07-08 02:22 ID:IH7W0cgt [Del]

It runs on my Power Mac G4. I am trying to unpack some splitted ace archives that unace on GNU/Linux didn't manage to fix, and it seemed to work in The Unarchiver! I'd like if it had an option to select where to unpack the files to, though.

13 Name: Anonymous : 2006-07-08 02:32 ID:IH7W0cgt [Del]

Oh no, it didn't extract after all. But those archives could be rotten. I'm going to make it my default unarchiver anyway.

14 Name: !WAHa.06x36 : 2006-07-08 05:31 ID:3em7Hrs8 [Del]

>>13

It doesn't support Ace 2, sadly, just Ace 1. Ace 2 is propriatary and undocumented, as far as I know. It really would be nice if somebody would add support for it to libxad, but I think it's beyond my abilities to do.

This thread has been closed. You cannot post in this thread any longer.