vuru is the package manager for VUP, written in Odin. It is the piece that makes VUP feel usable instead of being a pile of release assets and shell instructions.

Shape

vuru searches VUP and official Void repositories together, installs prebuilt VUP packages, resolves dependencies across VUP and official repos, and can still drop into source builds when needed.

The command surface is intentionally familiar: search, install, remove, update, query, build, sync, and src. It should feel like package manager glue, not a separate operating system.

Commands

The normal flow is deliberately close to other package managers:

vuru search code
vuru install vlang
vuru install -Su
vuru remove -o
vuru query odin

Why vuru src Exists

The main reason vuru exists is xbps-src integration. If a Void template depends on a VUP package, plain xbps-src will not know where to find it.

vuru src parses the template dependencies, detects which packages are in VUP, downloads the required .xbps files into hostdir/binpkgs/, updates the local repository index with xbps-rindex, and then runs the requested xbps-src command.

That makes templates depending on VUP packages build without turning the whole workflow into copy-pasted setup instructions.

Current Edge

musl support is the current annoying thread. vuru should be simple enough to cross-compile, but Odin packaging for musl still needs work. Since the Odin template currently lives in VUP, that may stay local for a while, or it may turn into upstream Odin work if the compiler/toolchain assumptions get in the way.