Volver a las comparativas
Runtime de TypeScript

Perry frente a Deno

Deno es un runtime moderno de JavaScript y TypeScript construido sobre V8, con soporte de primera para TypeScript, un modelo de seguridad basado en permisos y un comando `deno compile` que produce un único ejecutable empaquetando V8 con tu aplicación. Perry compila TypeScript directamente a código máquina nativo — sin V8 en la salida, sin capa de runtime, solo un pequeño binario nativo.

¿Qué es Deno?

Deno es un runtime de TypeScript y JavaScript construido en Rust sobre V8 y Tokio. Ejecuta directamente código `.ts`, lleva tooling integrado (formateador, linter, test runner, language server) y usa un modelo de permisos que requiere concesiones explícitas para acceder a red, archivos y entorno. `deno compile` produce un ejecutable autocontenido empaquetando el runtime de Deno (que incluye V8) con tu código. Deno apunta a Linux, macOS y Windows en x64 y arm64.

¿Qué es Perry?

Perry es un compilador nativo de TypeScript escrito en Rust. Compila TypeScript directamente a código máquina nativo a través de LLVM — sin V8, sin JIT, sin runtime. La salida es un único binario, normalmente de unos pocos cientos de KB a unos pocos MB para código nativo, opcionalmente mayor si optas por el runtime V8 embebido para paquetes npm que necesiten un motor JS.

Lado a lado

CaracterísticaPerryDeno
SalidaCódigo máquina nativo (LLVM)Tu código + el runtime de Deno (V8) empaquetados
Motor JavaScript en el binarioNinguno por defecto; V8 opcionalV8, siempre
Tamaño del binario hello world~330 KB~80–100 MB (incluye V8)
JITNo (compilado AOT)Sí (TurboFan de V8)
Plataformas móvilesiOS, iPadOS, AndroidNo
Watch / TV / WASM / WebwatchOS, tvOS, Wear OS, WASM, Web/JSNo
UI nativa25+ widgets vía APIs nativas de cada plataformaNo
Modelo de permisosPermisos estándar de proceso del sistema operativoPermisos granulares en runtime (--allow-net, --allow-read, etc.)
EstabilidadPre-1.0Estable (1.x / 2.x)
Construido enRustRust (sobre V8)

Dónde gana Perry

  • +Binarios drásticamente más pequeños. Un hello world de Perry es ~330 KB. Las salidas de `deno compile` incluyen V8 y se sitúan en el rango de 80–100 MB.
  • +Sin motor JavaScript en el binario. Tu TypeScript se compila a código máquina nativo, no lo interpreta V8 en runtime.
  • +Plataformas móviles, watch, TV, WASM y Web. Deno es solo servidor/escritorio.
  • +Widgets de UI nativa que mapean a AppKit, UIKit, GTK4, Win32 y JNI — no hay equivalente en Deno.
  • +Arranque en frío más rápido. Los binarios nativos compilados AOT no pagan el coste de arranque de V8.
  • +Liderazgo en microbenchmarks de cómputo en condiciones equivalentes en M1 Max donde los valores por defecto de fast-math `reassoc contract` de Perry permiten a LLVM autovectorizar y plegar acumuladores trivialmente plegables (p. ej., loop_overhead 12 ms, math_intensive 14 ms; consulta perry/benchmarks).

Dónde gana Deno

  • +Runtime maduro y estable con un largo historial y una línea 2.x activa.
  • +Modelo de permisos granular. Deno requiere `--allow-net`, `--allow-read`, etc. explícitos — útil para scripts en sandbox y código no confiable.
  • +Tooling integrado: formateador, linter, test runner, generador de docs, LSP, todo en el runtime.
  • +Ecosistema completo de V8 en runtime — todo lo que corre sobre V8 corre sobre Deno, incluidas las optimizaciones del JIT en rutas calientes de larga duración.
  • +TypeScript de primera sin un paso de compilación separado en desarrollo, con una pipeline de chequeo de tipos completamente gestionada.
  • +APIs estandarizadas de la plataforma web (fetch, Web Streams, Web Crypto) implementadas de forma nativa en el runtime.

Cuándo elegir Perry

Elige Perry si quieres un binario nativo pequeño y de arranque rápido, si distribuyes a móvil u otros destinos no servidor, si quieres UI nativa, o si quieres compilar TypeScript a un binario que no contenga un motor JS.

Cuándo elegir Deno

Elige Deno si quieres un runtime de TypeScript estable y con pilas incluidas, si valoras el sandbox de permisos, si construyes cargas de servidor o de scripting, o si necesitas compatibilidad total con el ecosistema V8 en runtime.

Veredicto

Ambos te permiten distribuir un programa TypeScript como un único binario; la diferencia está en lo que hay dentro de ese binario. Deno te da V8 + un runtime curado + un sandbox de permisos. Perry te da código máquina nativo sin motor. Deno es la mejor opción para trabajo de servidor y scripting donde importan el ecosistema y el modelo de permisos. Perry es la mejor opción cuando necesitas un binario pequeño, de arranque rápido, plataformas móviles o UI nativa.

Prueba Perry

Compila tu TypeScript a nativo hoy mismo.

Comenzar