Skip to content
Tech News
← Back to articles

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

read original more articles
Why This Matters

Cruller represents a streamlined, production-focused port of Bun to Zig 0.16, emphasizing minimalism and portability for running pre-built JavaScript servers. Its reduced size and maintained performance parity highlight advancements in optimizing runtime environments for efficiency and deployment simplicity. This development signals a move toward leaner, more adaptable JavaScript runtimes in the industry, benefiting both developers and end-users.

Key Takeaways

Cruller: a production-focused Bun runtime ported to Zig 0.16

Cruller is a fork of the last Zig-based Bun release, reduced to the parts needed to run already-built production JavaScript servers and ported to vanilla Zig 0.16.

Repository: GitHub - solenopsys/cruller: fork of Bun · GitHub

The project keeps JavaScriptCore, Bun.serve , HTTP/1-3, WebSockets, fetch , streams, Blob , Request / Response , static serving, and the module resolver for pre-built JavaScript. It removes the package manager, bundler/transpiler, shell, test runner, most CLI dispatch, N-API, SQL clients, archive support, and other development-oriented subsystems.

The interesting part of the port was 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 instead of loading generated JS from the build directory at runtime.

The main design decision is to treat this as a runtime, not a general-purpose Bun replacement. A minimal launcher loads a pre-built entrypoint; features that require package installation, bundling, TypeScript transformation, or bun test are intentionally outside the scope.

Current measurements on Linux x64, compared with the official Bun 1.3.14 binary:

Cruller ReleaseFast stripped runtime: 73.0 MiB

stripped runtime: 73.0 MiB Official Bun runtime: 88.5 MiB

Size reduction: about 18%

... continue reading