Package Registries
Choosing where to publish is part of distribution. Most products use more than one channel.
Language / ecosystem registries
| Ecosystem | Common registry |
|---|---|
JavaScript/TypeScript |
npm registry (prefer |
Python |
PyPI |
Rust |
crates.io |
.NET |
NuGet |
Java/Kotlin |
Maven Central |
Go |
Module proxy / pkg.go.dev (modules from VCS) |
D |
DUB registry |
Flutter/Dart |
pub.dev |
Use registries for libraries and often for CLI tools that install as packages.
OS and desktop package managers
-
Windows: winget (see Winget registration), optional Chocolatey/Scoop, Microsoft Store
-
macOS: Homebrew formulae/casks, Mac App Store
-
Linux: distro packages, Flathub, AppImage, Snap (policy-dependent)
Containers and services
-
GHCR, Docker Hub, or cloud ECR/GCR/ACR for service images
-
Prefer digest-pinned deploys in production
GitHub / GitLab Releases
Always useful as the canonical artifact shelf (installers, checksums, SBOMs) even when a registry is primary. Updaters and winget manifests often point at Release assets.