A Vercel Labs lançou o scriptc, compilador experimental Apache 2.0 que gera binários nativos a partir de TypeScript, com startup até 12 vezes mais rápido que o Node, mas throughput bem menor em servidores reais.
Como o scriptc funciona por dentro
O scriptc usa o compilador real do TypeScript para parsing e checagem de tipos, converge o código para uma representação intermediária tipada e emite C legível, LLVM IR, assembly, objetos, executáveis nativos ou WebAssembly via WASI Preview 1. O repositório foi criado em sob licença Apache 2.0 e já soma cerca de mil estrelas.
Todo trecho de código cai em um de três destinos: compilado estaticamente por padrão, executado dinamicamente dentro de um motor quickjs-ng embutido de 620KB quando a flag --dynamic é passada, ou rejeitado em tempo de compilação com um código de erro SC e sugestão de reescrita. A toolchain exige Node.js 24 ou superior e instala via npm install -g scriptc.
Leia também
Web Summit Rio 2026 define datas e confirma palestrantes de peso no Riocentro
O que os benchmarks mostram: startup rápido, throughput sacrificado
Um benchmark do scriptc 0.0.16 contra Bun 1.3.12 e Node 24.18.0 registrou startup mediano de CLI de 1,78ms, contra 21,29ms do Bun e 61,78ms do Node, com memória idle de 1,9MiB em um servidor node:http sem framework. Com o Hono, porém, 62% do servidor caiu no QuickJS e o throughput desabou para mil requisições por segundo, contra mil do Bun.
Na comunidade, os números dividiram opiniões. Filip Pizlo criticou o uso de floats para todos os números e a dependência do QuickJS. Simon Willison destacou que agentes de codificação entregaram 918 mil linhas em uma semana e viu valor em gerar binários pequenos sem escrever C ou Rust. Remo Jansen falhou ao compilar o próprio compilador do TypeScript 6, mas mediu cold start de 3,6ms contra 48,9ms do Node.
Por que a comunidade recebeu o projeto com ceticismo
Um desenvolvedor testou o scriptc em todos os seus projetos locais e obteve centenas de erros de cobertura em cada um, concluindo que a ferramenta só funciona em código escrito do zero, sem bibliotecas de terceiros. Outra preocupação recorrente é a longevidade: comentaristas lembram do zerolang da Vercel, abandonado semanas após o lançamento.
A documentação em scriptc.dev lista as divergências deliberadas: strings UTF-8, memória com contagem de referência, Object.keys em ordem de declaração e process.argv[0] retornando "scriptc". O projeto se destina a macOS, Linux, Windows e WASI Preview 1, validado por testes diferenciais byte a byte contra o Node, e permanece explicitamente experimental.
Leia também:
Fonte: Infoq