chug-cli

Crates.iochug-cli
lib.rschug-cli
version
sourcesrc
created_at2025-04-11 04:54:46.325144+00
updated_at2025-04-13 23:58:51.173165+00
descriptionThe fastest way to consume Homebrew bottles
homepage
repositoryhttps://github.com/Benjamin-Davies/chug
max_upload_size
id1629242
Cargo.toml error:TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Ben Davies (Benjamin-Davies)

documentation

README

Chug

The fastest way to consume Homebrew bottles.

Installation

To install the latest release:

curl -fsSL https://chug.bend.nz/install.sh | sh

Or, to install from source:

cargo install chug-cli

Usage

chug add $formula_name
chug remove $formula_name
chug update

Rationale

Homebrew is the de-facto standard package manager for 3rd-party development tools on macOS. Most of these tools are built using "formulae" and their pre-built binaries can be downloaded as "bottles". However, Homebrew still requires that users download a significant portion of the Homebrew toolchain to install bottles. Chug aims to improve on Homebrew in the following ways:

  • Single-purpose
    • Chug can only download and manage bottles
  • Efficiency
    • Chug is pre-compiled to a single binary (no more Ruby DSLs)
    • Chug is written in Rust
    • Chug downloads and extracts bottles in parallel
    • Chug extracts bottles as they are being downloaded
    • Chug avoids using external programs where practical
    • Chug avoids creating temporary files where practical
    • Chug assumes the user will only install a given version once, so there is no point in caching bottle downloads
  • Cleanliness
    • Chug installs packages on a per-user basis
    • Chug avoids changing permissions for /usr/local, /opt/homebrew, etc.
    • Chug follows the XDG Base Directory Specification and installs binaries to ~/.local/bin (configured via $XDG_BIN_HOME)

TODO List

  • Issues around patching on macOS (particularly for python@3.13)
  • Linux support
  • curl -fsSL https://chug.bend.nz/install.sh | sh
  • chug list and chug tree

Non-goals

To keep this project fast and maintainable, the following are non-goals:

  • Casks or building formulae from source
  • Non-Homebrew sources
Commit count: 0

cargo fmt