Cruller: Bun의 Zig 런타임을 Zig 0.16으로 포팅한 포크, 개발용 Bun과 분리

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

Cruller: Bun의 Zig 런타임을 Zig 0.16으로 포팅한 포크, 개발용 Bun과 분리

Cruller는 Bun의 마지막 Zig 기반 릴리스를 포크하여, 이미 빌드된 프로덕션 JavaScript 서버 실행에 필요한 핵심 기능만 남기고 Zig 0.16으로 포팅한 런타임입니다. JavaScriptCore, Bun.serve, HTTP/1-3, WebSockets, fetch, streams, Blob, Request/Response, 정적 파일 서빙, 모듈 리졸버를 유지하지만, 패키지 매니저, 번들러, 트랜스파일러, 셸, 테스트 러너 등 개발 지향 기능은 제거했습니다. 개발은 전체 Bun으로 하고 프로덕션은 Cruller로 실행하는 전략을 취하며, 바이너리 크기는 약 18% 줄었고 성능은 공식 Bun과 비슷합니다. 포팅 과정에서 Zig 0.16 호환성 문제를 해결하고, 빌드 시 생성된 코드를 임베딩하여 이식성을 확보했습니다.

개발은 전체 Bun 런타임으로 하고, 프로덕션은 가벼운 포크인 Cruller로 실행하는 것이 제 생각입니다.

이 날의 다른 글

2026-07-23