HeadlinesBriefing favicon HeadlinesBriefing.com

Cruller: Bun Runtime Ported to Zig 0.16

Hacker News •
×

Cruller is a fork of the last Zig‑based Bun release, trimmed to run pre‑built JavaScript servers and ported to vanilla Zig 0.16. It lives in a GitHub repository under solenopsys/cruller and keeps core features such as JavaScript Core, Bun.serve, HTTP/1‑3, Web Sockets, fetch, streams, Blob, Request/Response, static serving, and the module resolver.

The project removes development‑oriented subsystems: the package manager, bundler/transpiler, shell, test runner, N‑API, SQL clients, archive support, and most CLI dispatch. The design choice is to treat it as a runtime, not a full Bun replacement. A minimal launcher loads a pre‑built entrypoint; anything that requires package installation, bundling, TypeScript transformation, or bun test is intentionally outside scope.

Porting involved separating the runtime from Bun’s old patched Zig build integration. Cruller now has a vanilla Zig 0.16 build graph, compatibility shims for APIs changed since Zig 0.15, and a generated‑code embedding module so release builds remain portable. It supports Linux x64 and Zig 0.16.0.

Performance measurements on Linux x64 show a runtime size of 73.0 Mi B versus Bun 1.3.14’s 88.5 Mi B, an ~18% reduction. V8 crypto benchmarks are parity‑level, with Cruller’s median about 2% higher. Current work validates semantic checks, release builds, CJS/ESM entrypoints, Node path tests, and an HTTP serve() smoke test.