Next.js の待ち時間にキレて JS ランタイムを自作した話──Bun の誕生から Anthropic 買収まで
配信URL:(配信済みになったら記入)
台本
オープニング
【ジングル】 はい,どうもこんにちは.「雨宿りとWEBの小噺」始まりました.気づきの配達屋 Keethこと桑原です.
この番組では,気にも留めていなかったものに光を当てることで,世界の見え方が少し変わるかもしれない,そんな Web 業界の裏話や小噺をご紹介しております.
今回のお題は「Next.js の待ち時間にキレて JS ランタイムを自作した話──Bun の誕生から Anthropic 買収まで」です.
本題
Bun という名前は「パン」から来ている
- ロゴは 🍞 のパン。なんでパン?という問いに明確な答えはなく、作者がゆるく命名したと言われている
- ゆるいネーミングとは裏腹に、中身は本格的な JS ランタイム
作者は元 Stripe のフロントエンドエンジニア Jarred Sumner
- 日本でも馴染みの深い決済 SaaS の Stripe で働いていたエンジニアが個人プロジェクトとして作り始めた
- 開発動機がユニーク:Minecraft 風のボクセルゲームをブラウザで作っていたところ、Next.js の hot reload が毎回 45 秒かかってイライラした
- 「待てない」という欲求不満が、JS ランタイムをゼロから自作するという行動に結びついた
V8 ではなく JavaScriptCore を採用した理由
- Node.js や Deno が使う V8 は Chrome のエンジン。Bun は Safari が持つ JavaScriptCore(JSCore)を採用
- JSCore はもともとモバイルブラウザ向けに起動速度を極限まで削ったエンジンで、サーバーサイドでも起動が速い
- 実測で Bun の起動時間は Node.js の約 10 倍速い(8〜15ms vs 40〜120ms)
- 「なぜ Chrome のエンジンを使わないのか」という素朴な疑問の答えが「Safari のほうが速かったから」というのが面白い
Zig という言語で書かれている
- 本体は C 言語に近い低レベル言語 Zig で実装されている
- Zig は「C の後継」を目指す言語で、メモリを手動管理できる分、オーバーヘッドが極限まで小さい
- 「なぜ TypeScript や Rust で作らないのか」と聞かれることも多いが、速度のためにあえて Zig を選んでいる
2021年から 2023年まで怒涛のスピードで成長
- 2021 年 5 月に最初のツイートで存在を公開
- 2022 年 7 月に v0.1 をリリース。その直後、シリコンバレーの老舗 VC Kleiner Perkins(Google や Amazon にも初期投資した)から 700 万ドル(約 10 億円)を調達
- 2023 年 9 月に v1.0 がリリースされ「Node.js 終わったな」と Web 界隈がざわついた
2025 年 12 月、Anthropic に買収される
- AI コーディングツール Claude Code の基盤ランタイムとして採用されることが決まり、Anthropic が Bun を買収
- 「JS ランタイムが AI 企業に買収される」という異色のニュースとして話題になった
- Bun はオープンソース・MIT ライセンスを維持したまま、Anthropic の傘下で開発が続いている
Bun の「全部入り」設計が Node.js と根本的に違う部分
- Node.js はランタイムだけを提供し、パッケージ管理(npm)、テスト(Jest)、バンドル(webpack)は別ツールで揃える必要があった
- Bun はランタイム・パッケージマネージャ・テストランナー・バンドラーを 1 つで提供
- TypeScript や JSX をトランスパイルなしでそのまま実行でき、dotenv も不要
- パッケージのインストール速度は npm の 25〜30 倍
互換性はどうか
- Node.js API の約 95% をカバーしており、ほとんどのプロジェクトは設定を少し変えるだけで動く
- ただし、C++ で書かれたネイティブアドオン(node-gyp を使うもの)は一部非対応
- 「まずパッケージマネージャだけ Bun に替える」段階的移行が現実的
エンディング
【エンディングBGM】 さて、そろそろ今回もクロージングです。 今回は Bun の誕生秘話と、Node.js との違いについて話しました。
「ゲームの hot reload が遅い」という欲求不満が JS ランタイムを生んで、それが 10 億円調達されて、AI 企業に買収される──Web の世界はやっぱり面白いですね。
次回も、Webテクノロジーの小噺をお届けします。
この番組が気に入った方は、ぜひチャンネル登録をお願いします。 また、あなたからの感想やリクエストもお待ちしております! 𝕏で #WEB小噺 をつけて投稿していただくか、概要欄のお便りフォームからお送りください。
それでは、また次回の雨宿りでお会いしましょう!「雨宿りとWEBの小噺」お相手は Keeth でした。さようなら! 【ジングル】
📚 参考情報
- Bunの誕生経緯
- 作者は元Stripeのフロントエンドエンジニア Jarred Sumner
- Next.jsのhot reloadの遅さ(毎回45秒)への欲求不満が開発の発端
- 2021年5月に存在を公開、2022年7月にv0.1リリース、2023年9月にv1.0リリース
- 技術的な特徴
- V8ではなくSafari由来のJavaScriptCore(JSCore)を採用。起動時間はNode.jsの約10倍速い
- 実装言語はC言語に近い低レベル言語Zig
- ランタイム・パッケージマネージャ・テストランナー・バンドラーを1つに統合
- Node.js APIの約95%をカバー
- 資金調達と買収
- 2022年、Kleiner Perkinsなどから700万ドル(約10億円)を調達
- 2025年12月、Claude Codeの基盤ランタイムとしてAnthropicが買収。MITライセンスは維持
- 引用元
🎙️ 収録メモ
- 焦点:ジャレッド・サムナー(Jarred Sumner / 元 Stripe)
- これは,45 秒のホットリロードと,Safari のエンジンを選んだ判断と,JS ランタイムが AI 企業に買われたことの話です.
構成メモ:★人物起点にできる回.タイトルは既に二部構成になっているので維持.「ボクセルゲームを作っていて 45 秒待たされた」シーンから始める
トーン
- 冒頭:軽快、興味を引く
- 技術解説部分:テンポよく、比較を強調
- Anthropic買収の下り:驚き、ちょっとした感慨
- 強調ポイント
- 「Next.jsのhot reloadの遅さにキレた」という開発動機
- V8ではなくJavaScriptCoreを選んだ理由
- Anthropicによる買収という異色の展開
- 尺
- 合計:約9〜11分
- オープニング:30秒
- 本編:8〜10分
- クロージング:30秒
- タグ
Bun #Nodejs #JavaScript #JSランタイム #Anthropic #ClaudeCode #Web歴史