Cruller: Bun's Zig Runtime, Continued on Zig 0.16
4 hours ago
- Cruller is a production-focused fork of Bun, ported to Zig 0.16, designed to run pre-built JavaScript servers.
- It retains core runtime features like JavaScriptCore, Bun.serve, HTTP/1-3, WebSockets, fetch, streams, Blob, Request/Response, and static serving.
- Removed subsystems include the package manager, bundler, transpiler, shell, test runner, N-API, SQL clients, and archive support.
- The port involved separating the runtime from Bun's patched Zig build, using vanilla Zig 0.16 with compatibility shims and generated-code embedding.
- Cruller is intentionally not a full Bun replacement; it is a minimal runtime for running pre-built entrypoints.
- Current binary size is 73.0 MiB vs Bun's 88.5 MiB (18% reduction), with near performance parity in V8 Crypto benchmark.
- The project passes basic smoke tests including CJS/ESM entrypoints, Node path tests, and HTTP/serve endpoints.
- Only Linux x64 is currently supported, and development is ongoing.