Rustに刷新されたBun v1.4のメモリパフォーマンスが良かった
Anthropic傘下でZigからRustへと全面刷新されたBun v1.4。個人開発のDiscord Botで長年悩まされていた謎のメモリリークが解消した実体験を共有します。
目次
昨年12月、Anthropic傘下に入ったBunが、Claudeエージェントを64並列で動かしてZigからRustへとたった2週間弱で全面刷新したニュースは、記憶に新しい方も多いのではないでしょうか。
しばらくの間、Rust rewrite版Bunは実験的な位置付けで配信されていましたが、先月8月20日についに安定版としてv1.4がリリースされました。
本記事では、個人開発で細々と運用しているDiscord Botアプリケーションで、おおよそ1ヶ月ほど試してみた感想を共有してみたいと思います。
#Bun v1.4とは(ZigからRustへの全面刷新)
Bun v1.4の最大の目玉は、何と言ってもコアランタイムがZigからRustへと完全にリライトされたことでしょう。
#Claude Codeによる爆速リライト
このリライトプロジェクトは、Bunの創設者であるJarred Sumner氏が主導し、AnthropicのAIコーディングツールClaude Codeをフル活用して進められたそうです。
2026年5月のわずか11日間で、約53万5,000行に及ぶZigのコードベースがRustへと移植されました。最大64並列のClaudeエージェントが稼働し、片方のエージェントが実装を担当し、もう片方が敵対的レビュー(Adversarial Review)を行うという徹底した自動化ワークフローによって進行したと報告されています。
#なぜRustへと舵を切ったのか?
公式ブログなどによると、移行の大きな動機となったのはメモリ安全性と長期的な保守性のようです。
これまでのZig版では、高速性を追求する一方でuse-after-freeや二重解放、未回収のメモリリークといった問題に直面することがあったようです。Rustの所有権システムや借用チェッカーを採用することで、コンパイル時にそうした不具合を抑え込み、より堅牢で維持しやすいランタイムを目指した、ということのようです。
また、AI生成コードに対するポリシーなどを巡り、上流のZigコミュニティとの間で摩擦が生じていたことも背景にあったと言われています。
2026年8月20日にリリースされた安定版「Bun v1.4」は、既存の膨大なテストスイートを100%パスした状態で発表されました。
#Discord Botについて
筆者は個人開発で、Discordサーバー向けに時報Botを開発・運用しています。
こちらの記事でも紹介しているのですが、このBotは定時メッセージ配信機能のほか、おみくじやじゃんけんなどのミニゲーム機能、Next.jsで構築した管理用Webダッシュボードなどを備えています。
インフラは Fly.ioの無料枠(メモリ512MB) という、そこそこ限られたリソース環境で常時稼働させています。
#前回の記事で悩まされていた「謎のメモリリーク」
前述のZenn記事を書いた際、Botの参加サーバー数が増えるにつれて約60時間前後でOoM(Out of Memory:メモリ不足)クラッシュを起こすという問題に直面していました。
そこで2週間かけて、大規模なリファクタリングを実施しました。
- Discord.jsのキャッシュを厳格に制限(最大200件の保持に抑制)
- 1メッセージごとにcronを登録していた設計を、単一スケジューラーに集約
- Prisma v7(Wasmエンジン)のメモリリーク疑惑を受け、Drizzle ORMへ移行
- DB接続コネクション数の削減や、Bunの頻繁GCオプションの追加
自分なりにできる限りの無駄を削ぎ落としてみた結果、クラッシュまでの時間は延びたものの、「時間経過とともに線形にメモリが増加し、GCでも回収されないメモリリーク」がどうしても残ってしまいました。
当時の記事の結びでも「根本原因の調査は現在も続いている」と書いた通り、手元のコードをいくら見直しても原因が分からず、頭を抱えていました。
#v1.4で運用してみた結果
結論から言うと、Bun v1.4にアップデートしてみたところ、あれだけ悩まされていたメモリリークが綺麗に解消しました。(少なくとも手元の環境では)
#犯人はランタイム側だった
Rustリライト版Bunがリリースされたニュースを起床後に見て、すぐにBun v1.4に切り替え、1ヶ月程運用を続けてみました。
すると、これまで右肩上がりに増え続けていたメモリ消費がピタッと止まり、長期間動かしていてもメモリ使用量がほぼフラットになったのです。
何週間も頭を抱えてアプリ側のコードを弄り回しても消えなかった線形リークですが、もしかするとアプリ側の問題ではなく、Bun(旧Zig実装)の低レイヤやネイティブ層のどこかで起きていたメモリ管理の問題だったんだろうなという結論に至りました。自分程度の知識ではランタイム内部のコードまで追うことは到底できませんが、ひとまずバージョンを上げただけでスッと直ってくれたのでとりあえず一安心です。
#直近1週間のメモリ使用量推移
現在のFly.ioのメトリクスを見ると、メモリ使用量は200MB〜230MB付近で非常に落ち着いて推移しています。一時的にスパイクが発生してもGCがしっかりメモリを解放してくれているようで、512MBの制限を脅かす気配は今のところなさそうです。
Note
※お詫び
比較用として掲載するはずだったv1.3以前(アップデート前)の右肩上がりにメモリを消費していたスクリーンショットですが、ローカルフォルダの整理中に誤って削除してしまいました……。お見せできず大変申し訳ありません。

