needhelp
← Back to blog

Bun, 96만 줄의 Zig를 Rust로 6일 만에 재작성 — AI가 헤비 리프팅

by needhelp
bun
rust
zig
ai-codegen
javascript-runtime

Bun Zig to Rust 재작성

2026년 5월 14일, Bun 창시자 Jarred Sumner가 PR #30412를 병합했다 — Bun의 코어를 Zig에서 Rust로 재작성하는 6755 커밋의 방대한 브랜치다. claude/phase-a-p... 브랜치는 거의 전적으로 Anthropic의 Claude AI 에이전트가 생성했다.

숫자는 엄청나다:

지표
커밋 6,755
번역된 코드 ~96만 줄 Zig → Rust
기간 6일
테스트 호환성 99.8% (Linux x64 glibc)
소스 브랜치 claude/phase-a-p...

실제로 일어난 일

Bun은 원래 Andrew Kelley가 설계한 시스템 프로그래밍 언어 Zig로 작성됐다. Zig는 Bun에 속도를 주었지만 기여자 풀도 제한했다. Rust는 대조적으로 거대한 생태계, 성숙한 도구, 깊은 LLVM 통합을 가진다.

Anthropic의 Bun 인수 후 팀은 Claude 에이전트를 사용해 전체 Zig 코드베이스를 Rust로 번역하는 실험을 했다. 실험은 고메모리 노드 클러스터에서 6일간 실행됐고, 6755 커밋을 생성했다.

결과: Linux x64 glibc에서 Bun의 기존 테스트 스위트의 99.8%를 통과하는 Rust 코드베이스.

AI 기반 대규모 마이그레이션

AI 기반 코드베이스 마이그레이션의 첫 대규모 시연 중 하나다. 접근법:

  1. 소스 분석: Claude가 Zig 코드 패턴, 메모리 관리 관용구, 공개 API 표면을 분석
  2. 점진적 번역: 각 Zig 파일을 점진적으로 Rust로 번역, 속성 기반 테스트로 동작 보존
  3. 병렬 실행: 여러 Claude 에이전트 인스턴스가 코드베이스 전반에서 병렬 작업
  4. CI 검증: 번역된 각 모듈을 Bun의 기존 테스트 스위트로 검증

논란

병합은 개발자 커뮤니티 전반에서 격렬한 논쟁을 촉발했다:

Zig 커뮤니티

Bun은 Zig의 플래그십 프로젝트였다 — 언어의 가장 크고 가장 가시적인 프로덕션 배포. Zig Software Foundation 멤버 Loris Cro는 이전에 LLM의 Zig 기여를 “대부분 부정적”이라고 묘사했다. 마이그레이션은 일부에게 Bun을 가능하게 한 언어에 대한 배신으로 간주된다.

“Vibe 포팅” 비판

Lobste.rs에서 개발자들은 “vibe 포팅”이라는 용어를 만들었다 — 통계적으로는 작동하지만 깊은 이해가 부족한 AI 기반 번역. 비판자들은 AI가 생성한 Rust 코드가 피상적인 패턴을 따르고 관용적인 Rust 방식을 놓친다고 주장한다.

Jarred의 신중한 입장

이전 HN 댓글에서 Sumner는 강조했다: “재작성에 전념하지 않았다. 이 코드가 모두 완전히 폐기될 가능성이 매우 높다.” 하지만 main으로의 병합은 실험이 기대를 초과했거나 전략이 바뀌었음을 시사한다.

의미

Bun 사용자에게

단기: 아무것도 변하지 않는다. Rust 포트는 API 호환성을 유지한다. 장기: 더 큰 기여자 풀, Rust 생태계(crates like tokio, hyper, reqwest)와의 더 나은 통합, 잠재적으로 더 빠른 반복.

Zig에게

Zig는 플래그십 프로젝트를 잃는다. 하지만 언어는 계속 진화한다 — 그리고 Bun 포트는 Rust 기반 런타임에서 작업하려는 개발자를 끌어들일 수 있다.

AI 코드 마이그레이션

이는 분수령이다. 96만 줄의 시스템 수준 런타임을 AI가 6일 만에 포팅할 수 있다면, 소프트웨어 재작성의 경제학이 근본적으로 변한다. 유지보수, 레거시 마이그레이션, 언어 포팅 — 역사적으로 비싸고 위험했던 — 이 다룰 수 있게 된다.

References

Share this page