このドキュメントでは、Rspackがサポートする重要な機能の一部をリストしています。その中には、すでに開発中のものもあれば、将来のバージョンで実装されるものもあります。
最終更新日:2024年10月
Rspackは2~3ヶ月ごとにマイナーバージョンをリリースし、それぞれに重要な新機能と改善が含まれます。
RspackのHMRパフォーマンスを大幅に向上させる新しい増分ビルド実装を開発中です。
Rspack v1.1では、この機能を試験的にサポートし、将来のバージョンでデフォルトで有効になるまで最適化を継続します。
永続キャッシュは、複数のビルド中にビルドアーティファクトをキャッシュすることで、後続のビルド時間を大幅に短縮します。特に大規模なプロジェクトでは、パフォーマンスの大幅な向上をもたらします。
Rspack向けの永続キャッシュ機能を実装しており、Rspack v1.2で試験的なサポートをリリースする予定です。
Rspackのキャッシュ機能の進化パスは、メモリキャッシュ、永続キャッシュ、ポータブルキャッシュの順次実装に従います。現在、Rspackはメモリキャッシュを実装しており、永続キャッシュを実装中です。
その後、ポータブルキャッシュの実装を継続する予定です。これは、Rspackのビルドキャッシュが永続的なだけでなく、環境やマシン間でポータブルになることを意味します。これにより、チームはキャッシュをより効果的に活用し、分散ビルドの基盤を築くことができます。
Webpackには多数のAPIが含まれているため、コミュニティからのフィードバックに基づいて、最も頻繁に使用されるローダーとプラグインからサポートしていきます。
現在、上位レベルのツールはJS APIを使用してRspackを統合できますが、これは優れた拡張性を提供します。しかし、RustとJavaScript間の通信オーバーヘッドがRspackのパフォーマンスを制限しています。また、拡張機能をサポートするためにSWC Wasmプラグインも提供していますが、そのパフォーマンスはネイティブ言語よりも遅いです。上位レベルのツールにより柔軟な統合オプションと優れたパフォーマンスを提供するために、RspackのRust APIを公開する予定です。
ESMはJavaScriptモジュールの標準です。現在、RspackとWebpackのESM出力のサポートを改善しており、RspackベースのライブラリビルドツールであるRslibを作成しています。これにより、開発者はnpmパッケージをビルドする際に、ESMの静的解析とツリーシェイキングをより効果的に活用できます。
ByteDanceでは、RspackをベースにRSC(React Server Components)を試験的にサポートし、大規模なWebアプリケーションで検証しました。将来、RspackはRSCをファーストクラスでサポートし、RSCの実装を容易にするためのより多くのコア機能を提供します。たとえば、Rspackは現在、単一のランで複数の環境向けにビルドすることを可能にするレイヤー機能をサポートしています。
現在、RspackがTypeScriptモジュールを処理する場合、最初にローダーを使用してJavaScriptに変換してから処理を続けます。これは柔軟性を提供しますが、ビルド出力のさらなる最適化を妨げます。たとえば、開発者は`const enum`ではなく`enum`を使用する必要がありますが、`enum`は定数として最適化が困難です。将来、RspackでTypeScriptをファーストクラスの市民権として扱い、TypeScriptの静的情報を活用して、ビルド出力のより高度なコンパイル時最適化(型ベースのプロパティ名変更など)を提供する予定です。