나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-11-23 10:40:38

Bun


JavaScript 런타임
{{{#!wiki style="margin: 0 -10px;"
{{{#!folding [ 주요 런타임 ]
{{{#!wiki style="margin-bottom: -15px;"
파일:Node.js 로고.svg파일:Node.js 로고 화이트.svg 파일:denonewlogo.svg 파일:Bun 로고.svg
}}}}}}}}} ||
{{{#!wiki style="margin: -10px -10px"<tablealign=center><tablewidth=320><tablebordercolor=white,#1f2023> 파일:Bun 로고.svgBun }}}
종류 JavaScript 런타임(실행환경)
개발 Oven
출시 2023년 9월 8일
최신 버전 v1.1.36 (2024년 11월 19일 배포)
라이선스 MIT 라이선스
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg | 파일:디스코드 아이콘.svg
1. 개요2. 특징3. 설치4. 관련 문서

[clearfix]

1. 개요

Zig언어로 제작된 JavaScript 런타임. 라이선스는 MIT 라이선스이다.

빠른 성능을 첫 번째 목표로 하며 그를 입증하듯 벤치마크 결과 Node.js에 비해 3배 가까이 빠른 성능을 보여주었다.

2. 특징

성능뿐만 아니라 기존의 node가 하지 못했던 all-in-one 컨셉을 내세우고 있다. 번들링, 트랜스파일링, 패키지 관리 등등을 모두 Bun에서 처리할 수 있도록 한다고 한다.

Node.jsDenoV8 엔진을 기반으로 사용한 반면 Bun은 WebKit 엔진의 JavaScriptCore를 사용한다.

또한 node와의 완벽한 호환성을 보장(drop-in replacement)한다는 점이 deno와의 가장 큰 차이점이다. 따라서 별도의 마이그레이션이 필요 없이 node를 bun run으로만 대체하기만 해도 속도가 빨라진다는 주장. 다만 실제로는 아직 미구현된 node API가 많아서 현재까지는 모든 툴이 돌아가는 것은 아니다. 모듈의 경우 node_modules 방식을 그대로 사용하기 때문에 기존 자바스크립트/타입스크립트 코드베이스를 그대로 활용할 수 있다는 점이 deno와의 또다른 차이점이다. 또한 TS뿐만 아니라 JSX 트랜스파일링 역시 내장으로 지원한다.

또 다른 특징으로는 .env 파일을 자동으로 로드해준다는 점이 있다.

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등의 버전 매니저가 존재하지 않는다.

4. 관련 문서