4 releases
Uses new Rust 2024
new 0.1.3 | Apr 13, 2025 |
---|---|
0.1.2 | Apr 11, 2025 |
0.1.1 | Apr 11, 2025 |
0.1.0 | Apr 11, 2025 |
#316 in Filesystem
270 downloads per month
54KB
1.5K
SLoC
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
andchug tree
Non-goals
To keep this project fast and maintainable, the following are non-goals:
- Casks or building formulae from source
- Non-Homebrew sources
Dependencies
~39–54MB
~1M SLoC