SWCはRust crateとJavaScript APIを持つTypeScript/JavaScriptコンパイラ
Rust ベースの Web 用プラットフォーム。 SWC (Speedy Web Compiler の略) は、Rust で書かれた超高速 TypeScript / JavaScript コンパイラーです。
ひと目でわかる
- これは何?
- SWCはRust製のコンパイラで、Rust側のcrate利用とJavaScript側のNode対応を別の入口として案内します。速度の主張と公開ベンチマークの所在も切り分けます。
- 誰に向いている?
- SWCはRustのparser crateを直接使う開発者と、Nodeから変換処理を組み込みたい開発者の双方を対象にします。READMEのMSRV 1.73、Node v10以上の利用条件、開発時Node v20以上を固定し、性能ページの数値をREADME本文の主張と混同しないでください。
- 商用利用できる?
- できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に Rust です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
SWC の自己紹介と二つの言語向けインターフェース
README は SWC(Speedy Web Compiler)を、Rust で書かれた超高速の TypeScript/JavaScript コンパイラと紹介しています。SWC は Rust 向けライブラリであると同時に JavaScript 向けライブラリでもあります。Rust ユーザー向けには rustdoc が案内され、特に parser crate(swc_ecma_parser)が多くのユーザーの入り口とされています。リポジトリのメタデータはこのプロジェクトを「Rust ベースの Web プラットフォーム」と表現し、README のキャッチフレーズは「Make the web (development) faster.」です。冒頭で「超高速」と述べていますが、具体的な測定値は含まれておらず、パフォーマンスページへのリンクが後で示されます。
Rust crate の互換方針と更新スクリプト
Rust ユーザー向けに、SWC は「各 crate の最新バージョンを選べば動作する」という方針を示しています。現在の crate の MSRV は 1.73 です。使用中のすべての SWC crate を更新するには、README がリポジトリから取得して bash で実行するスクリプトを提供しています。コマンドは `curl https://raw.githubusercontent.com/swc-project/swc/main/scripts/update-all-swc-crates.sh | bash -s` です。このスクリプトは依存関係をすべて最新版に更新し、`cargo build` を実行して問題なく動くことを確認します。実行には `jq` と `cargo upgrade` コマンドが必要です。README は個別の crate バージョンやリリースの間隔を記載していません。
JavaScript からの利用と Node バージョンサポート
JavaScript ユーザー向けに、README はリポジトリ内でインストールコマンドを提示せず、SWC ウェブサイトのインストールドキュメントを参照させています。明記されている Node バージョン要件は、利用時は Node v10 以上、プロジェクト自体の開発時は Node v20 以上です。それ以外に README は JavaScript API の詳細を説明していません。Rust 側の入り口は parser crate ですが、JavaScript ユーザーはウェブサイトでインストールと API の情報を確認する必要があります。README に npm のインストールコマンドは含まれていません。
ドキュメント、機能比較、パフォーマンスの所在
README の Documentation セクションは swc.rs/docs/installation を指しています。Features セクションは Babel との比較ページを指し、Performance セクションはウェブサイト上の benchmark transform 結果を指しています。README 自体は機能の差分やベンチマーク数値を列挙しておらず、それらの詳細はリンク先で確認する必要があります。プロジェクトの説明では SWC を「超高速」と呼んでいますが、その根拠はリポジトリ本文ではなく外部ドキュメントに置かれています。
コミュニティ、スポンサー、コントリビューションの経路
SWC はコミュニティ駆動のプロジェクトで、ボランティアのグループによってメンテナンスされており、ウェブサイトにチームページがあります。README は開発時間を提供する方法を提案し、Discord(優先)または GitHub Discussions で案内を受けること、または Open Collective でスポンサーになることを挙げています。コントリビューションの指針は CONTRIBUTING.md にあり、アーキテクチャのドキュメントは ARCHITECTURE.md にあります。リポジトリのメタデータには 34,163 スター、1,534 フォーク、411 オープンイシューとありますが、README 本文はこれらの数字を出していません。
ライセンスと条項の範囲
README は、SWC が主に Apache License 2.0 の条件で配布され、完全なライセンスは LICENSE にあると述べています。引用された抜粋は、複製、派生作品の作成、公開表示、公開演奏、サブライセンス、配布を許可する、永続的、全世界的、非独占的、無償、ロイヤルティフリー、取消不能の著作権ライセンスを付与します。また、コントリビューションによって必然的に侵害される特許請求を対象とする特許ライセンスも付与し、特許訴訟が提起されると終了します。ライセンス文書はセキュリティ体制、サポートの約束、保証については何も述べておらず、抜粋にもそれらの主題は含まれていません。README も主要な Apache 配布以外のライセンス条項には触れていません。
SWCの採用判断では、Rust crateを組み込む場合とNode側の配布物を使う場合で、更新単位が変わります。READMEの更新スクリプトは全SWC crateを最新版へ上げ、cargo buildで確認する流れです。実行にはjqとcargo upgradeが必要で、依存更新を一括で行うため、既存プロジェクトのCargo.lockへの影響を先に確認すべきです。JavaScript利用ではNode v10以上、リポジトリ開発ではNode v20以上という二つの条件が示されています。Babel比較やtransform benchmarkは外部ページへのリンクなので、READMEだけから変換結果や速度差を断定できません。
crateを更新するスクリプトは便利ですが、全依存を最新版へ動かす操作です。個別の変換器だけを固定したい場合は、ワークスペースの依存宣言とlockfileを見て更新範囲を絞る必要があります。Node利用者はウェブサイトのインストール説明を読む入口になり、リポジトリREADMEだけではnpmパッケージの選択やオプションまでは埋まりません。
編集部の結論
SWCはRustのparser crateを直接使う開発者と、Nodeから変換処理を組み込みたい開発者の双方を対象にします。READMEのMSRV 1.73、Node v10以上の利用条件、開発時Node v20以上を固定し、性能ページの数値をREADME本文の主張と混同しないでください。
コミュニティノート