= QuickLZ/Ruby

Copyright (c) 2008 SUGAWARA Genki <[email protected]>

== Description

Ruby bindings for QuickLZ.

QuickLZ is a data compression library which gives fast compression.

== Project Page

http://rubyforge.org/projects/qlzruby

== Install

gem install qlzruby

== Download

http://rubyforge.org/frs/?group_id=6766

== Example

require 'qlzruby'
require 'open-uri'
require 'stringio'

# block compress
source = <<-EOS
London Bridge Is falling down,
Falling down, Falling down.
London Bridge Is falling down,
My fair lady.
EOS

comp_data = QuickLZ.block_compress(source)
decomp_data = QuickLZ.block_decompress(comp_data)

puts <<-EOS
- block compress -
uncompress size: #sourcesource.length
compress size: #comp_datacomp_data.length
decompress size: #decomp_datadecomp_data.length
decompress success?: #== decomp_data

EOS

# stream compress
source = open('http://www.ruby-lang.org/') {|f| f.read }
source = StringIO.new(source)
comp_data = StringIO.new

QuickLZ.stream_compress(source, comp_data)

comp_data.seek(0)
decomp_data = StringIO.new

QuickLZ.stream_decompress(comp_data, decomp_data)

puts <<-EOS
- stream compress -
uncompress size: #sourcesource.length
compress size: #comp_datacomp_data.length
decompress size: #decomp_datadecomp_data.length
decompress success?: #== decomp_data.string
EOS

=== QuickLZ

QuickLZ/Ruby contains QuickLZ.

QuickLZ is a data compression library which gives fast compression.

* http://www.quicklz.com/
* Copyright 2006-2008 Lasse Reinhold