snappy alternatives and similar shards
Based on the "Compression" category.
Alternatively, view snappy alternatives based on common mentions on social networks and blogs.
Free Global Payroll designed for tech teams
Do you think we are missing an alternative of snappy or a related project?
Popular Comparisons
README
Crystal Snappy
Pure Crystal implementation of Snappy compression format. This implementation supports more common case Snappy Framing Format.
Installation
- Add the dependency to your
shard.yml
:
dependencies:
snappy:
github: naqvis/snappy
- Run
shards install
Usage
require "snappy"
Module provides both Compress::Snappy::Reader
and Compress::Snappy::Writer
for use with streams like IO
and/or files. It also provides Compress::Snappy#decode
and Compress::Snappy#encode
for uncompressing and compressing block formats.
Example: decompress a snappy file
require "snappy"
File.write("file.sz", Bytes[255, 6, 0, 0, 115, 78, 97, 80, 112, 89, 1, 8, 0, 0, 104, 16, 130, 162, 97, 98, 99, 100])
string = File.open("file.sz") do |file|
Compress::Snappy::Reader.open(file) do |sz|
sz.gets_to_end
end
end
string # => "abcd"
Example: compress a file to snappy format
require "snappy"
File.write("file.txt", "abcd")
File.open("./file.txt", "r") do |input_file|
File.open("./file.sz", "w") do |output_file|
Compress::Snappy::Writer.open(output_file) do |sz|
IO.copy(input_file, sz)
end
end
end
Refer to specs for usage examples.
Development
To run all tests:
crystal spec
Contributing
- Fork it (https://github.com/naqvis/snappy/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