rzip is a fork of the rubyzip library that target Ruby 1.9 or later only


If you have rubygems you can install rzip directly from the gem repository

gem install rzip

Otherwise obtain the source (see below) and run

ruby install.rb

To run the unit tests you need to have test::unit installed

rake test


There is more than one way to access or create a zip archive with rzip. The basic API is modeled after the classes in java.util.zip from the Java SDK. This means there are classes such as Zip::ZipInputStream, Zip::ZipOutputStream and Zip::ZipFile. Zip::ZipInputStream provides a basic interface for iterating through the entries in a zip archive and reading from the entries in the same way as from a regular File or IO object. ZipOutputStream is the corresponding basic output facility. Zip::ZipFile provides a mean for accessing the archives central directory and provides means for accessing any entry without having to iterate through the archive. Unlike Java's java.util.zip.ZipFile rzip's Zip::ZipFile is mutable, which means it can be used to change zip files as well.

Another way to access a zip archive with rzip is to use rzip's Zip::ZipFileSystem API. Using this API files can be read from and written to the archive in much the same manner as ruby's builtin classes allows files to be read from and written to the file system.

rzip also features the zip/ziprequire.rb module which allows ruby to load ruby modules from zip archives.


rubyzip is distributed under the same license as ruby. See www.ruby-lang.org/en/LICENSE.txt

Website and Project Home




Alan Harper (alan at aussiegeek.net)

Thomas Sondergaard (thomas at sondergaard.cc)

Technorama Ltd. (oss-ruby-zip at technorama.net)

extra-field support contributed by Tatsuki Sugiura (sugi at nemui.org)