Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Offical Rubyzip repository
Pull request Compare This branch is 498 commits behind rubyzip:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


= rubyzip

rubyzip is a ruby library for reading and writing zip files.

= Install

  gem install rubyzip

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

  rake test

= Documentation

There is more than one way to access or create a zip archive with
rubyzip. The basic API is modeled after the classes in 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 rubyzip'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 rubyzip is to use rubyzip'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.

rubyzip also features the
zip/ziprequire.rb[link:files/lib/zip/ziprequire_rb.html] module which
allows ruby to load ruby modules from zip archives.

For details about the specific behaviour of classes and methods refer
to the test suite. Finally you can generate the rdoc documentation or

= License

rubyzip is distributed under the same license as ruby. See

= Website and Project Home

== Download (tarballs and gems)

= Authors

Alan Harper ( alan at

Thomas Sondergaard (thomas at

Technorama Ltd. (oss-ruby-zip at

extra-field support contributed by Tatsuki Sugiura (sugi at
Something went wrong with that request. Please try again.