<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt" -->

---
title: Cruller: Bun's Zig Runtime, Continued on Zig 0.16
description: Cruller is a fork of the last Zig-based Bun release, stripped down to production runtime essentials and ported to Zig 0.16. It retains JavaScriptCore,...
canonical: https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Cruller: Bun's Zig Runtime, Continued on Zig 0.16 | daily.dev
og:description: Cruller is a fork of the last Zig-based Bun release, stripped down to production runtime essentials and ported to Zig 0.16. It retains JavaScriptCore,...
og:url: https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt
og:image: https://api.daily.dev/og/posts/8jrqpodvt.png
og:image:alt: Cruller: Bun's Zig Runtime, Continued on Zig 0.16
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.

# Cruller: Bun's Zig Runtime, Continued on Zig 0.16

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

## Summary

Cruller is a fork of the last Zig-based Bun release, stripped down to production runtime essentials and ported to Zig 0.16. It retains JavaScriptCore, Bun.serve, HTTP/1-3, WebSockets, fetch, streams, and the module resolver for pre-built JavaScript, while removing the package manager, bundler, transpiler, test runner, and other dev-oriented subsystems. The port involved decoupling from Bun's patched Zig build integration, adding compatibility shims for Zig 0.15→0.16 API changes, and embedding generated code for portable release builds. On Linux x64, the stripped runtime is 73 MiB vs Bun's 88.5 MiB (~18% smaller), with performance parity on a V8 Crypto benchmark. Currently supports Zig 0.16.0 on Linux x64, with CJS/ESM entrypoints, Node path tests, and HTTP smoke tests passing.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ziggit.dev/t/cruller-buns-zig-runtime-continued-on-zig-0-16/16734>

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 160 comments across hackernews (as of 2026-07-27).

**TL;DR:** The community is skeptical about Cruller's practical value—questioning why you'd run a different runtime in production than development—but finds the goal of an embeddable Zig JS runtime interesting. Much of the thread devolves into debates about git history, Zig's relevance post-Bun, and Bun's overall quality.

**Sentiment:** 25% positive · 45% mixed · 30% skeptical

**The case for**

- Having a minimal, embeddable JS runtime for the Zig ecosystem is a genuinely useful niche.
- Compiling to a single binary for production is seen as a killer feature by some.
- Reusing the existing Zig-based Bun codebase rather than discarding years of work is pragmatic.

**The pushback**

- Running a different runtime in production than in development significantly increases the risk of prod-only bugs.
- Pruning the entire git history loses commit authorship, licensing context, and the ability to use git blame/bisect.
- The project's scope is so stripped-down that it's unclear who the target audience is beyond a very narrow Zig use case.
- Several commenters note the README and author comments appear LLM-generated, raising questions about project quality.
- Bun itself is characterized by multiple commenters as a low-quality, over-hyped codebase to begin with.

**By community**

- hackernews (mixed): Commenters appreciate the narrow embeddable-runtime goal but are broadly skeptical about the dev/prod runtime mismatch, the erased git history, and whether the underlying Bun codebase is worth forking at all.

**Hottest debate:** Whether erasing the entire git history was acceptable, with strong disagreement between those who see history as essential for debugging and those who consider it irrelevant for a completely new project direction.

**Open questions**

- How will behavior differences between the full Bun development runtime and the stripped Cruller production runtime be caught before they cause outages?
- Does stripping the git history create licensing or copyright attribution problems given the many original contributors?
- Is the Zig-based Bun codebase (reportedly full of bad Zig practices) a sound foundation for a new project?

**Highlights**

