ChannelZ
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.
Features
gzipandbrotliare compiled intochannelz; 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 
gziporbrotlithanks 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 
-loption; - 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:
- appcache
 - atom
 - bmp
 - css
 - eot
 - geojson
 - htc
 - htm(l)
 - ico
 - ics
 - js
 - json
 - jsonld
 - (web)manifest
 - md
 - mjs
 - otf
 - rdf
 - rss
 - svg
 - ttf
 - txt
 - vcard
 - vcs
 - vtt
 - wasm
 - xhtm(l)
 - xml
 - xsl
 
Installation
Debian and Ubuntu users can just grab the pre-built .deb package from the latest release.
This application is written in Rust and can alternatively be built from source using Cargo:
# Clone the source.
git clone https://github.com/Blobfolio/channelz.git
# Go to it.
cd channelz
# Build as usual. Specify additional flags as desired.
cargo build \
    --bin channelz \
    --release
 (This should work under other 64-bit Unix environments too, like MacOS.)
Usage
It's easy. Just run channelz [FLAGS] [OPTIONS] <PATH(S)>….
The following flags and options are available:
| Short | Long | Value | Description | 
|---|---|---|---|
--clean | Remove all existing *.gz *.br files before starting. | ||
-h | --help | Print help information and exit. | |
-l | --list | <FILE> | Read (absolute) file and/or directory paths from this text file, one entry per line. | 
-p | --progress | Show progress bar while minifying. | |
-V | --version | Print program version and exit. | 
For example:
# 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 …
 Benchmarks
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. :)