-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi folks,
I am proud to announce the 0.1.0 release of ruby-xz, a binding to the
liblzma compression library[1] whose native XZ compression format is
known to achieve very high compression ratios. With ruby-xz, you can
use its compression power in an easy-to-use rubyish way.
ruby-xz is written ontop of ffi[2] so there’s no need to compile
anything.
== Examples
require “xz”
Compress a string
str = XZ.compress(“I love Ruby”)
Decompress it
puts XZ.decompress(str)) #=> I love Ruby
Use it together with archive-tar-minitar in order to read
XZ-compressed tarballs (.tar.xz files):
require “archive/tar/minitar”
XZ::StreamReader.open(“foo.tar.xz”) do |txz|
Archive::Tar::Minitar.unpack(txz, “foo”)
end
For more possible usecases, refer to the RDoc documentation.
== What’s new?
- Thanks to Christoph Plank’s contribution, we’re currently
1.8-compatible. But don’t count on this for the future. - The new classes XZ::StreamReader and XZ::StreamWriter allow to
access XZ-compressed data through an IO-like interface, letting
you easily (de)compress .tar.xz files with your favourite TAR
reader library. - New dependency on the “io-like” gem.
- Several minor bugs such as encoding mismatches have been corrected.
See the git commit log for the complete list. - No breaking changes, so programs written for the previous version
should still work. If not, file a bug.
== Web pages
Sourcecode: GitHub - Quintus/ruby-xz: Ruby bindings for liblzma, using fiddle
Bug tracker: Issues · Quintus/ruby-xz · GitHub
== How to install
Just as always, ruby-xz is available via RubyGems.
gem install ruby-xz
== License
ruby-xz is licensed under the MIT license, see the README for the
complete text. Please also note that this gem contains Steve K.’s
require_relative gem’s sourcecode for a 1.8-compatible
require_relative method. That gem is licensed under the BSDL (see the
sourcecode in xz.rb for further information)[3].
Enjoy!
Valete,
Marvin
[1] XZ Utils
[2] GitHub - ffi/ffi: Ruby FFI
[3] Reasoning for including the sourcecode: I didn’t want two separate
gems for 1.8 and 1.9, but it’s not possible to specify dependencies
just for a specific Ruby version.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJPPo/3AAoJELh1XLHFkqha/9oH/j158XPZA29j/surErSpH/El
9VdqfwErDWXnrYIrQm3eMA9hlL+wLEYZCJK+ZwyJS8PlIfvaKI1DO896LKxn8M6b
Ivot5BnNCCKpCLj+ehwvLmktbu8V/HEpQSbQIF4YjfsxMa/WiHIdwdPX7Uc0xSkm
gp0un6VoY9Icr1hSIUg3oZGAQE9Zn72N6ckVu98jQKCBRLBPY1S0R/O6ojN3x0Fg
ChE1Fd7XIMp8RUmtz1NC7qVyKuGvgjUQZAOM3WHlqcvBrJo3D2oAHpl2atpKXwzc
FhZXGdjAQVDYa1aAm0C7bXg7CAo3YqU+HOECWWArQkfAlcJR6AppBydX7Fhr0ms=
=OM0v
-----END PGP SIGNATURE-----