<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh" -->

---
title: Wheels, Bottles and Images | daily.dev
description: A deep technical comparison of the three major self-service binary distribution systems: Python wheels, Homebrew bottles, and OCI container images. All three...
canonical: https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Wheels, Bottles and Images | daily.dev
og:description: A deep technical comparison of the three major self-service binary distribution systems: Python wheels, Homebrew bottles, and OCI container images. All three...
og:url: https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh
og:image: https://api.daily.dev/og/posts/omm1hpMuH.png
og:image:alt: Wheels, Bottles and Images
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Wheels, Bottles and Images

**[Andrew Nesbitt](https://daily.dev/sources/nesbitt-io)** · 7 min read · 0 upvotes · 0 comments

## Summary

A deep technical comparison of the three major self-service binary distribution systems: Python wheels, Homebrew bottles, and OCI container images. All three share core design principles — content-addressed immutable blobs, client-side platform selection, separate index and artifact storage, and sigstore-based attestations. Key differences include dependency resolution models, host requirements, and fallback behavior when no matching artifact exists. Homebrew already stores bottles in OCI registries (ghcr.io) using custom annotations for dimensions OCI doesn't natively support. The post also covers convergence trends: ORAS generalizing OCI for arbitrary artifacts, Helm charts moving to OCI registries, and the open problem of GPU/SIMD dimensions not captured by any current tag grammar — addressed by Python's WheelNext/PEP 817 initiative but still unresolved cross-ecosystem.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://nesbitt.io/2026/07/30/wheels-bottles-images.html>

## Similar posts on daily.dev

- [How Base Images Impact Software Supply Chain Security in Kubernetes](https://daily.dev/posts/how-base-images-impact-software-supply-chain-security-in-kubernetes-1gjw8gued) · Container Journal · 5 upvotes · 0 comments
- [The weight of AI models: Why infrastructure always arrives slowly](https://daily.dev/posts/the-weight-of-ai-models-why-infrastructure-always-arrives-slowly-pu6ppdcjy) · CNCF · 2 upvotes · 0 comments
- [Building hermetic notebook images for Open Data Hub and Red Hat OpenShift AI](https://daily.dev/posts/building-hermetic-notebook-images-for-open-data-hub-and-red-hat-openshift-ai-dckuh4a5v) · Red Hat Developer · 0 upvotes · 0 comments
- [Brewlet — Java on Kubernetes, for real this time.](https://daily.dev/posts/brewlet-java-on-kubernetes-for-real-this-time--9yqabywlm) · Awesome Java Newsletter · 1 upvotes · 0 comments
- [Wheel Next \+ Packaging PEPs](https://daily.dev/posts/wheel-next-packaging-peps-z6njzzzu4) · Planet Python · 0 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python)

[View this post on daily.dev](https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Wheels, Bottles and Images","url":"https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh"},"datePublished":"2026-07-30T10:10:24.372Z","dateModified":"2026-07-30T10:10:44.422Z","description":"A deep technical comparison of the three major self-service binary distribution systems: Python wheels, Homebrew bottles, and OCI container images. All three...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/416572ca2b211e96c4c4b92af22d1ec7?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/416572ca2b211e96c4c4b92af22d1ec7?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Andrew Nesbitt","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Andrew Nesbitt","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/nesbitt-io"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/wheels-bottles-and-images-omm1hpmuh","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Andrew Nesbitt","item":"https://daily.dev/sources/nesbitt-io"},{"@type":"ListItem","position":3,"name":"Wheels, Bottles and Images"}]}
```

