dwww Home | Manual pages | Find package

IO::Co...Brotli(3pm)  User Contributed Perl Documentation  IO::Co...Brotli(3pm)

NAME
       IO::Compress::Brotli - Write Brotli buffers/streams

SYNOPSIS
         use IO::Compress::Brotli;

         # compress a buffer
         my $encoded = bro $encoded;

         # compress a stream
         my $bro = IO::Compress::Brotli->create;
         while(have_input()) {
            my $block = get_input_block();
            my $encoded_block = $bro->compress($block);
            handle_output_block($encoded_block);
         }
         # Need to finish the steam
         handle_output_block($bro->finish());

DESCRIPTION
       IO::Compress::Brotli is a module that compressed Brotli buffers and
       streams. Despite its name, it is not a subclass of IO::Compress::Base
       and does not implement its interface. This will be rectified in a future
       release.

   One-shot interface
       If you have the whole buffer in a Perl scalar use the bro function.

       bro($input)
           Takes   a  whole  uncompressed  buffer  as  input  and  returns  the
           compressed data.

           Exported by default.

   Streaming interface
       If you want to process the  data  in  blocks  use  the  object  oriented
       interface. The available methods are:

       IO::Compress::Brotli->create
           Returns  a  IO::Compress::Brotli instance. Please note that a single
           instance cannot be used to decompress multiple streams.

       $bro->window($window)
           Sets the window  parameter  on  the  brotli  encoder.   Defaults  to
           BROTLI_DEFAULT_WINDOW (22).

       $bro->quality($quality)
           Sets  the  quality  paremeter  on  the  brotli encoder.  Defaults to
           BROTLI_DEFAULT_QUALITY (11).

       $bro->mode($mode)
           Sets the brotli encoder mode, which can be any of "generic",  "text"
           or "font". Defaults to "generic".

       $bro->compress($block)
           Takes  the  a  block  of  uncompressed  data  and returns a block of
           compressed data. Dies on error.

       $bro->flush()
           Flushes any pending output from the encoder.

       $bro->finish()
           Tells the encoder to start the finish  operation,  and  flushes  any
           remaining compressed output.

           Once  finish  is  called, the encoder cannot be used to compress any
           more content.

           NOTE: Calling  finish  is  required,  or  the  output  might  remain
           unflushed, and the be missing termination marks.

SEE ALSO
       Brotli        Compressed        Data        Format       Internet-Draft:
       <https://www.ietf.org/id/draft-alakuijala-brotli-08.txt>

       Brotli source code: <https://github.com/google/brotli/>

AUTHOR
       Marius Gavrilescu, <marius@ieval.ro>

       The encoder bindings, modernisation of the decoder bindings and a  clean
       up of the overall project were contributed by:

       Quim Rovira, <quim@rovira.cat>
       Ævar Arnfjörð Bjarmason, <avarab@gmail.com>
       Marcell Szathmári
       Mattia Barbon, <mattia@barbon.org>

COPYRIGHT AND LICENSE
       Copyright (C) 2015-2018 by Marius Gavrilescu

       This  library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself, either Perl version 5.20.2  or,  at
       your option, any later version of Perl 5 you may have available.

perl v5.40.0                       2024-10-15              IO::Co...Brotli(3pm)

Generated by dwww version 1.16 on Sat Oct 3 06:00:51 CEST 2026.