Docker is back, and it’s great for WebAssembly!
I’m super-excited that Docker now supports storing any artifact in Docker Hub. This means you can now host artifacts such as Helm charts and WebAssembly modules on Docker Hub.
The small print: This currently works by packaging artifacts inside of OCI images.
Q: Is this a hack?
The OCI working groups are in the process of defining an OCI Artifact Specification but it’s not fully baked. So… while they work on that, the easiest way for *Docker Hub* to support a wide array of other artifacts is to support packaging them inside OCI images.
Q: Is this a short-term fix?
There’s a bit of a debate in the industry over the best way for registries to handle new artifacts such as Helm charts and Wasm modules, but I think it’s fair to say the following are the three most likely options.
A. Create new registries that natively support Wasm modules and other artifacts
B. Existing registries (such as Docker Hub) evolve and add native support for Wasm modules and other artifacts
C. Existing registries (such as Docker Hub) provide basic support for Wasm modules and other artifacts by packaging them inside OCI images
Option A will bring extensive new capabilities but at the expense of new registries (YASS, yet another storage solution). Option B also provides extensive capabilities but requires major re-work on existing registries. Option C (this is what Docker Hub is currently doing) requires the least amount of effort but might be “good enough”.
I ran a quick poll recently asking people in the community which of the three options they thought would be the future, and as the image shows, a significant majority thinks existing registries will evolve and add first-class support for Wasm and other OCI artifacts.
Q: Which solution will win?
A: Your guess is as good as mine, but Docker has stated that “…full Docker Hub support for OCI Reference Types and the accompanying Referrers API is on the horizon“. That suggests to me that Docker Hub is looking at option B to expand its capabilities in a big way and support WebAssembly modules, Helm packages, and more, as first-class objects.
Whatever happens, the fact that Docker Hub now supports OCI artifacts (albeit packaged inside OCI images) is a good thing and shows their commitment to WebAssembly and the WebAssembly ecosystem!