xz
Crystal XZ
Crystal bindings to the XZ (lzma) compression library.
Installation
-
Add the dependency to your
shard.yml
:dependencies: xz: github: naqvis/xz.cr
-
Run
shards install
Usage
require "xz"
XZ
shard provides both Compress::XZ::Reader
and Compress::XZ::Writer
.
Example: decompress an xz file
require "xz"
string = File.open("file.xz") do |file|
Compress::XZ::Reader.open(file) do |xz|
xz.gets_to_end
end
end
pp string
Example: compress to xz compression format
require "xz"
File.write("file.txt", "abcd")
File.open("./file.txt", "r") do |input_file|
File.open("./file.xz", "w") do |output_file|
Compress::XZ::Writer.open(output_file) do |xz|
IO.copy(input_file, xz)
end
end
end
Contributing
- Fork it (https://github.com/naqvis/xz.cr/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Ali Naqvi - creator and maintainer