Package & container registries
Gitea and Forgejo still support the broadest set of package ecosystems out of the box — KHUB covers the seven most commonly used, end to end.
One place worth being candid: Gitea and Forgejo still support the broadest set of package ecosystems out of the box (15+ formats each, including several — Debian, Alpine, Conan, Helm, Vagrant — KHUB doesn't attempt). KHUB now covers seven of the most commonly used ones end to end: npm, OCI/Docker, PyPI, Cargo, Maven, NuGet, and Composer.
| Feature | KHUB | GitHub Packages | GitLab Registry | Gitea Packages | Forgejo Packages |
|---|---|---|---|---|---|
| npm-compatible registry | |||||
| OCI / Docker container registry | ✓ full Distribution Spec | ✓ (GHCR) | |||
| PyPI-compatible registry (pip/twine) | ✓ full PEP 503 simple index | — not supported | |||
| Cargo registry (crates.io sparse protocol) | — not supported | Limitedvia generic packages | |||
| Maven registry (mvn/Gradle) | ✓ standard /maven2/ layout | ||||
| NuGet registry (dotnet/nuget) | ✓ V3 flat-container + push | ||||
| Composer registry (PHP) | ✓ reads + a KHUB publish endpoint | — not supported | |||
| Other ecosystems (Debian, Alpine, Conan, Helm, Go, RubyGems…) | — not yet | Limiteda few more | Limitedbroader still | ✓ broadest | ✓ broadest |
| Storage quota | none — your disk | Limited500MB–2GB free, then billed | Limited10GB free namespace | none (self-hosted) | none (self-hosted) |
| Automatic retention / cleanup policies | Limitedtiered by plan | Limitedbasic rules | Limitedbasic rules |
KHUB's PyPI, Cargo, and Composer registries each keep exactly one distribution file per version (a real, disclosed limitation — a compiled package publishing multiple per-platform wheels/binaries for the same version isn't supported). Maven is the exception: its layout naturally has multiple files per version (a .jar plus its .pom, sometimes -sources/-javadoc jars too) and KHUB's Maven registry supports that fully. NuGet's restore path covers the flat-container protocol (works for anything with a pinned version, which covers normal CI/CD restore); full search/registrations metadata for IDE-side "browse available versions" isn't implemented yet. See Package & container registries for the full setup guide.
