Wednesday, March 12, 2014

zip64 version of the miniz library released as part of the vogl codebase

miniz is my (mostly) drop-in zlib replacement library:
http://code.google.com/p/miniz

Anyhow, the version of miniz on Google Code only supports zip32, but I added full support for zip64 and a bunch of other features in my spare time last year. I used vogl to test the new code, which you can find the source to here:

https://github.com/ValveSoftware/vogl/blob/master/src/voglcore/vogl_miniz_zip.cpp
https://github.com/ValveSoftware/vogl/blob/master/src/voglcore/vogl_miniz.cpp

The files are marked ".cpp" but it's just plain C code. I need to re-run the latest new code through a C compiler again, but there shouldn't be anything in there that C can't handle. If there is I'll fix it. zip64 was a real pain to fully implement, and next time I will definitely choose a cleaner archive format.

I need to extract this code from the vogl codebase (should be relatively easy as miniz is an independent blob of code) and do a standalone release at some point.

miniz is probably one of my most popular open source libraries. Between all the Microsoft games that used my earlier lossless codecs (Age of Empires 1/2, Halo 3 and I think one of its sequels, Forza 2, Halo Wars) and miniz my compression code has found its way into a bunch of shipped products. One of my other compression libs (picojpeg) is now in orbit on the Skycube nano-satellite, which should be fully deployed from the ISS by the end of the month after its shakedown period is over. I do compression stuff purely for the fun of it so it's pretty cool to see what people wind up doing with it.


3 comments:

  1. Hi Rich,
    Since I can't find a standalone version with zip64, I suppose you never got around to do it? :)
    If not, is this version's API the same as the previous version?

    ReplyDelete
  2. I'm also interested in stand alone of zip64. Can we talk about it?

    ReplyDelete
    Replies
    1. You can find it here:

      https://github.com/uroni/miniz

      Delete