created 1.Jun.2000, last updated 09.Feb.2003

## The Library

Overview

The zziplib library is intentionally lightweight, it offers the ability to easily extract data from files archived in a single zip file. Applications can bundle files into a single zip archive and access them. The implementation is based only on the (free) subset of compression with the zlib algorithm which is actually used by the `zip/unzip` tools.

The library allows reading zip archives in a number of ways,

archive mode:
  reading the zip directory and extracting files from it. This is the traditional mode as seen with unzip-utilities. Some extra unzip-utiles for transparent/magic mode are shipped as well.
replacement mode:
  Use ZZIP_FILE / ZZIP_DIR pointers provided by zziplib and put them to work with routines originally developped to work with real directories and file handles. The API calls do follow traditional synopsis from posix/stdio.
transparent mode:
  Use replacement handles and allow the open()-calls to automatically detect when a file is contained in a zip archive or when it is a real file in the file system. A filepath can be partly in a real filesystem and partly within the zip archive when one is seen.
ext magic
  Use the same filepath to access either a zipped or real file - it looks for a real file and there is none then every subdirectory of the path is checked, a ".zip" extension appended, and the zipped file transparently opened. This can speed up dat-file development dramatically.
io/xor magic
  The access to the filesystem can be hooked up - examples are given for xor obfuscation which is great for game artwork and AI data. A small intro for SDLrwops usage is given as well.