ZLib for NewtonOS
ZLib is a library to compress/uncompress data written by Jean-loup Gailly & Mark Adler which I partially ported to NewtonOS. The ported functions are the basic functions, if you need more, contact me.
The package doesn't do anything alone, it's a kind of shared library. The mechanism involved is the Units mechanism.
ZLib offers a compression/decompression method called inflate/deflate used in Zip archives (however, it's not the only method used in these archives) and gz archives. This library is also used today in a lot of projects including VNC, SSH, etc.
AFAIK, there are currently three programs using the Newton port of ZLib:
- Steve Weyer's VNC, a VNC client (the use of the ZLib requires that the server also uses this method to transmit data)
- Steve Weyer's UnzipBMP, a Newtscape plug-in (the ZLib is only useful with deflate compressed zip files, it's useless with implode-compressed data).
- Eckhart Köppen's Courier, a new light web browser (ZLib is used to uncompress pages on the fly).
|
|
ZLib 1.1 (MacOS archive - package only) |
|
|
ZLib 1.1 (MacOS archive - package, sources and developer files) |
|
|
ZLib 1.1 (Zip archive - package only) |
The original ZLib APIs are described there. The Newton ZLib developer documentation is here.
ZLib mostly includes code I haven't written. The ZLib license is quite liberal:
zlib.h -- interface of the 'zlib' general purpose compression library version 1.1.4, March 11th, 2002 Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
I decided to distribute the source of the ZLib with my changes and the NewtonScript wrappers. However, because the Newton version uses the Unit mechanism, I add the following restrictions to the use of the source code and the package:
- The ZLib package in its released form shall not be included into another package.
- Any redistribution of a modified version of the ZLib package without my agreement shall not include "Kallisys", including as a signature and for the DeclareUnit and DefineUnit parameters.
I realize that the ZLib license loses its Open Source certification from the OSI with my addenda. If it's a problem, just submit it to the OSI. I don't think they violate the Open Source definition.
Notes concerning the source code of the original ZLib: the changes I had to do to be compilable for NewtonOS were basically to declare as const every global variable practically used as constants but not declared or partially declared as such. As a consequence, the source code included in the developer archive may not be compilable for other targets.
- 3/14/2002 1.1
- Update to release 1.1.4
- 11/4/2001 1.0
- Initial release of the software