개발자 한 명이 bun upgrade --canary 명령어를 입력해 최신 버전을 설치해 봤다고 한다. 그는 평소보다 가벼워진 바이너리 크기와 안정적인 실행 속도를 확인했다.
PR #30412와 100만 라인의 코드 변경
PR #30412(코드 변경 제안서)가 2026년 5월 14일 claude/phase-a-port 브랜치에서 main으로 머지되었다. 이번 변경의 규모는 6,755개의 커밋과 2,188개의 파일에 달하며, 총 1,009,257라인이 추가되고 4,024라인이 삭제된 대규모 작업이다. Bun(자바스크립트 런타임) 팀의 Jarred-Sumner는 이번 작업이 모든 플랫폼의 테스트 스위트를 통과했으며, 그 과정에서 기존에 존재하던 여러 메모리 누수와 불안정한 테스트 항목들을 함께 해결했다고 밝혔다. 현재 이 변경 사항은 메인 브랜치에 통합되었으나, 비-canary(정식 출시 전 테스트 버전) 버전에 완전히 포함되기 전까지는 추가적인 최적화 작업이 진행될 예정이다. 정리 작업 또한 후속 PR 시리즈를 통해 순차적으로 이루어질 계획이다.
수동 디버깅에서 컴파일러 보조 체제로의 전환
예전에는 개발팀이 수년간 막대한 시간을 들여 메모리 버그를 직접 추적하고 디버깅하는 수동 작업에 의존했다. 이제는 Rust(안전한 시스템 프로그래밍 언어)의 컴파일러 보조 도구가 메모리 오류를 사전에 포착하고 예방하는 구조로 전환되었다. 이는 런타임 개발에서 가장 고통스러운 지점인 메모리 안전성 문제를 언어 차원에서 해결하여 개발 생산성을 높이겠다는 의도로 해석된다. 바이너리 크기 역시 기존보다 3MB에서 8MB 정도 감소한 것이 관찰된다. 벤치마크 결과는 기존과 비슷하거나 일부 구간에서 더 빠른 성능을 보이며 중립적인 지표를 나타냈다. 아키텍처와 자료구조는 그대로 유지하면서 언어만 교체했기에 코드베이스의 논리적 흐름은 동일하게 유지된다. 특히 async Rust(비동기 처리 방식의 Rust)를 사용하지 않고 서드파티 라이브러리 의존성을 최소화하여 런타임의 제어권을 높였다.
개발자가 바로 체감하는 변화는 설치 명령어 하나로 이 거대한 아키텍처 변화를 시험할 수 있다는 점이다.
bun upgrade --canaryJarred-Sumner는 사용자들이 이 명령어를 통해 변경 사항을 시험하고, 문제가 발생할 경우 이슈를 통해 제보해 줄 것을 요청했다. 다만 스레드가 과열될 경우 논의를 위해 잠글 수 있다는 단서를 달았다. 100만 라인에 달하는 코드를 재작성하면서도 성능 저하 없이 메모리 안전성을 확보했다는 점은 향후 런타임의 기능 확장 속도를 가속화하는 핵심 동력이 될 것으로 보인다.
런타임의 단순한 성능 수치보다 더 중요한 것은 개발자가 메모리 안전성이라는 확신을 가지고 기능을 확장할 수 있는 기반을 구축했다는 점이다.



