比較一覧に戻る
TS-to-native コンパイラ

Perry vs Static Hermes

Perry and Static Hermes both explore ahead-of-time JavaScript/TypeScript compilation, but they have different runtimes, toolchains, target goals, and maturity. Static Hermes remains an active branch of the Hermes project; Perry ships a pre-1.0 CLI and platform stack.

技術的な事実と測定上の注意事項は、翻訳間のずれを防ぐため英語を正本として管理しています。

Static Hermes とは?

Hermes is Meta's JavaScript engine for React Native. The Static Hermes work lives on the static_h branch and includes an AOT-oriented runtime and compiler implementation; its own project discussion describes documentation and implementation as ongoing work.

Perry とは?

Perry parses TypeScript and JavaScript with SWC and compiles supported code ahead of time through LLVM. Native builds do not require an external Node.js installation or JavaScript engine, but they do statically link the Perry runtime and garbage collector. Perry is pre-1.0, implements a practical language and Node.js subset, and offers an optional embedded V8 fallback for code that needs engine semantics.

並べて比較

機能PerryStatic Hermes
Compiler pathSWC → Perry HIR → LLVMHermes Static H compiler/runtime branch
RuntimePerry runtime + GCStatic Hermes runtime
Primary product scopeCLI, server, native UI, mobile, wearable, TV, Web/WASMHermes/React Native research and runtime ecosystem
DistributionPre-1.0 CLI with release packagesSource-oriented project workflow
CompatibilityDocumented practical subsetTyped/static subset and Hermes semantics; check branch documentation

Perry が優れている点

  • +Packaged Perry CLI and documented commands
  • +Broader declared target and native UI scope
  • +Published Perry limitations and benchmark artifact

Static Hermes が優れている点

  • +Backed by the established Hermes and React Native ecosystem
  • +Deep integration potential with Hermes and React Native
  • +Active compiler research from Meta and contributors

Perry を選ぶべきとき

Choose Perry when its current CLI, target matrix, and UI stack match a product you can validate today.

Static Hermes を選ぶべきとき

Evaluate Static Hermes when React Native/Hermes integration or compiler research is the primary goal and building from its current source workflow is acceptable.

結論

Neither project should be reduced to an unsupported 'production versus research' slogan. Evaluate the current branch, tooling, semantics, and target needed by your application.

出典

Perry を試す

今日から TypeScript をネイティブにコンパイルしましょう。

はじめる