Bun, Zig에서 Rust로 재작성 중... 테스트 호환율 99.8% 달성

자바스크립트 런타임 Bun이 기존 Zig 코어 부분을 Rust로 재작성하는 실험을 진행 중이며, 현재 99.8%의 테스트 호환율을 달성했다는 소식이 전해졌다. 이는 Bun의 안정성과 미래 개발 방향에 큰 영향을 미칠 전망이다.

diff --summary

  • Bun의 코어 부분이 기존 Zig에서 Rust로 재작성되는 실험이 진행 중이다.
  • Rust 재작성 버전은 기존 테스트 스위트의 99.8%를 통과하며 높은 호환성을 보인다.
  • Rust 도입으로 컴파일러가 타입의 라이프타임을 강제하고 디스트럭터를 사용할 수 있게 된다.
  • 이는 Bun의 안정성과 잠재적인 성능 향상에 기여할 것으로 기대된다.
  • 개발팀은 Rust로의 전환을 통해 코드 품질과 유지보수성을 개선할 계획이다.

자바스크립트 런타임 시장의 신흥 강자 Bun이 또 한 번의 큰 변화를 예고했다. Bun의 창시자 Jarred Sumner가 트위터를 통해 Bun의 코어 부분을 Zig에서 Rust로 재작성하는 실험이 진행 중이며, 현재 리눅스 x64 glibc 환경에서 기존 테스트 스위트의 99.8%를 통과했다고 밝혔다. 이 소식은 Reddit r/programming에서도 뜨거운 반응을 얻고 있다.

왜 Rust인가?

Bun은 처음부터 Zig 언어의 빠르고 저수준 제어 능력을 활용해 높은 성능을 자랑해왔다. 그런데 왜 굳이 Rust로 다시 쓰는 걸까? Sumner의 설명에 따르면, Rust는 컴파일러 레벨에서 타입의 라이프타임을 엄격하게 강제하고, 원하는 시점에 디스트럭터(destructor)를 사용할 수 있게 해준다. 이는 메모리 안전성과 코드의 견고성을 크게 향상시키는 장점이다.

Zig도 훌륭한 언어지만, Rust가 제공하는 이러한 안전성 메커니즘은 대규모 프로젝트의 유지보수와 안정성 측면에서 더욱 강력한 이점을 제공한다. 특히 “추한 부분은 더 추하게(unsafe) 보이게 하여 개선을 장려한다”는 Rust의 철학은 복잡한 저수준 코드에서 버그를 줄이는 데 도움이 될 수 있다.

99.8% 호환성의 의미

기존 테스트 스위트의 99.8%를 통과했다는 것은 사실상 Bun의 핵심 기능들이 Rust 버전에서도 거의 완벽하게 동작한다는 뜻이다. 이는 단순히 코드를 옮겨 적는 수준을 넘어, Bun의 복잡한 로직과 성능 특성까지 Rust 환경에서 재현하고 있음을 보여준다. 물론 나머지 0.2%가 어떤 부분인지, 그리고 실제 프로덕션 환경에서 어떤 영향을 미칠지는 더 지켜봐야 할 문제다.

이번 Rust 재작성 소식은 Bun이 단순한 속도 경쟁을 넘어, 장기적인 안정성과 개발 효율성까지 고려하는 방향으로 진화하고 있음을 시사한다. JavaScript 런타임 시장에서 Bun의 다음 행보가 더욱 기대되는 이유다. 어쩌면 이 0.2%의 간극이 개발자들에게 새로운 숙제를 던져줄지도 모를 일이다.

$ sources

  1. [1] Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
  2. [2] Bun’s rewrite from Zig to Rust passes 99.8% of testsuite