Vercel Labs⁠TypeScriptからネイティブ実行コードへのコンパイラ「scriptc」リリース

Vercel Labsは2026年7月24日、TypeScriptをネイティブコードにコンパイルするコンパイラ「scriptc」をApache 2.0ライセンスのもと、GitHub上に公開した。

scriptc | TypeScript-to-Native Compiler
https://scriptc.dev/

scriptcはTypeScriptをコンパクトで高速なネイティブ実行ファイルにコンパイルする。コンパイルされたコードの実行にはNode、V8、JavaScriptエンジンなどは必要としない。通常のTypeScriptコードに変更を加える必要はなく、Node.js上などで実行するTypeScriptコードがそのまま使用できる。

scriptcの実行プラットフォームとしてはmacOS arm64が想定されており、実行にはclangが必要[1]。Linux、Windows用実行バイナリもクロスコンパイルでビルドできる。

scriptcはnpmコマンドでインストールできる。

$ npm install -g scriptc

scriptc runコマンドで対象のTS/JSファイルを指定するとコンパイル+実行、scriptc buildコマンドで実行ファイルが生成される。

なお、scriptcがコンパイルできるのは静的コードのみで、デフォルトでは静的コンパイルのみが行われる。静的に実行できないもの(npm依存関係に含まれるJS、any型を含むコード等)はビルドする際に--dynamicフラグをつけることで、組み込みのJavaScriptエンジンQuickJS-NGにフォールバックされる。静的コード側へ戻るすべての値は実行時に検証され、誤った型情報など型定義と実際の値が合わない場合は、メモリ破壊を起こさないよう捕捉可能なTypeErrorがスローされる。

ビルド前にscriptc coverageコマンドを実行すると静的コードとそうでないものを確認できる
$ scriptc coverage app.ts

  statements analyzed   4481
  compile statically    4451  (99%)

  blockers:
      ×2  functions with optional parameters as values   SC1090
      ×1  Promise.reject                                 SC2020

上記以外の理由でコンパイルに失敗する場合は、通常はエラーコード、コードフレーム、そして書き換えのヒントが表示される。

詳しい使用法や動作についてはscriptc.devを参照。

おすすめ記事

記事・ニュース一覧