#compress #assets #brotli #deflate #gzip

app precompress

Precompress a directory of assets

6 releases

0.2.2 Dec 19, 2022
0.2.1 Jul 23, 2022
0.1.2 Jul 21, 2022

#499 in Command line utilities

21 downloads per month

MIT license

19KB
479 lines

precompress

Precompress a directory of assets

precompress will recursively compress all suitable assets in a given directory, creating (or replacing) compressed versions of the original files using the appropriate extension type (e.g. gzip: index.html -> index.html.gz).

Installation

Using cargo:

cargo install precompress

Usage

$ precompress -h
precompress 0.2.1
Precompress a directory of assets

USAGE:
    precompress [OPTIONS] <PATH>

ARGS:
    <PATH>    Directory to recursively compress files in

OPTIONS:
        --brotli
            Enable brotli compression

        --brotli-quality <BROTLI_QUALITY>
            Set brotli compression quality [default: 11]

        --deflate
            Enable deflate compression

        --deflate-quality <DEFLATE_QUALITY>
            Set deflate compression quality [default: 9]

        --gzip
            Enable gzip compression

        --gzip-quality <GZIP_QUALITY>
            Set gzip compression quality [default: 9]

    -h, --help
            Print help information

    -t, --threads <THREADS>
            Number of threads to use; "0" uses the number of cpus [default: 0]

    -V, --version
            Print version information

        --zstd
            Enable zstd compression

        --zstd-quality <ZSTD_QUALITY>
            Set zstd compression quality [default: 21]

Example

Precompress the files in the current directory using brotli, gzip, and zstd:

precompress . --brotli --gzip --zstd

TODO

  • allow custom include/exclude globs
  • add minimum file size constraint

License

precompress is released under the MIT license. Please see the LICENSE file for more details.

Dependencies

~18MB
~387K SLoC