Skip to main content

nuget.org

nuget.org, also known as the "Gallery", is the de facto feed for public .NET packages. Publish the packages of your open-source projects there.

The Gallery is battle-tested and proven to scale well. You can host your own instance by following the Gallery's wiki. Its code is spread across several repositories:

As you can tell, nuget.org is a complex system. Hosting your own instance of the Gallery is not for the faint of heart.

PaGetto vs nuget.org​

PaGetto mainly competes with nuget.org's v3 implementation (NuGet/NuGet.Services.Metadata).

PaGettonuget.org
AudiencePrivate and internal packagesPublic, open-source packages
Hosting your ownA single service: Docker, Kubernetes (Helm), IIS, any ASP.NET Core 10 hostMany services and jobs, tied to Windows and Azure
v3 implementationDynamic: each request is answered by querying a databaseStatic: JSON files generated by jobs (feed2catalog, catalog2registration, catalog2dnx, catalog2lucene), stored in Azure Blob Storage and served through a CDN
PlatformsCross-platform (Linux, Windows, macOS; amd64 and arm64 images)Windows
Read scalingLimited by the database and the number of replicasScales reads to near infinity through the CDN
Write latencyA pushed package is available right awayA pushed package goes through validation and jobs before it is listed
Package validationBasic checks on pushSigning, malware scanning, reserved ID prefixes and more
Access controlPrivate feeds with per-feed pull, push and delete permissionsPublic reads, owner-based pushes
Several feedsYesNo
MirroringCan mirror nuget.org into a local feedNot applicable
Adding featuresEasy: one codebase, one processHard: changes span several services

Which one to pick​

  • Publish open-source packages to nuget.org.
  • Use PaGetto for internal packages, and as a mirror of nuget.org so restores stay fast and keep working when nuget.org is unreachable. See Import nuget.org packages.