Rand Stats

Compress::Brotli

github:sylvarant

Perl6 Brotli Compression

Build Status artistic

Provides acces to Brotli compression by means of the perl6 NativeCall API.

Usage

A simple compression/decompression round trip can be written as follows.

use Compress::Brotli; 

my Buf $blob = compress("a simple string");
my Buf $buffer = decompress($blob);
say $buffer.decode('UTF-8');

To control the parameters of the brotli compression an object of class Compress::Brotli::Config can be passed as an argument to the compress subroutine.

use Compress::Brotli; 

# a low quality text compression
my Config $conf = Config.new(:mode(1),:quality(1),:lgwin(10),:lgblock(0));
my Buf $blob = compress("a simple string",$conf);

Platforms

Linux, FreeBSD and Mac OSX are tested and supported.

Dependencies

To build brotli the libbrotli project is used. To succesfully compile libbrotli and the added wrapper library you need: libtool, autoconf, gmake and automake.

License

Artistic License 2.0