- MakoはRustベースの「非常に高速」かつ「production-grade」なフロントエンドビルドツール
- 2023年3月にリリースされ、1年でオープンソース化
- 「非常に高速」なビルド速度が必要だったため、このプロジェクトを開始
- 「production-grade」という表現は、2023年11月24日からMakoがAnt Group(旧Alipay)社内で正式リリースされたことによるもの
- 数千のプロジェクトと、そこで使われた多様なnpmパッケージおよびバージョンで検証済み
Makoの開発理由
- 昨年(2023年3月)、チームでRust、SSR、AIGの3つのプロジェクトを開始し、ビルド性能の問題を解決するためにRustを選択
- 既存のRustツールを使わず自前で作ることにした理由は複雑さにある
- コミュニティライブラリの成熟度とAntの要件との互換性
- 制御権を持つ必要があること(ビジネス上の理由で多くのカスタマイズが必須)
- モダンなメタフレームワークはビルド以外にもコンパイル時フレームワークを必要とする。特にSSRおよびRSCのシナリオでは多くのコンパイルが必要
- Rustを学び、チームが成長する必要性
- Makoのタイムライン:2023年3月にキックオフ、2023年7月に最初の実用版、2023年11月にAntで社内リリース、2024年6月にオープンソース化
速度
- Makoは速度に多くの努力を注いでおり、ベンチマークデータは次のとおり
- Mac Book Pro M2 Maxで、Turbopackもテストしているプロジェクトを使ってベンチマークを実行
- dev cold start時間、root nodeとleaf nodeのHMR時間、production build時間、JS bundleサイズなどの軸を含む
- 以前のバージョンと比べると次のとおり
- Ant Design Proの全プロジェクトをビルドした場合、Webpackは16秒、Makoは3.9秒で4倍高速化
- Ant Design Proの全プロジェクトをビルドした場合、Makoはほぼリアルタイムのhot update
- RSCベースのイントラネットHybridフレームワークSmallfishプロジェクトのビルドでは、スキャフォールドプロジェクトのビルド時間が36.7秒から1.2秒に短縮
- またMakoには実験的なSSU機能もあり、従来のMFSU実装と同様に依存関係のパッケージングとキャッシュを行う
- ソースコードに対する依存関係の比率に応じて、Dev hot start-up時に10〜50倍の高速化が可能
1件のコメント
Hacker Newsの意見
esbuildやswcと比べると性能で劣る可能性がある
このツールは非標準機能をサポートしており、特定のバンドラーに依存する可能性がある
Viteの主要な機能は、rollupの既存のプラグインシステムを活用していること
タイトルに"Rust"とあったので、Web向けのRustコンパイラかと思った
Web開発者ではないので、バンドラーが実際に何をするのか混乱している
Web開発者ではないが、Webアプリは定期的に開発している
Rspack(ByteDance)が1.0バージョンをリリースした
もう1つ興味深いRustベースのJavaScriptバンドラーはOxid / OXC
バンドリングの限界に達したらどうなるのか気になる
MakoTemplatesと関係があるのか気になる