#brotli #br #web #command-line-tool #webpack

app furnel

A command-line utility to compress files using the brotli algorithm

1 unstable release

0.1.0 Jan 24, 2022

#683 in Compression

MIT license

18KB
259 lines

Furnel

A command-line utility to compress files using the brotli algorithm. Built because I wanted a simple tool to pre-compress files for a static website.

Crates.io Continuous Integration workflow status badge Security Audit workflow status badge License: MIT

Why “Furnel”?

The brotli algorithm is named for Brötli, which is the Swiss German word for bread rolls. Bread rolls are baked in an oven, and an oven in Romansh - another Swiss language - is called furnel.

Furnel logo

Furnel makes brotli.

Installation

From GitHub

  1. Go to the Furnel releases page.
  2. Download the version you need for the OS you have.
  3. Unpack the self-contained executable somewhere on your path.

Using cargo

If you are a Rust developer, you can install the binary from Crates.io:

cargo install furnel

Usage

USAGE:
    furnel [OPTIONS] [--] [BASE_PATH]

ARGS:
    <BASE_PATH>    The base path to search [default: .]

OPTIONS:
    -h, --help
            Print help information

    -l, --license
            Display full license notice

    -m, --only-missing
            Only compress missing files, i.e. those where no corresponding .br
            files are present

    -q, --quiet
            Disable progress indicator

    -r, --recurse
            Recurse into subdirs below the base path

    -x, --extension <EXTENSION>
            File extensions to process, for example `-x css -x html -x js`
            [default: css html js svg txt]

Building

Furnel is written in Rust, so you will need a Rust installation to compile it.

Installing Rust on Windows

Download and run the rustup-init.exe installer. As part of the installation process, it will instruct you to install the Microsoft Visual C++ Build Tools 2019 and provide a link.

Build, Test and Run

git clone https://github.com/pyxy-dk/furnel.git
cd furnel
cargo build
cargo test
cargo run -- -h

Dependencies

~9.5MB
~328K SLoC