brasse
is a Homebrew clone written in Rust. The goals of this project are:
- increase speeds for operations performed offline
brew list
takes over 400 ms (brasse list
takes 1 ms)brew search git
takes 869 msbrew info git
takes 530 ms
- provide good piping support to allow for, for example:
- pipe a list of package names to
install
- pipe a list from
outdated
toinfo
- pipe a list of package names to
- (optionally) provide better dependency management
- similarly to APT, differentiate automatically and manually installed packages to remove the former if they have no dependents
- keep everything compatible with the official
brew
executable
- Open the latest brasse release on GitHub
- Download the asset that corresponds to your CPU (
aarch64
being Apple Silicon (M1/M2) andx86_64
being Intel) - Put the executable in your
$PATH
(for example,~/.local/bin
)
You need to have a Rust toolchain installed.
-
Clone the repo
git clone https://github.com/kytta/brasse.git
-
(if you have just) run
just install
-
If you don't have
just
, run:cargo build --release install -m 755 target/release/brasse ~/.local/bin/brasse
The steps above assume ~/.local/bin
is in your $PATH
This is very much an experimental project.
Benchmarks are done with hyperfine
Currently, this just outputs the list of formulae and casks.
Supported arguments: -1
Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
---|---|---|---|---|
brew list |
435.2 ± 7.2 | 428.5 | 453.1 | 329.88 ± 27.27 |
brasse list |
1.3 ± 0.1 | 1.2 | 2.9 | 1.00 |
brasse (pronounced [bʁas]) is a present and imperative form of the French verb brasser, which means ‘to brew’.
Copyright © 2022 Nikita Karamov
Licensed under the BSD 2-Clause "Simplified" License.
This project is hosted on GitHub: https://github.com/kytta/brasse.git