PURL
PURL is a specification for encoding packages for various ecosystems (NPM, NuGet, Debian, etc) into a unified URL.
Some examples (from their website):
- pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie
- pkg:docker/cassandra@sha256:244fd47e07d1004f0aed9c
- pkg:gem/jruby-launcher@1.1.2?platform=java
- pkg:golang/google.golang.org/genproto#googleapis/api/annotations
- pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=repo.spring.io%2Frelease&packaging=sources
- pkg:npm/%40angular/animation@12.3.1
- pkg:nuget/EnterpriseLibrary.Common@6.0.1304
- pkg:pypi/django@1.11.1
- pkg:rpm/fedora/curl@7.50.3-1.fc25?arch=i386&distro=fedora-25
- pkg:rpm/opensuse/curl@7.56.1-1.1?arch=i386&distro=opensuse-tumbleweed
Posts
- 2026-01-04 Other Smarter People - I found another specification for representing identifiers that is better supported, has more attention, and covers most of the basics I need to.