module Zlib

Dieses Modul bietet Zugriff auf die zlib-Bibliothek. Zlib ist als eine portable, freie, allgemeine, patentfreie verlustfreie Datenkompressionsbibliothek konzipiert, die auf nahezu jeder Computerhardware und jedem Betriebssystem verwendet werden kann.

Die zlib-Kompressionsbibliothek bietet In-Memory-Kompressions- und Dekompressionsfunktionen, einschließlich Integritätsprüfungen der unkomprimierten Daten.

Das zlib-komprimierte Datenformat ist in RFC 1950 beschrieben, welches ein Wrapper um einen Deflate-Stream ist, der in RFC 1951 beschrieben ist.

Die Bibliothek unterstützt auch das Lesen und Schreiben von Dateien im gzip (.gz)-Format mit einer Schnittstelle, die der von IO ähnelt. Das gzip-Format ist in RFC 1952 beschrieben, das ebenfalls ein Wrapper um einen Deflate-Stream ist.

Das zlib-Format wurde entwickelt, um kompakt und schnell für die Verwendung im Speicher und auf Kommunikationskanälen zu sein. Das gzip-Format wurde für die Komprimierung einzelner Dateien in Dateisystemen entwickelt, verfügt über einen größeren Header als zlib, um Verzeichnisinformationen zu erhalten, und verwendet eine andere, langsamere Prüfmethode als zlib.

Weitere Informationen zu zlib finden Sie in der zlib.h Ihres Systems.

Beispielanwendung

Die Verwendung des Wrappers zur Komprimierung von Strings mit Standardparametern ist recht einfach.

require "zlib"

data_to_compress = File.read("don_quixote.txt")

puts "Input size: #{data_to_compress.size}"
#=> Input size: 2347740

data_compressed = Zlib::Deflate.deflate(data_to_compress)

puts "Compressed size: #{data_compressed.size}"
#=> Compressed size: 887238

uncompressed_data = Zlib::Inflate.inflate(data_compressed)

puts "Uncompressed data is: #{uncompressed_data}"
#=> Uncompressed data is: The Project Gutenberg EBook of Don Quixote...

Klassenbaum

(falls GZIP_SUPPORT vorhanden ist)