15 pontos por dopeflamingo 2026-06-08 | 7 comentários | Compartilhar no WhatsApp

O paradigma tradicional de desenvolvimento com TypeScript sempre partiu do pressuposto de transpilar código TS, uma abstração de alto nível, para JavaScript e depois executá-lo sobre engines JIT pesadas como V8 ou JavaScriptCore, usadas por Node.js, Bun e Deno.

Surgido recentemente no cenário open source, o Perry é um compilador Native-First baseado em Rust que busca eliminar completamente esse modelo tradicional de runtime e compilar código TypeScript diretamente em binários nativos standalone.


💡 Arquitetura principal e características

  • No Runtime (runtime zero): sem camadas intermediárias pesadas como V8, Electron ou JVM, ele faz o parsing do código TS com SWC e gera diretamente código de máquina da plataforma-alvo por meio da infraestrutura LLVM.

  • Build multiplataforma a partir de uma única base de código: gera binários para macOS, iOS, Android, Linux e Windows a partir de um único código TypeScript.

  • Suporte real a TypeScript: em vez de uma "linguagem separada parecida com TS", como o AssemblyScript, a proposta é dar suporte ao ecossistema completo de TypeScript com base no Strict Mode.

  • Compatibilidade com frameworks de UI ultraleves: oferece binários de apenas alguns MB e cold start em menos de um segundo, próximo de 0 ms. Além de integrar GUIs nativas de plataforma como SwiftUI, GTK4 e WinUI, também permite escrever JSX por meio de seu próprio renderizador React.


🛠️ Estado atual do desenvolvimento e limitações (com feedback do Hacker News)
Como é um projeto que vem chamando bastante atenção no HN e em outros lugares, os desafios para chegar ao nível de produção também estão sendo discutidos com clareza.

  • Limitações das características dinâmicas de JS: estilos de JavaScript dinâmico, como injetar campos/métodos arbitrários em objetos em tempo de execução ou alterar protótipos, não são suportados devido à natureza da compilação estática; o funcionamento se baseia em um subconjunto estrito e determinístico de TS.

  • Emulação de módulos nativos do Node.js: atualmente, a biblioteca padrão HTTP do Node.js está sendo emulada com base no ecossistema Rust, usando hyper, rustls e tokio. Já conseguiu compilar alguns módulos, como Fastify, e está evoluindo rapidamente, mas a compatibilidade de 100% com bibliotecas mais complexas do ecossistema, como o Express, que envolvem imports dinâmicos, ainda é um desafio em estágio alfa.


# O uso é extremamente simples  
$ perry compile src/main.ts -o myapp  
$ ./myapp  # executa um binário nativo puro, sem dependências  

Como uma tentativa de expandir o TypeScript, antes restrito ao ecossistema web, para programação de sistemas e aplicativos nativos ultraleves, é um projeto que deve interessar bastante a quem acompanha arquiteturas de alto desempenho e pipelines de compilação com LLVM.

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

7 comentários

 
cloverhearts 2026-06-11

Estou torcendo por isso

 
tsboard 2026-06-10

É uma abordagem interessante. Só a remoção do runtime já é um grande ganho!

 
jeeeyul 2026-06-10

Parece meio isso mesmo. Mas, sinceramente, fico pensando que a segurança de memória provavelmente vai ser um problema sério.

E, se não precisa de lookup dinâmico, será que faz sentido desenvolver em script desde o início?

 
shakespeares 2026-06-09

A sonoridade de perry é boa.

 
sea715 2026-06-09

Interessante.

 
ohah173 2026-06-09

Acho que a ideia e a abordagem são realmente muito boas.
Parece que também suporta a sintaxe do React, e vendo que ainda não oferece suporte a decorators e coisas do tipo, por enquanto parece mais algo para encarar em projetos novos do que para migrar programas existentes.

Se, conforme o roadmap, isso chegar a um nível em que a migração seja possível sem custos significativos, parece que builds multiplataforma com uma única linguagem poderão ficar bem mais limpos do que hoje, e muitos dos gargalos de desempenho causados pelos builds multiplataforma feitos com JavaScript também devem desaparecer.

Por outro lado, fico pensando que deve ser extremamente difícil garantir compatibilidade e os mesmos resultados em múltiplas plataformas, e, com a minha visão limitada, também acho que a manutenção não deve ser nada fácil, mesmo na era da IA. Tirando o fato de que o criador provavelmente vai penar bastante, estou realmente bem animado.

 
heycalmdown 2026-06-09

Interessante.