🛠Tools🔥🔥

Vercel、TypeScript コンパイラ tool scriptc を公開──Node 依存なしのネイティブバイナリ生成

Node.js や V8 エンジンを同梱せず、普通の TypeScript を数 100KB のネイティブ実行ファイルにコンパイルする軽量ツールチェーン。
リリース: 2026-07-27 · 読了 3

記事の要約

1. 核心(What)

  • Vercel は TypeScript コードを JavaScript エンジンなしで直接ネイティブ実行ファイルに変換する scriptc を公開した
  • コードの静的カバレッジを測定する scriptc coverage コマンドや、未対応の動的処理を補う quickjs-ng 統合オプションを備える
  • http、https、fs、crypto など Node.js 標準ライブラリの主要な API サーフェイスを完全にサポートする
  • AddressSanitizer と参照カウント監査を用いたメモリ安全性検証の仕組みを標準搭載している

2. 影響(Why)

  • コンテナとサーバーレスの軽量化: RSS メモリ消費量が 1〜4MB に収まるため、Docker イメージの極小化や高密度なサーバーレス配置がコスト効率よく実現できる。
  • 型安全性の保証範囲の拡大: TypeScript の `as` キャストなどを実行時検証に変換することで、静的型付けの信頼性をバイナリ実行時まで持ち越せる。

3. 根拠・詳細(How)

  • 型付き中間表現とバックエンド構造: TypeScript の tsc API でパースした後に型付き中間表現 (IR) を経由し、デフォルトの LLVM または C 言語ソース出力(--backend c)を介して clang でコンパイルする。
  • 動的機能の安全なフォールバック: 完全な静的化が困難な npm 依存や any 型のコードに対し、軽量な quickjs-ng エンジン(約 620KB)を組み込んで実行時の安全な境界バリデーションを行う。

4. 展望・課題(Next)

  • 整数推論とオーナーシップ解析の拡張: ロードマップ上では、さらなるパフォーマンス最適化に向けた整数推論やオーナーシップ解析の実装が予定されている。