You are looking at historical revision 23189 of this page. It may differ significantly from its current revision.
zlib bindings for Chicken Scheme
zlib is a popular data compression library that uses the DEFLATE algorithm internally. It is defined in RFC 1950.
These bindings provide two procedures:[procedure] (open-zlib-compressed-input-port [INPUT-PORT])
Returns an input-port.[procedure] (open-zlib-compressed-output-port [OUTPUT-PORT])
Returns an output-port.
The first is for inflating an existing zlib stream and the second for deflating data into a new stream.
Inflating a stream:
(with-input-from-port (open-zlib-compressed-input-port) read-string)
Deflating a stream:
(with-output-to-port (open-zlib-compressed-output-port) (lambda () (write-string (read-string)) (close-output-port (current-output-port))))
- This is expecting the zlib format, not raw DEFLATE or the gzip format, which are defined in RFCs 1951 and 1952 respectively.
- When finished deflating, it is important to always close the zlib output-port. This will ensure that the zlib trailing data is written along with any data still buffered. The destination port will remain open after the zlib port is closed.
- Initial release
Copyright (C) 2011 by Joseph Gay This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA zlib: Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler see http://zlib.net/zlib_license.html