webpack互換のRust製高速バンドラ「Rspack」が正式版となるバージョン1.0に到達。webpackより10倍高速と
今回は「webpack互換のRust製高速バンドラ「Rspack」が正式版となるバージョン1.0に到達。webpackより10倍高速と」についてご紹介します。
関連ワード (中心、人気、遅延等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
webpack互換のRust製高速バンドラ「Rspack」が正式版となる「Rspack 1.0」としてリリースされました。
Announcing Rspack 1.0 – the next generation JavaScript bundler written in Rust, webpack compatible, 10x faster.
Check out the release blog for more details:https://t.co/nOVJjKMRBo
— Rspack (@rspack_dev) August 28, 2024
RspackはTikTokで知られるByteDanceが中心となってオープンソースで開発されています。
バンドラの代表的な存在であるwebpack
バンドラとは、複数のJavaScriptやTypeScriptの依存関係などを解決し、コードやフォント、画像などのリソースなどをまとめるバンドルツール(あるいはモジュールバンドラやビルドツールなどとも呼ばれます)です。
多数のライブラリやコンポーネントなどを用いてチームで開発するWebアプリケーションの開発には欠かせないツールとなっています。
その代表的なツールがwebpackです。最近の調査でもwebpackは最も人気のあるバンドルツールとなっています。
しかしwebpackはJavaScriptで開発されNode.jsの上で実行するツールとして作られているため、複雑な処理の場合には実行時間がかかるという課題があります。
そのため、webpackの主要な開発者がNext.jsの開発で知られるVercelへ移り、新たにより高速なバンドラである「Turbopack」をRust言語で開発しています。
参考:Webpackの後継となる新バンドルツール「Turbopack」が登場。Rust製のネイティブアプリケーションでWebpackの700倍高速に。Next.js Conf 2022
ただし、Turbopackは高機能と高性能を指向する一方で、webpackとの完全な互換性を目指しているわけではないと明言されています。
現在Turbopackはβ版です。
Rspackはwebpack APIおよびエコシステムとの互換性を実現
一方、今回バージョン1.0となったRspackは、開発当初からwebpack v5との互換性を実現した上で、より高速な動作を目指しており、今回のリリースでもwebpack APIおよびエコシステムとの互換性を実現しつつwebpackより10倍高速であると説明しています。
そのためRspackでは、webpackを使用するプロジェクトの多くがそのままRspackにスムーズに移行できるとのことです。
ただし完全な互換性があるわけではなく、プラグインについては80%以上がそのまま利用できるか、代替のプラグインがあると次のようにリリースノートで説明されています。
Currently, Rspack is compatible with almost all loaders in the community. For the 50 most downloaded webpack plugins, more than 80% can be used in Rspack or have an alternative.
現在、Rspackはコミュニティ内のほぼすべてのローダーと互換性があります。最もダウンロードされている50のwebpackプラグインでは、80%以上がRspackで利用できるか、代替プラグインがあります。
一方、webpackよりも高速な実行については、単にRust言語で開発したことによるものだけでなく、遅延コンパイルなどの機能を追加することで、大規模プロジェクトでのパフォーマンスを向上させてきたとのことです。
下記はリリースノートにある、ベンチマークによるwebpackとの速度比較のグラフです。
Rspackは今後も機能強化と性能向上が行われ、またTypeScriptへの最適化なども行っていくとされています。