Windows 지원
- Windows 10 이상에서 Bun 실행 가능
- macOS 및 Linux에서의 Bun 테스트 스위트의 98% 통과
- 내장된 npm 호환 패키지 관리자 포함하여, Vite React 앱 설치 시
yarn보다 18배,npm보다 30배 빠름 .bunx파일 형식으로 Windows에서 더 빠른 스크립트 실행 지원- Windows에서 가장 빠른 시스템 호출을 사용하여 Node.js API 최적화
- 예:
fs.readdir()가 Node.js보다 58% 빠름
- 예:
Bun은 JavaScript 런타임 임
- JavaScript, TypeScript, JSX 지원
tsc와 같은 명령줄 도구가 Bun 1.0보다 최대 2배 빠름- Bun Shell은 이제 Windows에서도 사용 가능한 크로스 플랫폼 쉘 이 되었음
ls,rm,cat등의 코어 유틸리티 포함- JavaScript 및 TypeScript에서
Bun.$API를 사용하여 쉘 실행 가능
Bun.Glob- 파일 및 문자열 매칭을 위한 내장 Glob API 제공
fast-glob및micromatch와 유사하지만 3배 빠른 문자열 매칭
Bun.Semver- semver 문자열 파싱 및 정렬을 위한 새로운 Semver API
node-semver패키지와 유사하지만 20배 빠름Bun.stringWidth()- 터미널에서 문자열의 가시적 너비 측정을 위한 새로운 API
- ANSI 이스케이프 코드, 전각 문자, 그래피, 이모지 지원
server.url:Bun.serve()를 사용하여 생성된 HTTP 서버의 URL을server.url속성으로 얻을 수 있음server.requestIP(): HTTP 요청의 IP 주소를server.requestIP()메서드로 얻을 수 있음subprocess.resourceUsage():Bun.spawn()을 사용하여 생성된 하위 프로세스의 CPU 및 메모리 사용량을resourceUsage()메서드로 액세스 가능- Node.js 호환성 향상
node:http2클라이언트 API,Date.parse()호환성 제공, 재귀적fs.readdir()지원 등 다양한 API 개선- Bun과 Node.js 간 IPC 가능
- 일부 Undocumented Node.js API도 지원
- Web API :
WebSocket,performance.mark(), Brotli 압축을 사용한fetch(),URL.canParse()등의 Web 표준 API 지원
Bun은 npm 호환 패키지 관리자임
bun install을 사용하여 npm 패키지를 최대 29배 빠르게 설치 가능- 라이프사이클 스크립트,
trustedDependencies,bun pm trust등의 기능 개선
Bun은 JavaScript 번들러 임
bun build --target=node를 사용하여 Node.js에서 실행 가능한 코드 번들링 지원--compile플래그를 사용하여 단일 파일 실행 파일로 TypeScript 및 JavaScript 파일 컴파일 가능
Bun은 테스트 런너 임
- Jest와 동일한 API를 지원하는 내장 테스트 모듈 제공
- 새로운
expect()매처 추가 및 모듈 목킹 지원
SQLite 지원 내장
better-sqlite3에 영감을 받은 API를 사용하여 SQLite 지원- 멀티-스테이트먼트 쿼리, 상세한 오류 메시지, 데이터베이스 임포트 및 내장 지원 개선
GN⁺의 의견
- Bun은 Node.js와 호환성을 유지하면서 성능을 크게 향상시킨 JavaScript 도구 키트로, Windows 지원을 통해 더 넓은 개발자 커뮤니티에 접근할 수 있게 되었음.
- 내장된 테스트 런너와 SQLite 지원은 개발자가 추가적인 도구 없이도 효율적으로 작업할 수 있도록 해줌.
- Bun의 빠른 성능과 개선된 개발자 경험은 특히 대규모 프로젝트나 성능에 민감한 애플리케이션에서 두드러질 수 있음.
- Bun이 제공하는 다양한 기능과 개선 사항에도 불구하고, Node.js 생태계의 광범위한 패키지와의 완벽한 호환성을 달성하기 위해서는 지속적인 개발과 커뮤니티의 피드백이 필요함.
- Bun의 새로운 기능들이 기존의 Node.js 기반 도구와 어떻게 경쟁하거나 협력할 수 있는지에 대한 추가적인 분석이 필요함.