4月2日、Bunチームが「Bun 1.1」をリリースした。
このアップデートは、特にWindowsへの対応追加、1,700回以上のコミットによる安定性とNode.jsとの互換性の向上、新機能やAPIの追加という点で、Bun 1.0からの大幅な進化を遂げている。
Windowsへの本格対応
Bunの目玉機能の一つは、Windowsへの本格的対応である。Windows 10以降のバージョンに対応し、Bunの全機能がWindows上でも利用可能になったことは、従来のmacOSやLinux上での使用に限られていた開発者にとって、大きな前進である。実際、Bunのテストスイートの98%がWindowsでのテストをクリアしている。
パフォーマンスの向上
パフォーマンスの面では、Bunはnpmと互換性のあるパッケージマネージャを内蔵し、「bun install」は「yarn」や「npm」と比較して圧倒的な速度を誇る。Windowsでの「bun install」は、「yarn」の18倍、「npm」の30倍の速度で実行可能である。この高速化は、特に大規模なプロジェクトや依存関係が多いプロジェクトにおいて、開発の効率化に大きく寄与する。
さらに、BunはJavaScript、TypeScript、JSXをサポートし、独自のトランスパイラを搭載している。これにより、50KBを超えるファイルのトランスパイルパフォーマンスが向上し、大規模プロジェクトの起動速度が2倍になるなど、開発の効率化が図られている。
Node.jsとの互換性向上
また、Bun 1.1では新たに多くのNode.jsのAPIに対応し、Node.jsの代わりとして使えるようNode.jsとの互換性が強化された。これにより、Bunを既存のNode.jsプロジェクトに導入することがより容易になり、開発者はNode.jsの環境をそのまま利用しつつ、Bunの提供する高速な実行環境と豊富な機能を享受できるようになった。
新たなAPIも多数
Webエンジニアにとって注目すべき新しいAPIが多数追加された。以下にその一部を挙げる。
- Bun.Glob:ファイルや文字列をglobパターンでマッチングするためのAPI。
fast-glob
やmicromatch
といったNode.jsライブラリと似ているが、マッチング処理が3倍高速。 - Bun.Semver:semver文字列を解析し、ソートするためのAPI。
node-semver
パッケージに似ているが、20倍高速に動作する。 - WebSocketの安定化:WebSocketが安定化し、Autobahnテストスイートに合格。多数のバグが修正され、信頼性が向上。
- **performance.mark()**:パフォーマンス測定のためのuser-timings APIサポート。アプリケーションのパフォーマンス計測が容易になる。
- fetch()のBrotli圧縮サポート:Brotli圧縮を使用したfetchリクエストが可能に。サーバーとの通信がより効率的に。
- **URL.canParse()**:文字列が有効なURLかどうかをチェックするためのAPI。無効なURLの場合にエラーを投げずに済む。
- fetch()のUnixソケットサポート:Unixソケット経由でのfetchリクエストに対応。サーバーサイドアプリケーションがDockerデーモンなどのサービスと通信可能に。
Bun 1.1のリリースにより、開発者はより高速で効率的な開発環境を手に入れることができるようになった。Windowsへの対応、パフォーマンスの向上、Node.jsとの互換性強化は、特に注目に値する改善点だ。これらの機能をフルに活用することで、開発の生産性を大幅に向上させることが可能である。
詳細は[Bun 1.1 Bun Blog]を参照されたい。
Thank you to the author for tackling such a complex issue with clarity and insight carbide inserts.
This page is pretty helpful, in my opinion. I thought the meal was delicious. This post was a delight to read retro bowl.