Packmule serves as an experimental implementation of a serverless registry for Unity Package Manager (UPM) packages.
Warning
Registry APIs, package transformations, workflows, and repository layouts may change without notice. It should not be used in production/serious projects.
The registry serves two primary purposes:
Develop and distribute first-party Unity packages directly through GitHub-powered infrastructure.
Consume packages published on NuGet.org and expose them in a format compatible with Unity Package Manager, making a large portion of the .NET ecosystem available to Unity developers.
Unity package distribution typically requires dedicated registry infrastructure, hosting, storage, and maintenance.
This project explores a different approach:
- ✅ No registry servers
- ✅ No databases
- ✅ No self-hosted package infrastructure
- ✅ GitHub-native workflows
- ✅ Cloudflare-powered edge delivery
- ✅ Automated package ingestion
- ✅ Compatible with Unity Package Manager
- ✅ Supports both native UPM and transformed NuGet packages
GitHub Actions
│
▼
NuGet.org
│
▼
GitHub Packages
│
▼
Cloudflare Proxy
│
▼
Unity Package Manager
- GitHub Actions discovers, imports, validates, or transforms packages.
- Source packages originate from NuGet.org or organization repositories.
- Package artifacts are published to GitHub Packages.
- A Cloudflare-powered proxy exposes a Unity-compatible registry endpoint.
- Unity Package Manager consumes packages through standard scoped registries.