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:

bash cargo install furnel

Usage

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

ARGS: 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

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