リファクタリング後は350時間(約2週間)前後でOoMで落ちるのを繰り返していたのですが、今では完全に放置していても落ちる気配がありません。
#コミュニティの批判と、一ユーザーとしての実感
今回のRust全面刷新とAI主導の移行劇は、開発コミュニティでもかなり大きな議論を巻き起こしました。
#Andrew Kelley氏による批判と議論
特に注目を集めたのが、Zig言語の創設者であるAndrew Kelley氏の反応です。彼は自身のブログで「My Thoughts on the Bun Rust Rewrite」という記事を公開し、以下のような痛烈な批判を展開していました。
- AIによって大量生成されたコードを「unreviewed slop(レビューされていない粗悪なコード)」と表現
- 問題の本質はZigという言語にあるのではなく、Bunチームの「hack-on-top-of-hack(ハックの継ぎ接ぎ)」な開発文化にあるという指摘
- BunがZigエコシステムから離脱したことに対して「むしろ安堵した(relief)」「AI熱狂主義との付き合いが重荷だった」と吐露
またコミュニティ全体でも、「100万行規模のAI生成コードを一気にマージするのは技術的負債のロンダリング(tech debt laundering) ではないか」「人間が完全に理解していないコードを今後どうやって長期保守・デバッグしていくのか」「高速化のためにunsafeブロックが多用されているのではないか」といった懸念の声が上がっていました。(なお、Bunチーム側もこうした指摘を受けて「Unsafe Audit」ページを公開していて、コードベース内のunsafe箇所の監査と健全性改善を進めています)
#それでも一ユーザー・素人目線では「助かった」のも事実
こういった有識者の方々の議論や、AI生成コードに対する長期的な保守性の懸念は、確かに納得できる部分も多いです。
とはいえ、趣味でちょっとしたBotを動かしている一ユーザーの視点から見ると、以下の点もかなりありがたいなと感じました。
- 検証体制への配慮: 既存の全テストスイートを100%パスしているだけでなく、Fuzzilliなどのツールを用いたファジングテストも統合されていること
- 手元の環境で劇的に安定したこと: 512MBという小メモリ環境で運用しているBotにおいて、どうにもならなかったメモリリークが解消され、安定して動き続けてくれていること
コードの品質や思想的な議論など高度な話は自分には分かりかねる部分も多いですが、少なくとも「実際に使ってみたらめちゃくちゃ安定した」というのは個人的にとても嬉しい体験でした。コアな開発に携わっていないライトな個人開発者目線では、手放しで助かる素晴らしいアップデートだったなと感じています。
#おわりに
Anthropic傘下に入ったBunが、Claudeを活用して53万行ものコードをわずか11日間でRustへ刷新したというニュースは、まさにAI時代の開発を象徴するような出来事としてタイムラインでもかなり盛り上がっていました。
当初は「本当に安定して動くのだろうか?」という不安もありましたが、実際に1ヶ月運用してみた結果は期待以上でした。Fly.ioの無料枠(512MB)でも安心して放置できるようになり、個人開発者としては感謝しかありません。
AI生成コードに対する議論は今後も続くと思いますが、ランタイムとしての完成度・信頼性が着実に高まっているBunの今後に、引き続き期待していきたいと思います。