  This is libzip, a C library for reading, creating, and modifying zip
archives.  Files can be added from data buffers, files, or compressed
data copied directly from other zip archives.  Changes made without
closing the archive can be reverted.  The API is documented by man
pages.

  For more information, take a look at the included man pages.  You
can start with libzip(3), which lists all others.  Example source code
is in the src/ subdirectory.

  If you have developed an application using libzip, you can find out
about API changes and how to adapt your code for them in the included
file API-CHANGES.

  For generic installation instructions, see file `INSTALL'.
Additionally, you'll need zlib (at least version 1.1.2). It comes
with most operating systems nowadays, or you can get it at
	http://www.gzip.org/zlib/

  If you make a binary distribution, please include a pointer to the
distribution site:
	http://www.nih.at/libzip/
	ftp.nih.at /pub/nih/libzip
The latest version can always be found there.

  Mail suggestions and bug reports to <libzip@nih.at>.

  There is also a mailing list for developers using libzip.  You can
subscribe to it by sending a mail with the subject "subscribe libzip-discuss"
to minimalist at nih.at. List mail should be sent to libzip-discuss at
nih.at.
