Ir para o conteúdo principal
ArchPrompts
Voltar ao blog
Caderno técnico / Nota de campo

Radar Tech: Vercel Lança Scriptc — Compilador TypeScript-Nativo que Elimina o Runtime JS

Vercel Labs abre o código do Scriptc, compilador que traduz TypeScript diretamente para código nativo via LLVM, sem engine JavaScript. Cold start cai de centenas de ms para <5ms. Impactos para arquitetura de microsserviços e serverless.

João Gabriel
2 min de leitura
Radar Tech: Vercel Lança Scriptc — Compilador TypeScript-Nativo que Elimina o Runtime JS
AP / Prancha visual 01
Leitura principal

Scriptc: TypeScript sem Runtime JavaScript

Na última semana, a Vercel Labs lançou o Scriptc (github.com/vercel-labs/scriptc), um compilador TypeScript-para-nativo que elimina completamente a necessidade de um runtime JavaScript (Node.js, Bun ou Deno) para executar código TypeScript.

O compilador funciona em duas etapas:

  1. Análise semântica do TypeScript — types, imports, exports, type erasure
  2. Geração de LLVM IR → código de máquina nativo (ELF, WASM)

O resultado é um binário independente que não carrega V8, não faz JIT, não precisa de npm install em produção.

Por que isso importa para arquitetura de software?

Cold Start

O impacto mais imediato é em cold start. Um microsserviço Node.js típico leva 150-500ms para inicializar (carregar runtime, resolver módulos, executar código). Com Scriptc, esse número cai para 1-5ms — o binário já está em código de máquina.

Para arquiteturas serverless (AWS Lambda, Cloudflare Workers, Vercel Functions), isso significa:

  • SLA de 50ms viável sem provisionamento constante
  • Eliminação da prática de "keep-warm" (pings a cada 5min)
  • Redução de footprint de ~25-35MB para ~1MB por função

Impacto em Custos

Memória é o principal driver de custo em Kubernetes (requests/limits). Um pod que antes consumia 256MB pode rodar com 16MB. Em frotas de 50+ microsserviços, a economia mensal pode chegar a dezenas de milhares de dólares.

Trade-offs Conhecidos

Nem tudo são flores. O Scriptc não suporta:

  • eval() e new Function() — reflection dinâmico
  • Módulos npm que dependam de runtime JavaScript (ex.: fast-json-stringify com reviver function)
  • require() dinâmico em tempo de execução
  • Módulos que acessam V8 API diretamente

Isso significa que nem todo microsserviço pode migrar. A abordagem recomendada é um ADR (Architecture Decision Record) que avalie serviço por serviço, pesando ganho de desempenho versus custo de compatibilidade.

Contexto do Mercado

O Scriptc chega em um momento onde várias frentes disputam o espaço de "TypeScript sem Node":

  • Bun (JIT, runtime próprio, cold start ~50ms)
  • Deno (V8 isolado, cold start ~80ms)
  • tsx + Node --experimental-strip-types (Node 22+, cold start ~200ms)
  • Rust puro (zero compatibilidade TS, máximo desempenho)

Cada opção ocupa um ponto diferente na curva desempenho × compatibilidade. O Scriptc é o primeiro a oferecer compatibilidade semântica total com TypeScript (sem runtime) — o que pode ser um divisor de águas para times que querem desempenho nativo sem reescrever o stack.

Recomendação de Arquitetura

Para times avaliando a adoção:

  1. Mapeie dependências — identifique quais microsserviços dependem de bibliotecas com eval/reflection
  2. Comece por serviços stateless — APIs REST puras, sem ORM complexo, são os melhores candidatos
  3. Shadow deploy — use tráfego espelhado para validar comportamento antes de rotear usuários reais
  4. Meça cold start real — não confie apenas nos benchmarks, meça no seu hardware e carga

O Scriptc ainda é um projeto jovem (repositório da Vercel Labs, não production-ready). Mas a direção é clara: a era do runtime JS monolítico para microsserviços pode estar com os dias contados.

Do conceito à execução

Ferramentas práticas para levar as decisões desta nota ao seu próximo projeto.

07 / selecionados
Arquitetura de isolamento KVM antes do patch — o caminho do escape guest→host via Januscape (CVE-2026-53359)
ADR
01 / 03

Mitigação de Escape KVM Guest-to-Host — CVE-2026-53359 (Januscape)

por João Gabriel

gpt-4GPT-4oclaude-3-opus+3
(0)
0 vendas
R$ 23,94
Fluxo de Decisão do ADR: do gatilho (lançamento TS 7.0) até a decisão registrada e implementação, passando por avaliação técnica, análise de riscos e estratégia de migração.
ADR
01 / 03

Adoção do TypeScript 7.0: Pacote Completo para Decisões Arquiteturais de Migração de Compilador

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 29,94
Fluxo de Decisão do ADR — processo completo em 5 etapas do incidente à verificação
ADR
01 / 03

Mitigação de Riscos em Cadeia de Suprimento: Pacote Multi-Arquivo para Decisões Arquiteturais com Matriz de Pesos, Guardrails e Plano de Implementação

por João Gabriel

gpt-4GPT-4oclaude-3-opus+5
(0)
0 vendas
R$ 29,94
Modelo de ameaças: as 4 superfícies de ataque em agentes de codificação com IA, inspiradas pelo Cursor 0day e Memory Heist.
ADR
01 / 02

Adoção de Agentes de Codificação com IA com Guardrails de Segurança (6 arquivos)

por João Gabriel

gpt-4claude-3.5-sonnetclaude-4+2
(0)
0 vendas
R$ 29,94
Matriz de Decisão — Comparação ponderada entre GPT-5.6 Sol, Claude 4 Opus e Gemini 3 Ultra em 5 critérios arquiteturais.
ADR
01 / 02

Decisão de Adoção de Modelo de IA com Acesso Governamental (GPT-5.6 Sol)

por João Gabriel

gpt-4GPT-4oclaude-3-opus+3
(0)
0 vendas
R$ 29,94
Fluxo de Decisão do ADR — 5 etapas do processo de documentação de decisão arquitetural, desde o contexto até os artefatos de saída.
ADR
01 / 03

Adoção de Framework: Pacote Multi-Arquivo para Decisões Arquiteturais com Matriz de Pesos e Plano de Migração

por João Gabriel

gpt-4claude-3-opusclaude-3.5-sonnet+2
(0)
0 vendas
R$ 29,94
Fluxo de Decisão do ADR — etapas desde o gatilho até o rollout, conforme o template estruturado do pacote.
ADR
01 / 03

ADR de Adoção de Compilador TypeScript Nativo — Decisão Arquitetural com Scriptc da Vercel

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 49,90