JavaScript 런타임 | |||
{{{#!wiki style="margin: 0 -10px;" {{{#!folding [ 주요 런타임 ] {{{#!wiki style="margin-bottom: -15px;" | | | |
{{{#!wiki style="margin: -10px -10px" | <tablealign=center><tablewidth=320><tablebordercolor=white,#1f2023> | Bun | }}} | |
종류 | JavaScript 런타임(실행환경) | |||
개발 | Oven | |||
출시 | 2023년 9월 8일 | |||
최신 버전 | v1.2.9 (2025년 4월 10일 배포) | |||
라이선스 | MIT 라이선스 | |||
|
1. 개요
Zig 언어로 제작된 JavaScript 런타임. 라이선스는 MIT 라이선스이다.빠른 성능을 첫 번째 목표로 하며 그를 입증하듯 벤치마크 결과 Node.js에 비해 3배 가까이 빠른 성능을 보여주었다. 단, 속도보다 차지하는 메모리 용량이 중요하다면 여전히 Node.js를 사용하는 것이 좋다.
2. 특징
성능뿐만 아니라 기존의 Node.js가 하지 못했던 all-in-one 컨셉을 내세우고 있다. 번들링, 트랜스파일링, 패키지 관리 등등을 모두 Bun에서 처리할 수 있도록 한다고 한다.Node.js와 Deno가 V8 엔진을 기반으로 사용한 반면 Bun은 WebKit 엔진의 JavaScriptCore를 사용한다.
또한 node와의 완벽한 호환성을 보장(drop-in replacement)한다는 점이 deno와의 가장 큰 차이점이다. 따라서 별도의 마이그레이션이 필요 없이 node를 bun run으로만 대체하기만 해도 속도가 빨라진다는 주장. 다만 실제로는 아직 미구현된 node API가 많아서 현재까지는 모든 툴이 돌아가는 것은 아니다. 모듈의 경우
node_modules
방식을 그대로 사용하기 때문에 기존 자바스크립트/타입스크립트 코드베이스를 그대로 활용할 수 있다는 점이 deno와의 또다른 차이점이다. 또한 TS뿐만 아니라 JSX 트랜스파일링 역시 내장으로 지원한다.또 다른 특징으로는
.env
파일을 자동으로 로드해준다는 점이 있다. Node.js에서는 dotenv 패키지를 설치하는 등의 방식으로 해야 했던 것이 통합된 것에 가깝다.3. 설치
- [ Ubuntu / Linux 계열 OS ]
#!syntax sh curl https://bun.sh/install | bash
- [ Windows ]
#!syntax sh powershell -c "irm bun.sh/install.ps1 | iex"
현재까지는 nvm, fnm등의 버전 매니저가 존재하지 않는다.