15 puntos por dopeflamingo 2026-06-08 | 7 comentarios | Compartir por WhatsApp

El paradigma tradicional de desarrollo con TypeScript ha dado por hecho transpilar código TS, una abstracción de alto nivel, a JavaScript, y luego ejecutarlo sobre motores de runtime JIT pesados como V8 o JavaScriptCore (Node.js, Bun, Deno, etc.).

Perry, que apareció recientemente en el ecosistema open source, es un compilador Native-First basado en Rust que busca eliminar por completo ese modelo tradicional de runtime y compilar código TypeScript directamente a binarios nativos standalone.


💡 Arquitectura y características clave

  • No Runtime (cero runtime): sin capas intermedias pesadas como el motor V8, Electron o la JVM, analiza código TS con SWC y lo construye directamente a código máquina de la plataforma objetivo mediante la infraestructura de LLVM.

  • Compilación multiplataforma desde una sola base de código: genera binarios para macOS, iOS, Android, Linux y Windows a partir de una única base de código TypeScript.

  • True TypeScript Support: en lugar de ser un "lenguaje aparte similar a TS" como AssemblyScript, apunta a soportar de forma completa el ecosistema de TypeScript basado en Strict Mode.

  • Compatibilidad con frameworks de UI ultraligeros: presume binarios de apenas unos pocos MB y un cold start sub-second cercano a 0 ms. Además de integrarse con GUI nativas de plataforma como SwiftUI, GTK4 y WinUI, también permite escribir JSX mediante su propio renderizador de React.


🛠️ Estado de desarrollo y limitaciones (reflejando comentarios de Hacker News)
Como es un proyecto que ha generado mucho interés recientemente en HN y otros sitios, también se están discutiendo con claridad los retos para llevarlo a nivel de producción.

  • Restricciones de las características dinámicas de JS: estilos dinámicos de JavaScript como inyectar campos o métodos arbitrarios en objetos en runtime o modificar prototipos no están soportados por la naturaleza de la compilación estática, y el proyecto opera sobre un subconjunto estricto y determinista de TS.

  • Emulación de módulos integrados de Node.js: actualmente emula la biblioteca estándar HTTP de Node.js apoyándose en el ecosistema Rust, incluyendo hyper, rustls y tokio. Ya ha logrado compilar algunos módulos como Fastify y avanza con rapidez, pero la compatibilidad al 100% con librerías complejas del ecosistema, como Express, donde se mezclan imports dinámicos, sigue siendo un desafío en etapa alfa.


# El uso es extremadamente simple  
$ perry compile src/main.ts -o myapp  
$ ./myapp  # Ejecuta un binario nativo puro sin dependencias  

Como un intento por expandir TypeScript, hasta ahora encerrado en el ecosistema web, hacia la programación de sistemas y las apps nativas ultraligeras, es un proyecto que vale la pena seguir para quienes tienen interés en arquitecturas de sistemas de alto rendimiento o en pipelines de compiladores con LLVM.

GitHub: https://github.com/PerryTS/perry

7 comentarios

 
cloverhearts 2026-06-11

Los apoyo.

 
tsboard 2026-06-10

Es un enfoque interesante. Parece un gran logro incluso solo con eliminar el runtime.

 
jeeeyul 2026-06-10

Parece algo así. Pero, sinceramente, sí me da la impresión de que la seguridad de memoria podría ser un problema serio.

Y si no hace falta lookup dinámico, ¿de verdad hay alguna razón para desarrollar en un lenguaje de script desde el principio?

 
shakespeares 2026-06-09

perry suena bien.

 
sea715 2026-06-09

Qué interesante.

 
ohah173 2026-06-09

La idea o el enfoque me parecen realmente muy buenos.
Parece que también soporta la sintaxis de React, y viendo que todavía no soporta cosas como decoradores, da la impresión de que por ahora sería más para animarse con proyectos nuevos que para migrar programas existentes.

Si según la hoja de ruta llega a un nivel en el que se pueda migrar sin costos adicionales importantes, creo que construir para múltiples plataformas con un solo lenguaje podría quedar más limpio que ahora, y también desaparecerían muchos cuellos de botella de rendimiento causados por los builds multiplataforma que antes se hacían con JavaScript.

Eso sí, me da la impresión de que garantizar compatibilidad y resultados idénticos en múltiples plataformas va a ser tremendamente difícil, y desde mi humilde punto de vista, el mantenimiento no parece que vaya a ser fácil ni siquiera en plena era de la IA; salvo por el hecho de que siento que el creador va a sufrir muchísimo, la verdad es que genera muchas expectativas.

 
heycalmdown 2026-06-09

Interesante.