| Crates.io | bpma |
| lib.rs | bpma |
| version | 0.1.2 |
| created_at | 2025-10-02 16:34:46.951842+00 |
| updated_at | 2025-10-02 16:34:46.951842+00 |
| description | Bpm - local binary package manager |
| homepage | |
| repository | https://github.com/Kazan20/bpm |
| max_upload_size | |
| id | 1864656 |
| size | 55,405 |
bpm is a simple, local, binary-based package manager written in Rust with support for dependency resolution.
It uses .mri (Magnet Remote Installer) files in TOML format to describe available packages and their dependencies.
.mri TOML repositories for easy package definitions.calcbits for progress bars and storage.installed.json.By default, bpm lives in:
C:/Users/User/Bpm-Store/
├── bins/ # Installed binaries go here
├── main/ # Example repo
│ └── packages.mri # Repo index (TOML)
├── installed.json # Installed packages DB
└── packages.db # Binary storage (via calcbits)
.mri FileExample packages.mri:
[neovim."0.9.0"]
path = "C:/Users/User/Bpm-Store/main/neovim-0.9.0"
binaries = ["nvim.exe"]
dependencies = ["libuv:1.0.0"]
[libuv."1.0.0"]
path = "C:/Users/User/Bpm-Store/main/libuv-1.0.0"
binaries = ["libuv.dll"]
This means:
main:neovim will automatically install libuv:1.0.0 first.bpm /i <repo:package[:version]> # Install a package
bpm /r <package> # Remove a package
bpm /u <repo:package> # Update package to latest version
bpm /l # List installed packages
bpm /v # Show bpm version
bpm /h # Help menu
bpm /i main:neovim # Install latest version of neovim from 'main' repo
bpm /i main:neovim:0.9.0 # Install specific version
bpm /r neovim # Remove package
bpm /u main:neovim # Update neovim
bpm /l # List installed packages
To build bpm from source:
git clone https://github.com/Kazan20/bpm.git
cd bpm
cargo build --release
Binary will be at:
target/release/bpm.exe
MIT License.
check out calcbits made by me