Registry API reference implementation

Is there a reference implementation for the registry API RFC? and/or are there plans to create one?

I appreciate that it's not super-complex but this would be really useful in getting people up and running.

I may even opt to create one, but would rather not duplicate effort if there is a first (or reliable third) party implementation in progress.

Artifactory and AWS CodeArtifact have implemented it, and I think someone did a POC in Swift.

I would like to know what became of the partnership between Apple and GitHub to create a public registry.

1 Like

I've created a very basic implementation using NodeJS and Express here:

This is enough to serve my needs for a private registry and is hopefully useful to others in getting started with package registries.

It's missing a few things that I'll add in due course; specifically, it only supports read endpoints, and so manifests have to be created manually rather than via the PUT endpoint.

Artifactory and AWS CodeArtifact have implemented it, and I think someone did a POC in Swift.

I used the AWS docs get an understanding of how the packages are consumed, which was useful. I haven't come across a Swift implementation but please do shoot a link if you know of its whereabouts.

I would like to know what became of the partnership between Apple and GitHub to create a public registry.

I wasn't aware of this, hopefully we hear some news in the near future.

If you read through the original proposal thread, there were a few factors there and more over time.

  • The community was uncomfortable with GitHub being the de facto default registry, so it was likely GitHub found such an investment less valuable.
  • Apple seemed to repeatedly move the goalposts for acceptance, including things like solving the package identity problem. This obviously frustrated Mattt and, likely, GitHub itself.
  • Apple itself seems unwilling to step up and provide the authoritative root registry, stalling any usage by the community.
  • Apple still doesn't support registries in Xcode, making them far less valuable to anyone looking to provide such a service.

(And, IMO, without a centralized package identity and ownership system, registries are doomed to failure anyway. At best they'd be relegated to private instances used for caching and to operate within corporate limitations.)

1 Like