← All posts The Age of Intergalactic Trade Has Begun โ€” the Hover Package Manager is Here

The Age of Intergalactic Trade Has Begun โ€” the Hover Package Manager is Here

Eray Mercan

packageshpmtooling

Hover now has a package manager.

hpm ships with the compiler โ€” the same binary, reachable as hover hpm or the hpm symlink beside it. Four ideas define it:

Content-addressed distribution

Packages are distributed via their content hash, not uploaded to any central server. The bytes stay wherever you already put them โ€” GitHub, GitLab, or Codeberg โ€” and hpm locks to that exact content. No registry, no accounts, no upload step.

Three words, kept apart

Most confusion about package managers comes from one word doing three jobs. Hover keeps them separate: a directory is the unit of naming, a package is the unit of distribution, and an index is a list mapping names to packages. Hover-lang.org hosts the official index and stores every officially approved package, but an index isn't a port only we can operate. Anyone can run their own and open their own marketplace on top of the same mechanism.

Packages need only be a directory

A package is a directory containing .hvr files. There is no build step โ€” the archive URL your git host already generates for every tag is a complete, working package.

No redownloads for every project

hpm keeps a shared store on your machine, so a library is downloaded once, not once per project. Version control is managed through these shared libraries: hover can keep multiple versions of the same library side by side and retrieve a previously downloaded old version without hitting the network again.

The full reference

Everything else โ€” commands, manifest and lockfile formats, import rules, and publishing โ€” is in the package guide. If you publish something, say so on the repository โ€” the shipping lanes are empty and the freight is yours to name.

All posts ยท Subscribe via RSS.