Binary Allocation & Library Launch Environment in Rust
A cross-platform package manager for Linux & Windows — like Chocolatey, but with aviators.
git clone https://github.com/HMythical/baller.git
cd baller
# Build a release binary
./build/linux/build.sh release
# Install to /usr/local/bin
sudo ./build/linux/build.sh install
# Uninstall
sudo ./build/linux/build.sh uninstallgit clone https://github.com/HMythical/baller.git
cd baller
# Build a release binary
.\build\winbuild\build.ps1 -Command release
# Install to %LOCALAPPDATA%\baller\bin
.\build\winbuild\install.ps1
# Uninstall
.\build\winbuild\uninstall.ps1- Download the latest
baller-linux-*.tar.gzorballer-windows-*.zipfrom the Releases page. - Extract the archive.
- Move the
baller(orballer.exe) binary to a directory on yourPATH.
Linux example:
tar -xzf baller-linux-*.tar.gz
sudo mv baller /usr/local/bin/Windows example:
Expand-Archive baller-windows-*.zip -DestinationPath .
Move-Item .\baller.exe "$env:LOCALAPPDATA\baller\bin\baller.exe"Verify the installation:
baller --versionB.A.L.L.E.R is a general-purpose package manager for casual users and serious developers alike. Whether you want to install a JDK to play Minecraft or need specific library versions for a project, B.A.L.L.E.R's got your back.
The goal is to complement existing package managers (Chocolatey, apt, npm, NuGet, etc.) by providing access to both popular packages and more obscure ones that other managers don't distribute — all through a single, consistent CLI.
- GitHub Releases — download the release asset built for your OS and architecture (Rust target triples, Go-style
os_archnames and bare arch tokens are all understood; a release with no build for your platform is an error, not a wrong download) - Baller Registry — custom registry API
- Chocolatey/NuGet (Windows only) — install from the Chocolatey community feed (SHA-512 verified)
- System Package Manager (Linux only) — wraps apt, dnf, or pacman for native Linux packages
- Cargo — installs crates from crates.io through the local cargo toolchain
Every install is refereed. Before anything is written, Referee checks the whole resolved plan — the package you asked for and every dependency — against public vulnerability data, and after each archive is extracted it scans the files for download-and-execute payloads, credential exfiltration, persistence tricks and unsafe permissions. A high-severity advisory or a flagged artifact aborts the install with nothing installed and the download discarded; a medium-severity one prints the advisory and continues.
baller referee audits what you already have. --no-referee skips the checks
for one command, and [referee] in baller.conf sets the thresholds. See
docs/referee.md.
./build/linux/build.sh dev # Debug build
./build/linux/build.sh release # Release build (stripped)
./build/linux/build.sh test # Run tests + clippy + fmt check
./build/linux/build.sh dist # Create .tar.gz archive
./build/linux/build.sh clean # Clean artifacts.\build\winbuild\build.ps1 -Command dev # Debug build
.\build\winbuild\build.ps1 -Command release # Release build
.\build\winbuild\build.ps1 -Command test # Run tests
.\build\winbuild\build.ps1 -Command dist # Create distribution packages
.\build\winbuild\build.ps1 -Command clean # Clean artifactscargo benchReports timing for database operations, dependency resolution, download/extraction, and full package workflows.
We welcome contributions! Please read the contributing guide before submitting code. For security issues, contact us via Discord (HMythical).
Apache 2.0. B.A.L.L.E.R will always be free and open-source.
Sincerely, HMythical
