Perry と他の選択肢を比較
TypeScript を出荷するさまざまな手段(ランタイム、コンパイラ、クロスプラットフォーム UI フレームワーク)と Perry を比較します。出典を明示し、計測値があるところは実数で、誠実にお伝えします。
Perry vs Bun
Bun はオールインワンの JavaScript / TypeScript ランタイム、バンドラ、パッケージマネージャ、テストランナーであり、自身のランタイムをコードと一緒にバンドルすることで単一ファイルの実行ファイルも生成できます。Perry は別の道を選びました――TypeScript を LLVM 経由で直接ネイティブマシンコードにコンパイルします。バイナリの中に JavaScript エンジンはなく、ランタイムもなく、小さなネイティブ実行ファイルがあるだけです。Bun と Perry は「TS から単一バイナリ」という出力では重なりますが、そのバイナリの中に JavaScript エンジンを入れるべきかどうかで意見が分かれています。
Perry vs Deno
Deno は V8 上に構築されたモダンな JavaScript / TypeScript ランタイムで、TypeScript のファーストクラス対応、パーミッションベースのセキュリティモデル、そして V8 をアプリと一緒にバンドルして単一の実行ファイルを生成する `deno compile` コマンドを備えています。Perry は TypeScript を直接ネイティブマシンコードへコンパイルします――出力に V8 はなく、ランタイム層もなく、小さなネイティブバイナリだけです。
Perry vs Static Hermes
Static Hermes(`shermes`)は Meta によるリサーチ段階の取り組みで、強い型を持つ JavaScript / TypeScript のサブセットを Hermes エンジン経由で事前コンパイルすることを目指しており、主に React Native を狙っています。Perry は同じ一般的なアイデア――TypeScript をネイティブにコンパイル――に対する別の賭けですが、Rust と LLVM の上で独立して構築されており、動作するコンパイラ、25+ のネイティブ UI ウィジェット、10 のコンパイレーションターゲットを今日出荷しています。2026 年 4 月時点で、Perry 自身のベンチマークスイートは Static Hermes をピアとして試したものの、テストした標準パッケージマネージャからクリーンにインストールできなかったと報告しています。
Perry vs Electron
Electron は Web 技術(HTML / CSS / JS)でクロスプラットフォームのデスクトップアプリを構築できるよう、Chromium と Node.js をアプリと一緒にバンドルします。Perry は TypeScript を直接ネイティブマシンコードへコンパイルし、UI を実プラットフォームウィジェット(AppKit、UIKit、GTK4、Win32、JNI)でレンダリングします。Electron の売りは Web 技術の再利用、Perry の売りは TypeScript からのネイティブ UI 付き小型ネイティブバイナリです。
Perry vs Tauri
Tauri は Rust バックエンドと、OS 組込みの webview(Windows の WebView2、macOS の WKWebView、Linux の WebKitGTK)の中で動作するフロントエンドで、クロスプラットフォームのデスクトップ(および徐々にモバイル)アプリを構築するためのフレームワークです。Tauri アプリは OS の webview をバンドルしないため Electron より劇的に小さくなります。Perry は別の道を選びます――webview はまったくなし、HTML レンダリングもなし、TypeScript を実プラットフォームウィジェットを駆動するネイティブマシンコードへコンパイルするだけです。
Perry vs React Native
React Native では JavaScript / TypeScript で書いたコードが iOS と Android のネイティブ UI を駆動します――UI コンポーネントは JS-to-native ブリッジ(あるいは New Architecture では同じ概念形状の JSI / Fabric レイヤ)経由でプラットフォームウィジェットにマップされます。Perry は別のアプローチを取ります:TypeScript は事前にネイティブマシンコードへコンパイルされ、ネイティブ UI はランタイムブリッジではなくコンパイル済みバイナリの一部です。