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 ベースのツールとどのように競合または協調できるのか、さらなる分析が必要。
1件のコメント
Hacker Newsの意見
Bunの印象的な変更点一覧
Bunのマクロ機能
BunとDenoを使う理由への疑問
Bunの熱心なファン
Bunの新リリースに対する評価
.jsエントリーポイントとランタイムをバンドルして、依存関係のない実行ファイルを生成するオプションを提供している。これはユーザーに単一のバイナリを配布したいときに便利だが、現時点ではファイルサイズがまだかなり大きい(GNU/Linuxの小さなプロジェクトで90MB以上)。Bunチームへの要望
Bun開発者の参加
Bunの安定性への疑問
Bunの収益モデルとVC資金