ChannelZ is a CLI tool for x86-64 Linux machines that simplifies the common task of encoding static web assets with Gzip and Brotli for production environments.
brotliare compiled into
channelz; their binaries do not need to be separately installed;
- The maximum compression settings are applied; the end results will often be smaller than running native
brotlithanks to various optimizations;
- It can be set against one or many files, one or many directories;
- Paths can be specified as trailing command arguments, and/or loaded via text file (with one path per line) with the
- Directory processing is recursive;
- Processing is done in parallel with multiple threads for major speedups;
- Appropriate file types are automatically targeted; no thinking involved!
The "appropriate" file types are:
This application is written in Rust and can be installed using Cargo.
For up-to-date, stable Rust, run:
RUSTFLAGS="-C link-arg=-s" cargo install \ --git https://github.com/Blobfolio/channelz.git \ --bin channelz \ --target x86_64-unknown-linux-gnu
.deb packages are also added for each release. They should always work for the latest stable Debian and Ubuntu.
It's easy. Just run
channelz [FLAGS] [OPTIONS] <PATH(S)>….
The following flags and options are available:
--clean Remove all existing *.gz *.br files before starting. -h, --help Prints help information -l, --list <list> Read file paths from this list. -p, --progress Show progress bar while minifying. -V, --version Prints version information
# Generate app.js.gz and app.js.br: channelz /path/to/app.js # Tackle a whole folder at once with a nice progress bar: channelz -p /path/to/assets # Do the same thing, but clear out any old *.gz or *.br files first: channelz --clean -p /path/to/assets # Or load it up with a lot of places separately: channelz /path/to/css /path/to/js …
ChannelZ's compression is a little bit stronger than
brotli -q 11 and
gzip -9, but not by much.
Timing-wise, though, it's no competition. :)