<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz" -->

---
title: GitHub - pullrun/pullrun: Next-gen container runtime...
description: Pullrun is an open-source container runtime written in Rust and Go that runs OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs — all...
canonical: https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GitHub - pullrun/pullrun: Next-gen container runtime with zero-copy DAG storage and P2P image sync. Run OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs. | daily.dev
og:description: Pullrun is an open-source container runtime written in Rust and Go that runs OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs — all...
og:url: https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz
og:image: https://api.daily.dev/og/posts/QPJ3WhboZ.png
og:image:alt: GitHub - pullrun/pullrun: Next-gen container runtime with zero-copy DAG storage and P2P image sync. Run OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs.
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.

# GitHub - pullrun/pullrun: Next-gen container runtime with zero-copy DAG storage and P2P image sync. Run OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs.

**[Hacker News](https://daily.dev/sources/hn)** · 16 min read · 2 upvotes · 0 comments

## Summary

Pullrun is an open-source container runtime written in Rust and Go that runs OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs — all from the same image, with no separate VM build step. It replaces overlayfs with a content-addressed DAG store using rkyv and mmap for zero-copy reads and deduplication. Key features include P2P image distribution (one registry pull per cluster, rest sync peer-to-peer), a ~20 MB combined binary, rootless-by-default operation, a Kubernetes CRI shim, Docker Compose compatibility, a native MCP server for AI agent integration, a policy engine (Cosign, SBOM, seccomp), AES-256-GCM encrypted secrets, and Prometheus metrics. Boot times are ~400 ms for containers, ~500 ms cold / ~200 ms warm for Firecracker VMs, and ~160 ms for Apple Silicon VMs.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/pullrun/pullrun>

## Questions this post answers

### How does pullrun's content-addressed DAG storage differ from Docker's overlayfs for container images?

Pullrun stores OCI layers as-is in a content-addressed DAG built on rkyv and mmap, verified by content hash, instead of using a filesystem overlay like Docker's overlayfs. This avoids overlayfs escape vulnerabilities such as CVE-2023-0386 and CVE-2023-32629, enables zero-copy mmap reads, deduplicates layers by hash, and keeps files byte-identical across every node, which also simplifies peer-to-peer image sync.

_Teams evaluating container storage security tradeoffs can follow runtime architecture deep dives on daily.dev._

### Can the same OCI image run as both a container and a Firecracker or Apple Silicon VM without rebuilding it?

Yes, pullrun runs the same OCI image as a Linux container via runc, a Firecracker microVM on Linux, or an Apple Silicon VM on macOS, with no separate VM image build step because the OCI manifest itself serves as the VM rootfs. Boot times are roughly 400ms for containers, 500ms cold (200ms warm pool) for Firecracker, and 160ms for Apple Virtualization.

_Developers comparing container versus VM isolation tradeoffs can track runtime tooling like this on daily.dev._

### How does pullrun let AI coding agents like Claude Code or Cursor control containers?

Pullrun ships a native Model Context Protocol (MCP) server exposing 15 runtime operations as MCP tools, including run, stop, exec, list, logs, build, and compose_up, plus resources like workload status and image lists. It works in stdio mode for local agents such as opencode and Claude Code, or SSE mode over HTTP for remote agents, letting an agent pull and run images through natural-language commands.

_Anyone wiring AI agents into container workflows can follow tools like this MCP-enabled runtime on daily.dev._

## Similar posts on daily.dev

- [We rebuilt the Linux microVM stack on Apple Silicon](https://daily.dev/posts/we-rebuilt-the-linux-microvm-stack-on-apple-silicon-2hmxgetth) · Encore · 21 upvotes · 2 comments
- [How Firecracker microVMs work under the hood to sandbox untrusted code and AI agents](https://daily.dev/posts/how-firecracker-microvms-work-under-the-hood-to-sandbox-untrusted-code-and-ai-agents-8jbiginnr) · Sylvain Kerkour · 1 upvotes · 0 comments
- [Your Container Is Not a Sandbox](https://daily.dev/posts/your-container-is-not-a-sandbox-dkskd3kl8) · Lobsters · 26 upvotes · 1 comments
- [Edera Adds Rust Library to Run Container Images on Hardened Runtime Faster](https://daily.dev/posts/edera-adds-rust-library-to-run-container-images-on-hardened-runtime-faster-9nortx9om) · Cloud Native Now · 1 upvotes · 0 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#golang](https://daily.dev/tags/golang), [#rust](https://daily.dev/tags/rust), [#containers](https://daily.dev/tags/containers)

[View this post on daily.dev](https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz)

```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":"GitHub - pullrun/pullrun: Next-gen container runtime with zero-copy DAG storage and P2P image sync. Run OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs.","url":"https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz"},"datePublished":"2026-07-23T17:53:42.756Z","dateModified":"2026-09-13T19:16:54.718Z","description":"Pullrun is an open-source container runtime written in Rust and Go that runs OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs — all...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/52191c20a897673b311774efdc02698d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/52191c20a897673b311774efdc02698d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","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":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,golang,rust,containers","timeRequired":"PT16M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"GitHub - pullrun/pullrun: Next-gen container runtime with zero-copy DAG storage and P2P image sync. Run OCI images as Linux containers, Firecracker microVMs, or Apple Silicon VMs."}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/github---pullrun-pullrun-next-gen-container-runtime-with-zero-copy-dag-storage-and-p2p-image-sync--qpj3whboz#faq","mainEntity":[{"@type":"Question","name":"How does pullrun's content-addressed DAG storage differ from Docker's overlayfs for container images?","acceptedAnswer":{"@type":"Answer","text":"Pullrun stores OCI layers as-is in a content-addressed DAG built on rkyv and mmap, verified by content hash, instead of using a filesystem overlay like Docker's overlayfs. This avoids overlayfs escape vulnerabilities such as CVE-2023-0386 and CVE-2023-32629, enables zero-copy mmap reads, deduplicates layers by hash, and keeps files byte-identical across every node, which also simplifies peer-to-peer image sync. Teams evaluating container storage security tradeoffs can follow runtime architecture deep dives on daily.dev."}},{"@type":"Question","name":"Can the same OCI image run as both a container and a Firecracker or Apple Silicon VM without rebuilding it?","acceptedAnswer":{"@type":"Answer","text":"Yes, pullrun runs the same OCI image as a Linux container via runc, a Firecracker microVM on Linux, or an Apple Silicon VM on macOS, with no separate VM image build step because the OCI manifest itself serves as the VM rootfs. Boot times are roughly 400ms for containers, 500ms cold (200ms warm pool) for Firecracker, and 160ms for Apple Virtualization. Developers comparing container versus VM isolation tradeoffs can track runtime tooling like this on daily.dev."}},{"@type":"Question","name":"How does pullrun let AI coding agents like Claude Code or Cursor control containers?","acceptedAnswer":{"@type":"Answer","text":"Pullrun ships a native Model Context Protocol (MCP) server exposing 15 runtime operations as MCP tools, including run, stop, exec, list, logs, build, and compose_up, plus resources like workload status and image lists. It works in stdio mode for local agents such as opencode and Claude Code, or SSE mode over HTTP for remote agents, letting an agent pull and run images through natural-language commands. Anyone wiring AI agents into container workflows can follow tools like this MCP-enabled runtime on daily.dev."}}]}
```

