Crystal bindings to the LZ4 compression library. Bindings provided in this shard cover the fram 7F43 e format as the frame format is the recommended one to use and guarantees interoperability with other implementations and language bindings.
LZ4 is a lossless compression algorithm, providing compression speeds > 500 MB/s per core (>0.15 Bytes/cycle). It features an extremely fast decoder, with speeds 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