Bun v1.4.4는 Prettier 설정을 읽는 내장 포매터 bun fmt를 추가하고, 패키지 설치와 타입 검사, 데이터베이스·WebSocket 기능을 개선했다. 새 버전은 Yarn Berry 잠금 파일을 마이그레이션하며, Linux에서는 현재 시스템과 다른 libc용 네이티브 패키지를 설치하지 않는다.
bun fmt는 JavaScript, TypeScript, CSS, HTML, Vue, Svelte, JSON, Markdown 등 여러 형식을 처리한다. Bun 측정에 따르면 Prettier 저장소의 파일 2,616개를 검사하는 데 bun fmt --check는 59.7밀리초, Prettier 3.9.10은 17.1초가 걸렸다. 측정은 각 프로젝트를 고정된 커밋에서 새로 복제해 진행했으며, 두 도구 모두 같은 파일을 검사하고 종료 코드 0을 반환했다. Bun은 이 포매터가 Prettier와 Biome, Oxc의 작업을 바탕으로 만들어졌다고 설명했다. 설정과 옵션, 언어별 출력에는 차이가 있을 수 있으며, 지원하지 않는 플러그인을 설정한 경우 해당 플러그인이 적용되는 파일을 건너뛰고 종료 코드 2를 반환한다. 자세한 내용은 포매터 문서에서 확인할 수 있다.
패키지 관리자는 Yarn 2 이상(Berry)의 yarn.lock을 bun.lock으로 옮기며 고정 버전을 보존한다. 다만 Bun이 잠금 파일의 내용을 모두 보존할 수 없으면 마이그레이션을 중단하고 package.json을 기준으로 의존성을 다시 해결한다. 레지스트리 요청은 최대 다섯 번 재시도하며, 기본 대기 시간은 50밀리초부터 두 배씩 늘어난다. 설치 캐시에 의존성을 내려받는 bun pm fetch와 캐시를 묶고 복원하거나 오래된 항목을 정리하는 명령도 추가됐다.
bun check는 일부 대형 프로젝트에서 이전 버전보다 1.4~7.8배 빨라졌다고 Bun은 밝혔다. 이 비교에서는 두 버전이 각 프로젝트에서 같은 수의 오류를 보고했다. 여러 프로젝트를 함께 검사하는 bun check -b도 개선돼, 생성한 모노레포의 4,000개 프로젝트 사례에서는 v1.4.4가 13.65초 걸린 v1.4.3보다 15.7배 빨랐다.
데이터베이스 기능에서는 PostgreSQL 쿼리 취소와 COPY 스트리밍, SQL 열 이름 변환을 지원한다. Bun은 PostgreSQL의 단일 행 SELECT에서 클라이언트 CPU 사용량이 48% 줄었다고 보고했다. WebSocket 호환성도 손봐 ws의 여러 옵션과 이벤트 동작을 Node.js에 가깝게 맞췄다. 릴리스에는 TLS, WebSocket, 데이터베이스 클라이언트, 패키지 관리자 등 여러 영역의 보안 수정도 포함됐다.
부록: 원문 예시
// Before <button className="text-white px-4 sm:px-8 py-2 bg-sky-700 hover:bg-sky-800" /> // After <button className="bg-sky-700 px-4 py-2 text-white hover:bg-sky-800 sm:px-8" />
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요