Buz – 최신 Zig와 1초 미만 증분 빌드를 지원하는 Bun 포크

9 hours ago 3

Buz는 Bun의 Rust 재작성 직전 커밋에서 출발해, 최신 Zig 기반의 호환 가능한 대체재를 목표로 개발 중인 초기 단계 포크임 JavaScriptCore 벤더링 소스까지 전체 빌드 그래프를 build.zig로 옮기고 Zig에 소규모 패치를 적용해 1초 미만 증분 빌드를 구현함 Rust 버전 Bun의 새 기능·버그 수정 테스트를 가져왔지만 실패하는 테스트가 많아, 업스트림 기능과 JavaScriptCore 변경을 계속 따라가야 함 사용되지 않는 코드 11,000줄 이상을 제거하고 일부 구현을 Zig 표준 라이브러리 중심으로 현대화하는 과정에서 여러 버그도 수정함 아직 프로덕션에 쓸 수 없으며, LLM과 사람의 감독을 함께 활용해 기술 부채를 줄인 뒤 LLM 없이도 유지보수하기 좋은 코드베이스를 만드는 것이 장기 목표임 프로젝트 목표와 개발 상태 Buz는 Bun이 Rust로 재작성되기 전 마지막 커밋을 기반으로 한 개발 중인 포크임 Bun과 호환되는 대체재이면서 기존보다 정돈된 코드베이스를 만드는 데 초점을 맞춤 개발이 매우 초기 단계라 프로덕션에 사용할 준비가 되지 않았음 유사한 Zig 기반 Bun 프로젝트가 이미 Ziggit에 공개된 상황에서 개발 작업의 중복을 피하고자 Buz를 공개함 공개 당시에는 해당 프로젝트를 아직 검토하지 않은 상태였음 최신 Zig 포팅과 증분 빌드 Bun을 현재 업스트림 Zig로 포팅하고, 증분 재빌드를 위해 Zig에 소규모 패치를 적용함 JavaScriptCore의 벤더링 소스를 포함한 전체 빌드 그래프를 build.zig에 통합함 이 구성으로 증분 빌드 시간이 1초 미만으로 줄어 개발 반복 주기가 빨라짐 프로젝트에는 증분 빌드 패치를 적용한 Zig master 서브모듈이 포함됨 당시 업스트림 Zig 커밋 2b1c663에서도 정상적으로 빌드 가능함 호환성 테스트와 업스트림 추적 Rust 버전 Bun에 추가된 테스트를 가져왔으며, 새 기능과 버그 수정을 검증하는 테스트도 다수 포함됨 아직 통과하지 못하는 테스트가 많아 Bun 업스트림을 계속 따라잡아야 함 기능 호환성을 유지하면서 코드를 정리하고 기술 부채를 줄이는 작업도 병행함 JavaScriptCore 변경 역시 지속해서 추적해야 함 코드베이스 정리와 현대화 Bun에서 전혀 사용되지 않는 코드 11,000줄 이상을 제거함 일부 코드를 재작성·현대화하면서 Zig 표준 라이브러리 활용을 늘림 정리와 현대화 과정에서 여러 버그도 ...

Read Entire Article