LinuxCommandLibrary

brotli

Compress/uncompress files with brotli compression.

TLDR

Compress a file, creating a compressed version next to the file

$ brotli [path/to/file]
copy


Decompress a file, creating an uncompressed version next to the file
$ brotli -d [path/to/file.br]
copy


Compress a file specifying the output filename
$ brotli [path/to/file] -o [path/to/compressed_output_file.br]
copy


Decompress a Brotli file specifying the output filename
$ brotli -d [path/to/compressed_file.br] -o [path/to/output_file]
copy


Specify the compression level [1=Fastest (Worst), 11=Slowest (Best)]
$ brotli -q [11] [path/to/file] -o [path/to/compressed_output_file.br]
copy

SYNOPSIS

brotli [OPTION|FILE]...

unbrotli is equivalent to brotli --decompress

DESCRIPTION

brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2-nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.

brotli command line syntax similar to gzip (1) and zstd (1) . Unlike gzip (1), source files are preserved by default. It is possible to remove them after processing by using the --rm option .

Arguments that look like "--name" or "--name=value" are options . Every option has a short form "-x" or "-x value". Multiple short form options could be coalesced:

  • "--decompress --stdout --suffix=.b" works the same as

  • "-d -s -S .b" and

  • "-dsS .b"

brotli has 3 operation modes:

  • default mode is compression;

  • --decompress option activates decompression mode;

  • --test option switches to integrity test mode; this option is equivalent to "--decompress --stdout" except that the decompressed data is discarded instead of being written to standard output.

Every non-option argument is a file entry. If no files are given or file is "-", brotli reads from standard input. All arguments after "--" are file entries.

Unless --stdout or --output is specified, files are written to a new file whose name is derived from the source file name:

  • when compressing, a suffix is appended to the source filename to get the target filename

  • when decompressing, a suffix is removed from the source filename to get the target filename

Default suffix is  .br, but it could be specified with --suffix option.

Conflicting or duplicate options are not allowed.

OPTIONS

  • -#: compression level (0-9); bigger values cause denser, but slower compression

  • -c, --stdout: write on standard output

  • -d, --decompress: decompress mode

  • -f, --force: force output file overwrite

  • -h, --help: display this help and exit

  • -j, --rm: remove source file(s); gzip (1)-like behaviour

  • -k, --keep: keep source file(s); zstd (1)-like behaviour

  • -n, --no-copy-stat: do not copy source file(s) attributes

  • -o FILE, --output=FILE output file; valid only if there is a single input entry

  • -q NUM, --quality=NUM: compression level (0-11); bigger values cause denser, but slower compression

  • -t, --test: test file integrity mode

  • -v, --verbose: increase output verbosity

  • -w NUM, --lgwin=NUM: set LZ77 window size (0, 10-24) (default: 22); window size is (2**NUM - 16); 0 lets compressor decide over the optimal value; bigger windows size improve density; decoder might require up to window size memory to operate

  • -S SUF, --suffix=SUF: output file suffix (default:  .br)

  • -V, --version: display version and exit

  • -Z, --best: use best compression level (default); same as "-q 11"

BUGS

Report bugs at: https://github.com/google/brotli/issues

SEE ALSO

brotli file format is defined in RFC 7932 https://www.ietf.org/rfc/rfc7932.txt . brotli is open-sourced under the MIT License https://opensource.org/licenses/MIT . Mailing list: https://groups.google.com/forum/#!forum/brotli

Copied to clipboard