Bun의 실험적 Rust 재작성판이 Linux x64 glibc에서 99.8% 테스트 호환성에 도달

2 hours ago 2

(twitter.com/jarredsumner)

  • Bun의 Rust 재작성판은 Linux x64 glibc 환경에서 기존 테스트 스위트의 99.8% 를 통과함
  • 코드베이스는 “기본적으로 같은 코드베이스”이며, Rust 전환으로 컴파일러가 타입 생명주기를 강제하고 필요한 시점에 소멸자를 사용할 수 있게 됨
  • 안전하지 않은 부분은 Rust의 unsafe로 더 분명해져 리팩터링을 유도하는 효과가 있음
  • 재작성 이유는 메모리 누수, 크래시, 안정성 문제를 걱정하고 수정하는 데 많은 시간을 쓰는 데 지쳤고, 언어가 이를 막는 더 강력한 도구를 제공하길 원했기 때문임
  • 전체 규모는 960,000 LOC 재작성으로 표현됐고, Linux에서 테스트 스위트를 통과하며 다른 플랫폼도 곧 대상이 될 예정임

Rust 재작성 상태

  • Bun의 Rust 재작성판은 Linux x64 glibc 환경에서 기존 테스트 스위트의 99.8% 를 통과함
  • 코드베이스는 “기본적으로 같은 코드베이스”이며, Rust로 바꾸면서 컴파일러가 타입의 생명주기를 강제하고 필요한 시점에 소멸자를 사용할 수 있게 됨
  • 안전하지 않은 부분은 Rust에서 unsafe로 더 분명하게 드러나며, 리팩터링을 유도하는 효과가 있음
  • 재작성 배경에는 메모리 누수, 크래시, 안정성 문제를 걱정하고 수정하는 데 많은 시간을 쓰는 데 지쳤고, 언어가 이런 문제를 막는 더 강력한 도구를 제공하길 원했다는 이유가 있음
  • 전체 규모는 960,000 LOC 재작성으로 표현됐고, 코드는 실제로 동작하며 Linux에서 테스트 스위트를 통과하고 다른 플랫폼도 곧 대상이 될 예정임

향후 공개될 내용과 빌드 관련 답변

  • Bun에 대한 의미, 벤치마크, 메모리 사용량, 향후 유지보수성, 실제 재작성 과정은 별도 블로그 글에서 다룰 예정임
  • 재작성 과정은 단순히 “claude, rewrite bun in rust. make no mistakes”라고 한 것이 아니며, 끝까지 동작하는 상태에 도달하기 위한 작업은 6일 전부터 시작됨
  • 수작업이었다면 막대한 작업량이었을 것이라고 표현됨
  • 컴파일 시간은 더 빠른 Zig 컴파일러를 쓰는 기존 Zig 버전과 기본적으로 비슷하며, upstream Zig 컴파일러를 썼다면 Rust 포트가 더 빠르게 컴파일됐을 것이라고 함
  • 성능은 별도 블로그 글에서 다룰 예정임
  • libc 자체를 Rust 버전인 frankenlibc로 대체하는 다음 단계에 대해서는, 그 전에 직접 libc를 만들겠다고 함
Read Entire Article