lz4.cr
forked from naqvis/lz4.crCrystal LZ4 Compression
Crystal bindings to the LZ4 compression library. Bindings provided in this shard cover the frame 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).
Installation
-
Add the dependency to your
shard.yml
:dependencies: lz4: github: naqvis/lz4.cr
-
Run
shards install
Usage
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.
Example: decompress an lz4 file
require "lz4"
string = File.open("file.lz4") do |file|
Compress::LZ4::Reader.open(file) do |lz4|
lz4.gets_to_end
end
end
pp string
Example: compress to lz4 compression format
require "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
Contributing
- 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
Contributors
- Ali Naqvi - creator and maintainer
- Carl Hörberg
Repository
lz4.cr
Owner
Statistic
- 0
- 0
- 0
- 2
- 0
- 5 months ago
- June 29, 2023
License
MIT License
Links
Synced at
Sun, 17 Nov 2024 20:50:57 GMT
Languages