Bun의 창시자 Jarred가 Claude Fable 5를 사용해 11일 만에 Zig에서 Rust로 Bun을 재작성함 (API 비용 약 16만 5천 달러 소요). 수작업이었다면 코드베이스를 완전히 파악한 엔지니어 3명이 1년은 걸렸을 작업이라고 함
Jarred, creator of Bun rewrote it from Zig to Rust in 11 days using Claude Fable 5 which costed ~$165k of Fable usage, at API prices. They said by hand, this would've taken 3 engineers with full context on the codebase about a year with no other work possible
핵심 요약
Bun 창시자가 Claude Fable 5를 활용해 11일 만에 대규모 코드베이스를 Rust로 재작성하며 LLM의 개발 생산성 혁신을 증명했습니다.
- 코드 재작성 — 53만 줄 이상의 Zig 코드를 11일 만에 Rust로 성공적으로 포팅함
- LLM 활용 — Claude Fable 5 모델과 50개의 동적 워크플로우를 통해 단독으로 작업 수행
- 비용 및 효율 — 약 16만 5천 달러의 API 비용이 들었으나 수년 걸릴 작업을 단기간에 완료함
- 검증 방식 — 구현자와 별도의 Claude 인스턴스를 활용한 적대적 검토(Adversarial review)로 버그 탐색
전체 기사: https://bun.com/blog/bun-in-rust
Bun은 이제 Anthropic 소유다. Jarred은 Claude Fable 5(사전 출시 버전)를 써서 11일 만에 혼자 힘으로 Bun을 Zig에서 Rust로 싹 다 갈아엎었다. Claude Code v2.1.181(6월 17일 출시)부터는 이미 Rust로 포팅된 Bun을 쓰고 있다.
LLM 덕분에 엄청난 노력이 들어가서 세상 빛을 못 볼 뻔한 일들이 가능해진다는 게 진짜 미친 수준이다.
기사 요약(TL'DR)
Bun은 Zig 코드만 535,496줄이다. 이걸 사람이 직접 Rust로 다시 짠다면 코드베이스를 완벽하게 꿰고 있는 엔지니어 3명이 1년은 매달려야 했을 거다. 그동안 Node.js 호환성 개선이나 버그 수정, 보안 패치, 신기능 추가는 꿈도 못 꿨겠지. 절대 안 했을 거다. 현실적인 대안은 그냥 아무것도 안 하고 이 글 맨 위에 있는 버그들이나 평생 고치면서 사는 것뿐이었다.
코딩 시작하기 전에 Claude랑 3시간 정도 떠들면서 Zig 코드 패턴을 Rust로 어떻게 옮길지 머리를 맞댔다. Claude가 이 논의 내용을 PORTING.md로 정리해 줬는데, 이게 Hacker News에도 올라갔다.
Claude Code에서 50개 정도의 동적 워크플로우를 11일 동안 쉼 없이 돌려서 Bun을 Rust로 재작성했다. Mythos급 모델인 Claude Fable 5 사전 출시 버전을 썼다. Claude Code의 동적 워크플로우 덕분에 64개의 Claude가 11일 내내 돌아갔다(이거 안 썼으면 직접 하네스 짜느라 고생했을 거다).
11일 내내(그리고 그 이후에도) 나는 워크플로우를 모니터링했다. 출력물을 일일이 읽으면서 문제나 버그가 없는지 확인하고, Claude한테 루프를 수정하라고 프롬프트를 날렸다.
추가된 코드만 100만 줄이 넘는 PR을 어떻게 리뷰할까? LLM이 짠 코드를 책임지고 머지할 만큼의 확신을 어떻게 가질 수 있을까?
답변
적대적 리뷰(Adversarial review)를 쓴다. (별도의 컨텍스트 창에서) Claude한테 이 변경 사항이 왜 버그를 만드는지, 왜 작동하지 않는지 이유를 쥐어짜 내라고 시키는 거다.
컨텍스트 창 분리
보통 사람이 리뷰할 때는 코드를 짠 사람이랑 리뷰하는 사람이 다르다. 코드를 짠 사람은 어떻게든 머지하고 싶어 하니까, 준비도 안 됐는데 출시하려고 눈이 멀기 마련이다.
Claude도 똑같다. 코드를 짠 Claude는 자기 코드가 통과되길 바라고, 리뷰하는 Claude는 코드에서 결함을 찾아내고 싶어 한다.
구현자 1명에 적대적 리뷰어 2명 이상을 붙인다. 리뷰어의 유일한 임무는 버그를 찾고 코드가 안 돌아가는 이유를 대는 거다. 구현자는 리뷰 안 한다. 리뷰어는 구현 안 한다.
결과
Bun v1.3.14가 Zig로 작성된 마지막 버전이다. Bun v1.4.0부터는 Rust로 작성된 첫 버전이 된다. 지금 canary 버전에서 써볼 수 있다.
지금까지 Bun v1.4.0은 v1.3.14에서 재현되던 버그 128개를 고쳤다. 메모리 누수부터 크래시, 도움말 텍스트 색상 오류까지 다양하다.
메모리 사용량도 줄었다. 측정 가능한 모든 메모리 누수를 다 잡았다.

