Vue ツールの中での Vize の位置づけ
Vize が何を目指しているかは、既存のツールと機能が重なるため、伝わりにくいことがあります。ただし、重なる機能があっても、同じ層を担っているとは限りません。
公式ツールもあれば、フレームワークに依存しないツールもあります。エディターを中心に据えるもの、コンパイラを中心に据えるもの、型チェックに集中するもの、ツールチェーン全体を目指すものもあります。
それぞれを理解するには、何の問題を解決しようとしているかを整理することが役立ちます。以下は、この記事を公開した 2026 年 3 月時点の位置づけです。
役割をひと目で比べる
まず、それぞれの中心的な役割を表にまとめます。
| プロジェクト | 中心的な役割 | 担っていない役割 |
|---|---|---|
| Vize | Rust による独立した Vue ツールチェーン全体 | Vue 公式のエディター基盤ではない |
| Vue Language Tools | Vue 公式のエディター支援と型チェック | コンパイラ、リンター、フォーマッター全体をまとめたツールチェーンではない |
| Golar | typescript-go を使う埋め込み言語の型チェック基盤 |
Vue 専用のツールチェーン全体ではない |
| Verter | 独立した Vue コンパイラ、LSP、ビルドツールを含むツールチェーン | Vue 公式のツールチェーンではない |
| Vite+ | ランタイム、パッケージ管理、開発、ビルド、チェック、テストをまとめる Web 開発の入口 | Vue 専用のコンパイラやリンターではない |
| Oxlint | 高速な JavaScript / TypeScript リンター | 単体で Vue テンプレート全体を理解するリンターではない |
この違いを押さえると、各ツールの関係を整理しやすくなります。
Vize
Vize は、Rust で作る、独立した Vue ツールチェーン全体を目指しています。
対象は幅広く、次の機能を含みます。
- Vue SFC のコンパイル
- Vue 固有のパターンの lint
- Vue ファイルのフォーマット
- Vue テンプレートとスクリプトのバインディングの型チェック
- LSP によるエディター支援
- コンポーネントギャラリー
- Vue を理解するツールの AI ワークフローへの提供
この広さが、比較対象の多くのプロジェクトと異なる点です。エディター拡張、型チェッカー、バンドラーのプラグインをそれぞれ作るだけでなく、共通のアーキテクチャを持つ Vue 専用のツールチェーンとしてまとめようとしています。
型チェックも、vue-tsc を高速化するだけが目標ではありません。この記事で紹介するのは、corsa-bind によるネイティブのプロジェクトセッションを利用し、Vue 用の仮想ファイル生成、診断の位置対応、エディター向けの型情報を vize_canon が担う設計です。
Vize における tsgo の活用
corsa-bind: The Idea of Language Processor Orchestration では、実行を速くすることに加え、「コンパイラそのものではなく、仕事の組み立て方を変える」という考え方を紹介しています。
Vize が tsgo を活用する考え方にも、通じるものがあります。
Vize は tsgo だけで製品全体を構成しようとしていません。また、tsgo を機能のたびに最初から起動する CLI として使う方向でもありません。Vue ツールチェーンの中で再利用できる、ネイティブの TypeScript 処理サービスとして扱う方向です。
vize checkは Vue 用の仮想 TypeScript プロジェクトを生成し、Corsa のプロジェクトセッションを開いて、まとめて診断を要求します。vize_maestroはネイティブ型チェックが有効な場合、ホバー、補完、定義への移動、参照、名前変更のために Corsa ブリッジを保持できます。vize_patinaは型情報を使う lint ルールのために、必要になった時点でネイティブの Corsa セッションを作ります。JavaScript 側の処理系をすべて組み直すのではなく、必要な型情報だけを問い合わせます。- Vue 固有の仮想ファイル生成とソースマッピングは
vize_canonが担い、TypeScript 側の処理はcorsa-bindとtsgoが担います。
Vize での tsgo の活用は、vue-tsc を速いバイナリに置き換えるだけにとどまりません。常駐する TypeScript 処理系の周りに Vue 用の制御層を置き、CLI の一括チェック、エディター機能、型情報を使う lint で共有する考え方です。
Vize と Vue Language Tools
公式の Vue Language Tools は、Vue のエディター支援と型チェックを本番利用できる形で提供する基盤です。次のツールを含みます。
- VS Code 拡張 Vue (Official)
vue-tsc@vue/language-server@vue/language-core
中心にあるのは言語ツールです。エディター支援、型チェック、仮想コード生成などを通じて、IDE で Vue を扱いやすくします。
Vize も型チェッカーと LSP を持つため、この領域と重なります。加えて、次の範囲にも取り組んでいます。
- 独自のコンパイラ
- lint とフォーマット
- Musea や MCP ツールなどの機能
- TypeScript よりも Rust を中心に据えたアーキテクチャ
役割を分けると、次のようになります。
- Vue Language Tools は、Vue 公式のエディター支援と型チェックの基盤
- Vize は、Vue ツールチェーンのより広い範囲を、1 つの Rust アーキテクチャにまとめる独立した試み
この記事の時点で、本番利用できるエディター支援を優先するなら、公式の Vue ツールが基準になります。より広い範囲を扱う、実験的な Rust 製の Vue ツールチェーンに関心があるなら、Vize が候補になります。
Vize と Golar
Golar は、Vize と同じ範囲を担う Vue ツールチェーンではありません。
Golar は typescript-go を基盤とする埋め込み言語フレームワークです。Vue では公式の @vue/language-core を再利用し、.vue、.astro、.svelte などのファイルを tsgo で扱うことに注力しています。
中心的な役割は、次のとおりです。
- CLI での型チェック
- 型宣言の出力
- 埋め込み言語と
tsgoの統合 - 仮想コード生成のためのプラグイン基盤
Vize とは、主に 2 つの点が異なります。
- 対象範囲
Golar は、typescript-go を使う型チェックと仮想コード生成に集中しています。
Vize は、コンパイラ、リンター、フォーマッター、型チェッカー、LSP、ギャラリーなど、Vue ツールチェーンのより広い範囲を担おうとしています。
- Vue 固有の層を誰が担うか
Golar は、Vue のコード生成に公式ツールを意図的に再利用します。 Vize は、Vue 固有の処理を Rust で独自に構築する方向です。
実行層にも違いがあります。Golar は、埋め込み言語と typescript-go の統合を中心に据えています。この記事で紹介する Vize のネイティブ型チェックは、vize_canon と corsa-bind を組み合わせ、Vue ツールチェーンをどこまで 1 つのネイティブアーキテクチャにまとめられるかを探るものです。
Golar は tsgo で埋め込み言語を扱いやすくし、Vize は Vue ツールチェーン全体をネイティブに構築することを目指しています。
Vize と Verter
Verter は、この比較の中で Vize に最も近い設計思想を持つプロジェクトです。
Verter も、Rust と TypeScript を組み合わせた Vue コンパイラ、LSP、ビルドツール、リンターを含む幅広いツールチェーンを目指しています。既存の一部を修正するだけでなく、Vue ツールチェーン全体を考え直す点で、Vize と共通しています。
違いは、対象分野よりも、機能の組み合わせやアーキテクチャにあります。
- Verter は、厳密な型付けを重視し、VS Code と TypeScript のプロバイダーを中心に据えています。
- Vize は、統一 CLI、Vite 統合、Musea を備え、「1 つのパーサー、1 つの AST、1 つのツールチェーン」という設計を重視しています。
強調する点にも違いがあります。
- Verter は、型付き TSX の生成、TSGO / tsserver などの型プロバイダー、幅広い組み込み lint ルールを重視しています。
- Vize は、コンパイル、lint、フォーマット、型チェック、エディター支援、コンポーネントギャラリー、AI 統合を Rust 製のツールチェーンでまとめ、Vite+ や Oxlint と補完し合う位置づけです。
Verter は、名前だけが違う同じツールではありません。Vue ツールチェーンを最初から設計し直すなら、どんな形になるかという問いに対する、もう 1 つの本格的な取り組みと捉えています。
Vize と Vite+
Vite+ は、異なる層を担います。
Vite+ は、Web 開発全体の入口をまとめるツールです。ランタイムのセットアップ、パッケージ管理、開発、チェック、テスト、ビルド、パッケージ作成、モノレポのタスク実行を 1 つのワークフローで管理します。Vite、Vitest、Oxlint、Oxfmt、Rolldown、tsdown などを組み合わせています。
Vite+ の特徴は、次のとおりです。
- フレームワークに依存しない
- 開発ワークフローを中心に据える
- Vue に限らず、Web 開発全体を扱う
一方、Vize はVue 専用です。
Vite+ は Web ツールチェーンの入口をまとめますが、Vue コンパイラや Vue テンプレートのリンターを目指すものではありません。 Vize は、その基盤に組み込めます。この記事のリポジトリでも、ワークスペースのタスク管理に Vite+ を使っています。
両者は補完し合う関係です。
- Vite+ は、汎用 Web ツールチェーンの外側の基盤
- Vize は、その中で動作できる Vue 専用の処理系
Vize と Oxlint
Oxlint も、異なる層を担います。
Oxlint は、Oxc エコシステムの高速な JavaScript / TypeScript リンターです。一般的な JS/TS ルールや型情報を使う処理に強みがありますが、単体で Vue テンプレート固有の診断すべてを置き換えるものではありません。
その Vue 固有の領域を担当するのが Vize Patina です。
Patina は、次のような lint を扱います。
- テンプレートのディレクティブ
- SFC の構造
- コンポーネントの規約
- Vue テンプレートのアクセシビリティ
役割を分けると、次のようになります。
- Oxlint は、汎用の JS/TS lint
- Vize / Patina は、Vue 固有の lint
oxlint-plugin-vize の alpha も、両者を連携させるためのものです。
Vize の位置づけ
Vize は複数の分野にまたがりますが、そのどれか 1 つだけでは説明しきれません。
- Vue 公式の言語ツールよりも、広い範囲を扱う
- Golar のような
tsgoを活用するプロジェクトよりも、広い範囲を扱う - ツールチェーン全体を目指す点で、Verter に最も近い
- Vite+ などの汎用ワークフローを補完する
- Oxlint などの汎用 JS/TS リンターを補完する
1 文で表すなら、次のようになります。
Vize は、Vue ツールチェーンのより広い範囲を Rust にまとめる独立した試みです。周辺の汎用ツールと協力しながら、Vue 固有の処理を統合することを目指しています。
目的に応じた選び方
この記事での位置づけに沿って、目的を整理します。
- Vue の公式エディター支援と、本番利用できる型チェックが必要なら、Vue Language Tools
- 公式の言語ツールを再利用し、
typescript-goで埋め込み言語を型チェックしたいなら、Golar - 厳密な型付けと LSP を重視する、別の包括的な Vue ツールチェーンを検討するなら、Verter
- Web 開発の汎用ワークフローをまとめたいなら、Vite+
- 高速な JavaScript / TypeScript lint が必要なら、Oxlint
- コンパイラ、lint、フォーマット、型チェック、エディター支援、ギャラリー、AI 支援を 1 つの Rust 製の仕組みとしてまとめる可能性に関心があるなら、Vize
それぞれが担う役割の違いを押さえて、目的に合わせて考えられます。