IzPack supports pack200

I’m glad to announce that IzPack now supports Pack200 compression (see the related JIRA entry).

Pack200 compression offers a drastic reduction of the installers size. The flip side of the coin is of course that it takes much longer to create an installer :-)

On the IzPack installer itself, enabling Pack200 reduces the installer by 4Mb.

The way it works is simple: all you need to do is add an empty pack200 tag in your info section of your installers, then every JAR that is added to a pack is compressed. As a special exception, signed JARs are not compressed using Pack200 (remember that Pack200 is only semantic-preserving). It should also be noted that the Pack200 compression that has been implemented is highly aggressive as it also strips debug symbols. Feel-free to send us a patch if you would like a more fine-grained Päck200 compression.

Here is a small excerpt:

<info>
   <appname>IzPack</appname>
   <appversion>4.0.0</appversion>
   (...)
   <requiresjdk>no</requiresjdk>
   <pack200/>
   (...)
</info>

If you want to test the feature, you will need to get IzPack from its Subversion trunk.

Finally, there is more to come in IzPack 4.1 in terms of installers footprint reduction. I’m really glad that Google released Protocol Buffers, as I was going to develop a similar binary data encoding system. Indeed, IzPack currently relies a lot on Java objects serialization (which is costly), so switching to more compact data encodings will drastically reduce the size of installers. My personal test case for this will be Glassfish v3 from Sun. Stay tuned :-)

2 Responses to “IzPack supports pack200”

  1. Eduardo Pelegri-LlopartNo Gravatar says:

    Looking forward to your test case :-) - eduard/o

  2. JulienNo Gravatar says:

    Thanks Eduardo :-)

Leave a Reply