【OSS】Bun 1.4 完全ガイド — Rustに書き換えられた次世代JavaScriptランタイムの全て【2026年最新】

目次

結論

Bun 1.4 は、2026年8月20日にリリースされた、ZigからRustに全面書き換えられた最初の安定版です。アイドルCPU使用率が5分の1、メモリ使用量が最大35%削減、起動が最大50%高速化。さらに Bun.WebView(ヘッドレスブラウザ)、Bun.Image(画像処理)、Bun.markdown(Markdown変換)、Bun.cron()(スケジューラー)といった組み込みAPIが追加され、Node.jsテストスイートとの互換性も1,517テスト増加しました。

まずはインストールして試してみましょう。

curl -fsSL https://bun.sh/install | bash
# すでに Bun を使っている場合
bun upgrade

これだけで Bun 1.4 が使えます。Node.jsからの移行も、ほとんどのプロジェクトでは bun run dev に置き換えるだけで動きます。

Bun 1.4 とは何か

Bun は Node.js の代替を目指す「All-in-One JavaScriptランタイム」です。ランタイム・パッケージマネージャ・バンドラー・テストランナーを1つのバイナリで提供します。Bun 1.4 はその歴史の中で最も大きなアップデートとなりました。

Zig -> Rust への書き換え

Bun はこれまで Zig 言語で開発されてきましたが、Bun 1.4 では Rust に全面移植されました。この書き換えは Claude Code(Anthropic の AI コーディングエージェント)を活用して行われ、100万行以上あるコードベースの移植が約11日間で完了したという話題でも有名です。

この移植により、メモリリークやクラッシュの原因だった低レベルの問題がコンパイル時に検出できるようになり、安定性が大幅に向上しました。

Node.js 互換性の飛躍的向上

Bun 1.4 では Node.js テストスイートから新たに 1,517テストが通過するようになりました。特に以下のモジュールの互換性が大きく改善されています。

  • node:quic: 99% 対応
  • node:events, node:trace_events, node:sqlite: 100% 対応
  • node:http: 97% 対応(rewrite済み)
  • node:fs: 97% 対応
  • node:cluster: 85/88 テスト通過
  • node:vm: 98/101 テスト通過

これらの改善により、Playwright、vitest、OpenTelemetry、dd-trace といった主要パッケージがそのまま動作するようになりました。

新機能APIの使い方

Bun 1.4 では6つの npm パッケージ相当の機能がランタイムに組み込まれました。外部依存ゼロで使えるのが最大のメリットですね。

Bun.markdown — Markdownレンダリング

markedremark の代わりになる組み込みAPIです。

import { markdown } from "bun";

const html = Bun.markdown.html("# Hello

This is **Bun 1.4**!");
console.log(html);
// <h1>Hello</h1>
// <p>This is <strong>Bun 1.4</strong>!</p>

Bun.Image — 画像処理

sharp の代わりになる画像処理APIです。

const blob = Bun.file("input.jpg");
const img = await blob.image();

await img
  .resize(800, null, { fit: "inside" })
  .jpeg({ quality: 85 })
  .write("output.jpg");

Bun.WebView — ヘッドレスブラウザ自動化

Puppeteer 不要でブラウザ操作ができます。

const view = Bun.WebView();
await view.navigate("https://example.com");
const title = await view.evaluate("document.title");
const screenshot = await view.screenshot({ format: "png" });
await Bun.write("screenshot.png", screenshot);
view.close();

Bun.cron() — スケジュール実行

node-cron の代わりになるcronスケジューラーです。

const job = Bun.cron("*/5 * * * *", () => {
  console.log("Tick at", new Date().toISOString());
});
setTimeout(() => job.stop(), 60000);

パフォーマンス改善の実測値

CPU使用量

アイドル時のCPU使用率が5分の1に削減されました。Claude Code のような長時間稼働するアプリでは、p99 CPU使用率が24%から10%に低下しています。

メモリ使用量

HTTPサーバーのメモリ使用量が13%〜48%削減されています。

  • fastify: 233MB → 120MB (−48%)
  • Express: 169MB → 92MB (−46%)
  • Next.js SSR: 397MB → 285MB (−28%)

起動速度

Linux で最大2倍、Windows で最大2.5倍の起動高速化を達成。hello world で 5.1ms(Node.js は 27.2ms)です。

Node.js からの移行手順

npm run dev    -> bun run dev
npm test       -> bun test
npm install    -> bun install
npx next dev   -> bun --bun next dev

注意点

  1. process.versions.node が 26.3.0 を返すようになりました。
  2. .env* 自動読み込み は bun で直接実行したときのみ有効。
  3. ネイティブアドオン はまだ未対応の場合があります。

CLI新コマンド

bun audit fix
bun dedupe
bun prune
bun pm licenses
bun test --parallel

まとめ

項目 Bun 1.3 Bun 1.4 改善
アイドルCPU 5分の1 大幅減
メモリ 最大35%減 大幅減
起動(Linux) 10.9ms 5.1ms 2倍速
Node.js互換 +1,517 大幅増
ビルド言語 Zig Rust 全面移行
WebView なし 搭載 新規
Image/markdown/cron なし 搭載 新規

Bun 1.4 は、Rust への書き換えによるパフォーマンスと安定性の向上に加え、開発者がよく使う機能をランタイムに内蔵した完成度の高いリリースです。まだ試していない方は、この機会にぜひ一度動かしてみてください。

【広告】お名前.comならドメイン取得が格安。

【広告】このサイトはConoHa WINGで運営しています。安定した高速サーバーで快適にブログを書けています。いつもありがとう!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次