Mako Bundler(マコバンドラー)
2024年ByteDance公開のRust Web Bundler。SWC/OXCベース高速Bundler+Tree Shaking+Code Splitting+Webpack Plugin互換+Production最適化搭載。
概要
Mako Bundlerは2024年8月にByteDance(TikTok運営会社)が公開したRust製Web Bundlerで、ByteDance内部のWeb Application向けProduction-grade Bundlerとして開発・運用されている。同社謹製のRspack(より汎用Webpack互換)とは別ライン製品で、ByteDance社内のUmiJS Frameworkや特定Production Workloadに最適化された設計。Rspackが「Webpack互換性最優先」なのに対し、Makoは「Production Build速度最優先」を方針とし、特定の最適化(SWCベースMinification・Code Splitting・Tree Shaking)で性能差を出している。GitHub上でOpen Source公開され、Apache 2.0 Licenseで利用可能。Rspackと比べてやや知名度は低いが、ByteDanceの社内大規模プロジェクトでの実戦運用実績がある。
主な特徴・仕組み
- Rust Native Bundler: SWC・OXC・SwcRust基盤、Pure Rust Pipeline
- Production Build特化: 開発時HMR性能はRspack並、Production Buildで頭1つ抜けた最適化
- Webpack Plugin互換層: Webpack 5 Plugin APIの主要部分が動作
- UmiJS Driver: ByteDanceの社内Frameworks UmiJS 5の Bundler Driverとして公式統合
- Code Splitting最適化: Async/Sync chunkの自動分離、初回ロード時間短縮
- Tree Shaking: Rust実装の高速Dead Code Elimination
- CSS Modules・Less・Sass: PostCSS統合、各種CSS Pre-processor対応
- Source Maps: Production・Development環境別最適化Source Map生成
- TypeScript: SWCベースの型チェックなしトランスパイル
- HMR Optimization: Module-level differential update、変更モジュールのみリロード
- Multi-Entry Build: マルチエントリーポイント並列ビルド最適化
スペック比較表
| 項目 | Mako 1.0 | Rspack 1.0 | Webpack 5 | Vite 6 |
|---|---|---|---|---|
| 開発元 | ByteDance(専用) | ByteDance(汎用) | Webpack Foundation | Vue Team |
| 言語 | Rust+SWC | Rust+SWC | JavaScript | Rust+esbuild+Rolldown |
| Plugin互換 | Webpack(部分) | Webpack(95%+) | Webpack(基準) | Rollup |
| Production Build速度 | 高速(特化) | 高速 | 標準 | 高速 |
| HMR Latency | ~150ms | ~150ms | ~500ms | ~50ms |
| 主な統合Framework | UmiJS 5 | 任意Webpack Project | 任意 | Vue/Svelte系 |
| GitHub Stars | 2K+ | 15K+ | 65K+ | 70K+ |
| 採用規模 | ByteDance社内 | 業界横断 | 業界標準 | Vue/SPA系 |
具体例・対応製品
- Mako CLI v1.0+:
npm create mako@latest、最小Templates提供 - UmiJS 5 + Mako Driver: ByteDance公式統合、Tencent/Alibaba等中国大手社内採用
- TikTok Web App: ByteDance自社運営TikTok Webサイト、Production Mako採用
- 企業向けProduction: Webpack→Mako移行で初回ビルド時間50-70%短縮実績あり
- 競合機種: Rspack(同社汎用版)、Webpack 5、Turbopack(Next.js 15+)、Vite 6+Rolldown
自作PCでの選び方・注意点
Mako BundlerはByteDance社内のProduction向け特殊用途Bundlerで、一般的なWebアプリケーション開発では選択肢として優先度低い。汎用性ならRspack(同社、Webpack 95%互換)、エコシステム成熟度ならWebpack 5/Vite 6を選ぶべき。Makoが向くケースは、UmiJS 5 Frameworkの採用プロジェクトで、Productionビルド時間が事業上のクリティカルなボトルネック(数百MB級Bundle・1000+ファイル)である場合。GitHub Stars 2K(Rspack 15K比較)・コミュニティ規模もまだ小さいため、本番採用前に運用負荷を考慮する必要あり。日本国内採用例はほぼなく、中国国内Web開発エコシステム内での選択肢に留まる。一方、ByteDance社内のクラウド規模Production運用実績は信頼に値する。Webpack→Makoの自動Migration CLIは存在せず手動移行が必要。
関連用語との違い
Rspackとの違い: Rspackは汎用Webpack互換+業界向けOSS、MakoはByteDance社内特化+UmiJS統合。同じByteDance謹製でも開発コミュニティ・ターゲットユーザーが異なり、競合関係というより棲み分け。 Webpack 5との違い: Webpack 5はJavaScript実装+Plugin Ecosystem最大、MakoはRust実装+Production速度特化。Webpack 5は安心感+互換性、MakoはBuild速度+Rust性能。
よくある質問(FAQ)
Q1: Makoは日本企業のWeb開発で使うべき? A: 通常は推奨しない。汎用性ならRspack/Vite、安定性ならWebpack 5。Makoは UmiJS 5 Frameworkを採用していて、かつByteDance社内の中国系大手プロジェクトに準じた要件がある場合のみ選択肢。
Q2: RspackとMakoはどちらが「ByteDance公式」? A: 両方ともByteDance製でApache 2.0公開。Rspackは汎用OSSとして外部Community向け、Makoは社内Production向けを起源とする。役割分担で同社内で並行開発される異なるプロダクト。
Q3: Production Build速度で本当にRspackより速い? A: 公式ベンチマークではFarm 1.0/Rspack 1.0と同等〜10%程度の差。Production最適化がRspackと比べて若干Aggressiveで、特定のCode Splittingパターンで効率化される。実用上の体感差は微小。
まとめ
- Mako Bundler = 2024年8月公開ByteDance Rust Production Bundler
- SWC/OXCベース、Webpack Plugin互換層+UmiJS 5 Driver統合
- Production Build速度特化、Webpack→Mako 50-70%短縮実績
- ByteDance社内採用(TikTok Web)、外部採用は中国系大手中心
- 汎用ならRspack、社内Productionに特化はMakoの棲み分け