| # NAME |
| |
| brotli(1) -- brotli, unbrotli - compress or decompress files |
| |
| # 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: 24); window size is |
| `(pow(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 |
| * `-D FILE`, `--dictionary=FILE`: |
| use FILE as raw (LZ77) dictionary; same dictionary MUST be used both for |
| compression and decompression |
| * `-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`" |
| |
| # 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 |
| |
| # BUGS |
| |
| Report bugs at: https://github.com/google/brotli/issues |