Crystal Brotli
Crystal bindings to the Brotli compression library.
Installation
- Add the dependency to your
shard.yml
:
`yaml
dependencies:
brotli:
github: naqvis/brotli.cr
`
- Run
shards install
Usage
require "brotli"
brotli
shard provides both Compress::Brotli::Reader
and Compress::Brotli::Writer
, as well as Compress::Brotli#decode
and Compress::Brotli#encode
methods for quick usage.
Refer to specs
for sample usage.
Example: decompress an brotli file
require "brotli"
string = File.open("file.br") do |file|
Compress::Brotli::Reader.open(file) do |brotli|
brotli.gets_to_end
end
end
pp string
Example: compress to brotli compression format
require "brotli"
File.write("file.txt", "abcd")
File.open("./file.txt", "r") do |input_file|
File.open("./file.br", "w") do |output_file|
Compress::Brotli::Writer.open(output_file) do |brotli|
IO.copy(input_file, brotli)
end
end
end
Development
To run all tests:
crystal spec
Contributing
- Fork it (<https://github.com/naqvis/brotli.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