1 unstable release
Uses new Rust 2024
| 0.1.2 | Oct 2, 2025 |
|---|
#214 in Operating systems
16KB
174 lines
Blur Package Manager (bpm)
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.
📦 Features
- Local binary-based package management.
.mriTOML repositories for easy package definitions.- Dependency resolution (installs required packages first).
- Uses
calcbitsfor progress bars and storage. - Installed packages are tracked in
installed.json. - Supports multiple repositories.
- Works completely offline (local paths as repos). for now...
📂 Directory Layout
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)
📑 Example .mri File
Example 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:
- Installing
main:neovimwill automatically installlibuv:1.0.0first.
⚡ Usage
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
Examples
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
🛠 Development
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
🔮 Roadmap
- ✅ Dependency resolution
- ⏳ Remote repo fetching (git/http)
- ⏳ Better error messages
- ⏳ Search command for packages
📜 License
MIT License.
check out calcbits made by me
Dependencies
~9–27MB
~348K SLoC