> > My idea is to strip the system down as much as possible and leave only what is required for production. > Development would be done using the full Bun runtime, while production would use its lightweight fork, Cruller. I do not have the resources of the Oven team to develop and maintain a massive general-purpose runtime, so I want to focus on specific production requirements. I don't know about others, but I don't think I would deviate my development runtime from my production runtime so significantly. The chance for behavior that only rears its head in production is too high for my liking.
> — [dbalatero on hackernews](https://news.ycombinator.com/item?id=49022053)

> > Cruller is not intended to replace Bun for development. It is a minimal, specialized runtime for executing production code. > In any case, I do not want to throw away such a large codebase that has taken several years to build. It makes more sense to turn it into a convenient embeddable library that can be used throughout the Zig ecosystem. This seems pretty sensible to me. It's nice if the Zig ecosystem has an embeddable JS runtime.
> — [ForHackernews on hackernews](https://news.ycombinator.com/item?id=49018947)

> I would ignore it if I spotted it once. This is the third time, though, so I probably should point it out: 5 years is a very short time in terms of personal experience and development. While the whole industry moves very fast, it does so thanks to slow, grinding effort parallelized over hundreds of thousands of individuals. For an organization, 5 years is an era. For individuals, it's just 3-6 projects (+/- a few, depending on the context you work in). TL;DR: "never have encountered in 5 years" is a meaningless data point. My professional career can legally drink beer since a few years back, yet I'm still regularly hitting "first times" on various things in my day job; I'm also frequently mind-blown reading about others' experiences in domains I never touched. Don't make those "5 years" into a badge to hide behind; use it as a springboard to reach higher.
> — [klibertp on hackernews](https://news.ycombinator.com/item?id=49021589)

> One thing to point out is all the author's comments seem LLM generated and so does the README and the latest commit to the branch (large explanation in a comment and then change)..
> — [theawesomekhan on hackernews](https://news.ycombinator.com/item?id=49020343)

> I'm just going to answer this one candidly. Yes, you are doing something wrong. Immediately: the commit history is useful to understand the context in which a bug was introduced, because it's the best context to understand the _reason_ the mistake was maybe, which is a really good way to prevent regressions. But more generally: when an entire industry has arrived at an accepted practice, you the junior developer (sorry, 5 years is _nothing_: you need to be told this too) have a chance to pick up on it. Have you heard "have you played guitar for 20 years, or have you played guitar 20 times for a year?" Time only helps with accumulating wisdom if you let it.
> — [cscheid on hackernews](https://news.ycombinator.com/item?id=49021789)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49017344) · 112 points · 160 comments

## Community discussion

Top comments from developers on daily.dev.

**@allinonetools** · 1 upvotes

> Nice work. Keeping the runtime focused while staying current with Zig 0.16 is a smart trade-off—I’ve found smaller, purpose-built runtimes are much easier to ship and maintain.

## Similar posts on daily.dev

- [Bun rewrite in rust](https://daily.dev/posts/bun-rewrite-in-rust-zff65rp1d) · Medium · 2 upvotes · 1 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#javascript](https://daily.dev/tags/javascript), [#zig](https://daily.dev/tags/zig), [#bun](https://daily.dev/tags/bun)

[View this post on daily.dev](https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt)

```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":"Cruller: Bun's Zig Runtime, Continued on Zig 0.16","url":"https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt"},"datePublished":"2026-07-23T09:08:18.486Z","dateModified":"2026-07-27T13:47:51.748Z","description":"Cruller is a fork of the last Zig-based Bun release, stripped down to production runtime essentials and ported to Zig 0.16. It retains JavaScriptCore,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0bf5e1b36c800d249ebeb0cb1527d3e4?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0bf5e1b36c800d249ebeb0cb1527d3e4?_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":1,"discussionUrl":"https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":12},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"webdev,javascript,zig,bun","timeRequired":"PT2M"}
{"@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":"Cruller: Bun's Zig Runtime, Continued on Zig 0.16"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/cruller-bun-s-zig-runtime-continued-on-zig-0-16-8jrqpodvt","comment":[{"@type":"Comment","text":"Nice work. Keeping the runtime focused while staying current with Zig 0.16 is a smart trade-off—I’ve found smaller, purpose-built runtimes are much easier to ship and maintain.","datePublished":"2026-07-25T02:44:04.661Z","url":"https://daily.dev/posts/8jrqpodvt#c-420VX83tf","author":{"@type":"Person","name":"AllInOneTools","url":"https://daily.dev/allinonetools","image":"https://media.daily.dev/image/upload/s--4ZT8QlF0--/f_auto/v1769790028/avatars/avatar_igzBsWloJeaegzm9bQltZ?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}]}
```

