Crystal bindings to the LZ4 compression library. Bindings provided in this shard cover the frame format as the frame format is recommended one to use and guarantees interoperability with other implementations and language bindings.
LZ4 is lossless compression algorithm, providing compression speed > 500 MB/s per core (>0.15 Bytes/cycle). It features an extremely fast decoder, with speed in multiple GB/s per core (~1 Byte/cycle).
-
Add the dependency to your
shard.yml:dependencies: lz4: github: naqvis/lz4.cr
-
Run
shards install
require "lz4"LZ4 shard provides both Compress::LZ4::Reader and Compress::LZ4::Writer as well as Compress::LZ4#decode and Compress::LZ4#encode methods for quick usage.
require "lz4"
string = File.open("file.lz4") do |file|
Compress::LZ4::Reader.open(file) do |lz4|
lz4.gets_to_end
end
end
pp stringrequire "lz4"
File.write("file.txt", "abcd")
File.open("./file.txt", "r") do |input_file|
File.open("./file.lz4", "w") do |output_file|
Compress::LZ4::Writer.open(output_file) do |lz4|
IO.copy(input_file, lz4)
end
end
end- Fork it (https://github.com/naqvis/lz4.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
- Ali Naqvi - creator and maintainer
- Carl Hörberg