ソフトウェア
中級

Turbopack(ターボパック)

Vercel が Rust で開発する次世代 JavaScript バンドラー。Webpack の後継として設計され、Next.js 16 でデフォルト採用。大規模プロジェクトで 10-700 倍の高速化を実現。

0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
JavaScript
Bundler
Rust
Vercel

Turbopack

概要

Turbopack は、Vercel が Rust で開発している次世代 JavaScript バンドラーです。Webpack の作者でもある Tobias Koppers をリードとして、Webpack の根本的な設計を見直して作られた「Webpack 後継」として位置付けられています。2025 年の Next.js 16 でデフォルトバンドラーとなり、大規模プロジェクトで劇的な高速化を実現しています。

主要特徴

Rust 実装

  • 高速: JavaScript 製バンドラーの 10-700 倍
  • 並列処理: 全 CPU コア活用
  • 低メモリ: Webpack より効率的

インクリメンタルビルド

  • 変更部分のみ再計算
  • Function-level キャッシング
  • 依存関係グラフベース

超高速 HMR(Hot Module Replacement)

  • ファイル変更から反映まで 50-100ms
  • Webpack の 10-20 倍高速

段階的な機能対応

  • React Server Components
  • TypeScript ネイティブ
  • CSS Modules
  • Tailwind CSS
  • MDX
  • SVG、画像

パフォーマンス

開発サーバー起動

バンドラー小規模中規模大規模(10k+ module)
Webpack10s30s2-5 分
Vite0.5s2s10-30s
Turbopack0.5s1s3-5s

HMR(変更から反映)

バンドラー時間
Webpack500-2000ms
Vite50-300ms
Turbopack50-100ms

本番ビルド

バンドラー大規模 Next.js
Webpack5-15 分
Turbopack1-3 分

Next.js 16 での使用

デフォルト

# Turbopack がデフォルト
next dev    # 自動的に Turbopack
next build  # 自動的に Turbopack

旧 Webpack に戻す(必要時)

// next.config.js
module.exports = {
    experimental: {
        turbo: false
    }
};

Webpack との比較

Webpack の問題

  • JavaScript 製: 遅い
  • シングルスレッド: CPU コアを活用できない
  • 設計の古さ: 2012 年リリース
  • Plugin 地獄: 設定の複雑化
  • 大規模で遅い: 数十秒〜数分のビルド

Turbopack の改善

  • Rust: ネイティブ速度
  • 並列処理: マルチコア活用
  • モダン設計: ESM、HTTP/2 前提
  • ゼロコンフィグ: 開発体験重視
  • インクリメンタル: 変更部分のみ

Vite との違い

Vite

  • esbuild + Rollup
  • 開発サーバー高速
  • 本番ビルドは Rollup

Turbopack

  • 単一ツール
  • 開発も本番も高速
  • Next.js 統合

どちらを選ぶか

  • Next.js: Turbopack(デフォルト)
  • Vue、Svelte、他: Vite
  • Vite も Next.js 並の速度

アーキテクチャ

Function-level Caching

Turbopack は関数単位でキャッシュを管理し、変更された関数のみを再実行します:

// 概念図(Rust 擬似コード)
#[memoize]
fn parse_file(path: PathBuf) -> AST {
    // ファイルが変わった時のみ実行
}

#[memoize]
fn resolve_imports(ast: AST) -> Vec<Module> {
    // AST が変わった時のみ実行
}

依存関係グラフ

  • モジュール間の依存を追跡
  • 変更の影響範囲を特定
  • 最小限の再ビルド

Lazy Compilation

  • アクセスされるまでコンパイルしない
  • 初回起動を高速化

課題

プラグインエコシステム

  • Webpack のプラグインが使えない
  • Next.js 以外では未成熟

互換性

  • Next.js 向けに最適化
  • 汎用性はまだ低い

安定性

  • 改善中
  • エッジケースで問題

ロードマップ

2025-2026

  • Next.js 16 でデフォルト化
  • 安定性向上
  • Webpack 機能完全対応

将来

  • 汎用バンドラー化
  • Next.js 以外でも使用可能に
  • Webpack からの完全移行パス

Webpack からの移行

Next.js プロジェクト

# 自動移行(Next.js 16 以降)
npm install next@16

大部分の Next.js プロジェクトは自動的に Turbopack で動作します。

非対応機能

  • 一部のカスタム Webpack 設定
  • 特殊な loader

関連用語

  • Webpack、Vite
  • Next.js、Vercel
  • Rust
  • Bundler、Compiler
  • HMR(Hot Module Replacement)
この記事について
カテゴリーソフトウェア
難易度中級
作成日2026/4/11