Skip to content
research

RustによりTypeScriptの型チェックが3倍高速に

コンパイラのベンチマークが言語間の論争を再燃させました。しかも、挑戦者となる実装はAIエージェントの支援により数週間で構築されました。ただし、ツールが実際の開発ワークフローに適合する必要がある以上、純粋な速度は全体像の一部にすぎません。

Stork editorial team
RustによりTypeScriptの型チェックが3倍高速に

見過ごされているTypeScriptの速度低下

TypeScriptの開発には、トランスパイルと意味的な型チェックという2つの異なるプロセスがあります。esbuildやViteなどの高速なビルドツールは、TypeScriptの構文を素早く取り除き、実行可能なJavaScriptに変換します。この工程は高速で、多くの場合ミリ秒単位で完了します。

ボトルネックは、コードの妥当性を検証する意味的な型チェックの段階で発生します。この処理はエディタのフィードバックやCIパイプラインに不可欠ですが、大規模なプロジェクトでは数分に及ぶことがあります。開発者は、この遅延をIDEでのエラー報告の遅さやCI実行時間の長さとして体感します。

Microsoftはこの問題に対し、TypeScriptコンパイラのGo移植版を公式に提供し、従来のJavaScriptエンジンに比べて8〜12倍の高速化を実現しました。TypeScript 7.0に含まれるこのGo版により、チェック時間は大幅に短縮されました。たとえば、VS Codeの型チェックは125.7秒から10.6秒に短縮されています。

最近、コミュニティ主導のRust実装が登場し、新たな選択肢となっています。CloudflareとOxcプロジェクトがAIエージェントを使って短期間で開発したこのRust移植版は、Goコードベースを元にしており、公式のGo版より3倍近く高速であるとされています。エコシステム全体にはまだ統合されていませんが、TypeScript適合性テストの99.9%超に合格しており、その可能性を示しています。

ベンチマーク:0.3秒対0.7秒

高速化の度合いを定量化するため、従来のJavaScriptコンパイラを、新しいGo版およびRust版の移植と比較するベンチマークが行われました。テストには、793ファイル、約380,000行のコードからなる大規模なコードベースである公式のTypeScriptリポジトリが使用されました。性能は4つのシナリオで評価されました。完全に有効なコード、単一の型エラー、破損したコア型による連鎖的な失敗、そして深い再帰です。

これらの多様なシナリオ全体で、結果は顕著でした。JavaScriptコンパイラは一貫して最も時間がかかり、6.6〜13秒でした。Go移植版はこれを大幅に改善し、0.6〜2.2秒でチェックを完了しました。しかしRust版はさらに優れた性能を示し、わずか0.2〜0.5秒で完了しました。

主要な数値を整理すると、Rustコンパイラは元のJavaScript実装より平均で約24倍高速でした。さらに注目すべきは、この特定のテストでGo移植版の3倍近く高速だったことです。これらの結果は、開発者体験が大きく向上する可能性を示しています。

ベンチマークの結果は変動し得ることを念頭に置くことが重要です。ハードウェアの仕様、プロジェクト構造、特定のコンパイラのバージョン、正確なベンチマーク手法などの要因が、いずれも性能に影響を与える可能性があります。それでも、Rust移植版で一貫して確認された劇的な高速化は、TypeScriptエコシステムにとって重要な進展です。

AIエージェントが苦労して築かれた設計を再現

注目すべきことに、このRust移植版は、人間のエンジニアが新しい型システムを設計して生まれたものではありません。1人のエンジニアがAIエージェント(主にClaude Opus 3.5)に指示し、MicrosoftのGo製コンパイラを関数単位でRustへ翻訳させました。この手法は、創造的な翻訳ではなく、機械的な翻訳に基づいています。

この翻訳戦略では、13,000件を超えるテストケースからなるTypeScriptの豊富な適合性スイートを活用しました。各テストケースは、準拠したコンパイラが報告すべき診断エラーを正確に定めています。エージェントは関数を移植し、対応するテストを実行し、相違があればデバッグして、次の関数に進みました。

現在のRust版のようにこれらのテストをすべて通過することは、公式のGoコンパイラと同一の型チェック結果を生成できる互換性があることを裏付けています。これにより、わずか3週間の開発期間で、迅速かつ検証可能な反復が可能になりました。公式のGo移植版の詳細については、A 10x Faster TypeScript - Microsoft Developer Blogsをご覧ください。

ただし、適合性テストの通過が主に検証するのは出力の正しさです。あらゆる種類のプロジェクトで同等のパフォーマンスが得られること、エディタとのシームレスな統合、あるいはすべてのコードベースですぐに本番利用できることまで、それ自体が保証するわけではありません。動画で示されたベンチマークは説得力がありますが、より広く採用されるには、さらなる統合と実環境でのテストが重要になります。

この記事が気に入ったら、毎朝同じようなものをメールで受け取れます。

1日1通 · 2クリックで解除 · サードパーティのトラッキングなし

速度は魅力的だが、真の試金石は採用である

Rustによるパフォーマンス向上は魅力的ですが、WebAssemblyに関する強みも採用を後押しする有力な理由です。たとえばCloudflareは、開発者向けツールをブラウザやエッジ環境で直接実行することを目指しています。RustはGoとは異なり、ガベージコレクタを組み込まずにWebAssemblyへコンパイルできるため、軽量でサンドボックス化された実行に適しています。

MicrosoftによるTypeScriptコンパイラのGo実装は、引き続き公式のリファレンスであり、TypeScript 7.0に大幅な高速化をもたらしています。一方、Rust移植版は、Viteの作者によるRustツールチェーンであるOxcプロジェクト内で開発されています。このため、Oxc Lintにおける型認識リンティングなどの将来的な用途に向けて、その速度をリアルタイムのフィードバックに活かせる位置付けにあります。

このベンチマークは、あらゆる場合を保証するものではなく、有望な兆候として捉えてください。導入前に、お使いの特定のプロジェクト構成との互換性やツールのサポート状況を確認してください。これらの最適化や統合が日常のワークフローに浸透し、開発者のサイクルタイムを実際に短縮するかどうかに注目してください。Rust移植版の真価は、印象的なベンチマークから広く実用的に使われるツールへと進めるかどうかにかかっています。

よくある質問

Rust製のTypeScriptコンパイラはMicrosoftの公式リリースですか?

いいえ。Oxcプロジェクトに関連するコミュニティ主導のRust移植版であり、Microsoftの公式ネイティブコンパイラ移植版はGoで書かれています。

動画のベンチマークでは、Rust製コンパイラはどのくらい高速でしたか?

TypeScriptリポジトリのテストでは、平均してJavaScript版コンパイラの約24倍、Go移植版の3倍近く高速でした。

なぜTypeScriptコンパイラをRustで構築するのですか?

Rustにはガベージコレクタがないため、WebAssemblyとしてのパッケージ化に適している場合があります。また、この移植版ではパフォーマンスとメモリの最適化も検討されています。

Rust移植版はAIによって書かれたのですか?

エンジニアの指示のもと、AIエージェントが機械的な移植作業の多くを担い、Microsoftのコンパイラとtypescriptの適合性テストを指針として使用しました。

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

ビルダーの方へ

このページは、他社のツールのために働いています。

AIエージェントが読み、購入検討層がたどり着きます。8言語とMCP経由で答えます。あなたのツールにも同じページを — 24時間以内に公開。