# Bun 1.1 릴리즈

> Clean Markdown view of GeekNews topic #14118. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14118](https://news.hada.io/topic?id=14118)
- GeekNews Markdown: [https://news.hada.io/topic/14118.md](https://news.hada.io/topic/14118.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-04-02T16:35:41+09:00
- Updated: 2024-04-02T16:35:41+09:00
- Original source: [bun.sh](https://bun.sh/blog/bun-v1.1)
- Points: 6
- Comments: 1

## Topic Body

### 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 기반 도구와 어떻게 경쟁하거나 협력할 수 있는지에 대한 추가적인 분석이 필요함.

## Comments



### Comment 24176

- Author: neo
- Created: 2024-04-02T16:35:41+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39895744) 
- **Bun의 인상적인 변화 목록**
  - Bun은 Node.js의 이상적인 대안으로 보이며, Windows 지원에 시간을 할애한 것은 웹 개발 세계에서 종종 간과되는 부분임.
  - "Bun on Windows passes 98% of our own test suite for Bun on macOS and Linux."라는 말은 Windows 버전이 실패한 테스트를 포함하여 출시되었다는 의미인지, 아니면 오해인지에 대한 질문이 있음.

- **Bun의 매크로 기능**
  - Bun이 번들 시간에 코드를 실행하는 기본적인 매크로 기능을 가지고 있다는 사실을 알게 됨. 이는 매우 흥미로운 기능임.

- **Bun과 Deno 사용 이유에 대한 의문**
  - Bun과 Deno가 Node.js와의 호환성이 필수라는 것을 깨달았지만, VC 자금 지원이 있을 때 제품의 지속 가능성에 대한 의문이 있음.
  - Bun과 Deno가 Node.js와 같은 (다소 불완전한) 생태계에 속해 있음에도 불구하고, 이들을 사용해야 하는 명확한 이유가 무엇인지 확신할 수 없음.

- **Bun의 열렬한 팬**
  - TypeScript와의 호환성으로 Bun을 처음 사용하게 되었고, 성능 때문에 계속 사용함.
  - Deno를 시도해봤지만 사용하기 어려웠고, 반면 Bun은 통합하기 쉽고 매우 즐거운 경험이었음.

- **Bun의 새로운 릴리스에 대한 평가**
  - Bun의 비디오를 시청했지만, 차트가 명확하지 않아 이전 Bun 버전과 Node.js 중 어느 것과 비교하는지 알 수 없었음.
  - Bun을 부수 프로젝트에서 사용해본 경험은 좋았으며, 내장 API가 잘 작동함. Deno와 Node.js도 이러한 API의 일부를 채택하기를 바람.
  - Bun은 기본적으로 일부 텔레메트리를 수집함. 설치 스크립트에서 이에 대해 알리지 않으며, Bunfile 문서에서만 언급됨.
  - 사용자가 설치 중에 텔레메트리를 비활성화하는 방법에 대한 지침을 받고, 이를 선택적으로 사용할 수 있기를 바람.
  - Bun은 프로젝트의 .js 진입점과 런타임을 번들로 묶어 종속성이 없는 실행 파일을 생성하는 옵션을 제공함. 이는 사용자에게 단일 바이너리를 배포하고 싶을 때 유용하지만, 현재 파일 크기가 아직 상당히 큼 (GNU/Linux에서 작은 프로젝트의 경우 90MB 이상).
  - Bun이 특정 기능을 비활성화하여 더 작은 바이너리를 얻을 수 있는 옵션을 제공할지 궁금함.
  - Bun을 Haxe 타겟으로 사용해보고 있으며, Haxe를 TypeScript보다 선호하거나 기존 Haxe 프로젝트에 웹 서버를 추가하고 싶을 때 고려할 만한 선택임.

- **Bun 팀에 대한 요청**
  - 명확한 지원 정책/수명 주기 타임라인을 제공해달라는 요청이 있음. 버전 및 모듈 간 안정성 보장에 대한 명확성도 중요함.

- **Bun 개발자의 참여**
  - Bun 개발자가 질문에 답변할 준비가 되어 있음을 밝힘. Bun v1.1이 아직 컴파일 중이며, 완료되기까지 약 20분이 더 걸릴 것임을 언급함.

- **Bun의 안정성에 대한 질문**
  - Bun을 여러 프로젝트에서 세 번 시도해봤지만, 런타임이나 패키지 설치 중에 세그먼트 폴트(segmentation fault)가 발생하는 경험을 함.

- **Bun의 수익 모델과 VC 자금**
  - Bun의 수익 모델이 무엇인지, VC 자금이 소진되면 어떻게 될지에 대한 질문이 있음.
