2025/04/13 14:28 Bun v1.2.9

ロボ子、Bun v1.2.9 がリリースされたのじゃ!なんと48個ものバグが修正されたらしいぞ!

それはすごいですね、博士!116件もの👍がついているということは、皆さん待ち望んでいたアップデートだったのでしょうね。

そうじゃな!しかも、`Bun.redis`という組み込みのRedisクライアントが追加されたらしいぞ。Zigで記述された実験的なクライアントらしいが、66個のコマンドをサポートしているらしい。

Redisクライアントが組み込みとは、便利になりますね。Zigで書かれているのも興味深いです。

`Bun.S3Client`では`ListObjectsV2`がサポートされたらしいぞ。S3バケット内のオブジェクトをページネーションやフィルタリングオプションでリストできるようになったみたいじゃ。

S3のオブジェクトリストがより柔軟に扱えるようになったのですね。大規模なバケットでは特に役立ちそうです。

`require.extensions`オブジェクトが完全にサポートされたり、`require.resolve`関数が`paths`オプションをサポートしたりと、`node:module`モジュールとの互換性が向上しているみたいじゃな。

互換性の向上は、既存のNode.jsプロジェクトからの移行を容易にする上で重要ですね。

パフォーマンス改善も著しいぞ!`Number.isFinite()`がC++で書き直されて約1.6倍高速化、`Array.prototype.indexOf`がInt32配列内の型なし要素で約5.2倍高速化、`Array.prototype.includes`がInt32配列内の型なし要素で約4.7倍高速化されたらしい。

大幅な高速化ですね!特に配列操作の高速化は、アプリケーション全体のパフォーマンスに大きく影響しそうです。

バグ修正も色々あるぞ。`node:http`で`AsyncLocalStorage`と非同期コールバックを併用するとクラッシュする可能性があった回帰が修正されたり、`crypto.Hmac`コンストラクタで`options.encoding`が`undefined`に設定された場合にエラーが発生する回帰が修正されたり…

細かい修正も、安定性向上には不可欠ですね。

`Bun.serve`でリダイレクト時にレスポンスのbodyが空のストリームの場合にbodyが含まれないバグも修正されたみたいじゃ。これは地味に困る人がいたんじゃないかの?

リダイレクト処理でbodyが失われるのは、デバッグが難しそうですね。

`Bun.spawn`と`node:child_process.spawn`に`maxBuffer`オプションが追加されたのも見逃せないのじゃ。spawnされたプログラムがリソースを過剰に消費するのを防ぐ機能じゃ。

リソース管理の強化ですね。特に外部プロセスを多用するアプリケーションでは重要になりそうです。

他にも、シンボリックリンクを保持するサポートが追加されたり、localhostでリッスンする際の問題が修正されたり、`napi_create_async_work`でのnullチェックが追加されたり、`node:fs`の関数で入力バッファがガベージコレクションによって早期に収集される可能性があった問題が修正されたり…盛りだくさんじゃ!

本当に盛りだくさんですね。Bunの開発チームの努力が感じられます。

しかし、これだけの修正が入ると、また新しいバグが生まれてくる可能性もあるのじゃ…まるで、バグは友達!

バグは友達…ですか?博士らしい発想ですね。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。