# Planejador de orçamento de desempenho e regras de link WASM / WASI Preview 2 Component Model + JSPI

Planeja uma implantação de componentes WebAssembly: grafo de links estilo wac com comandos plug, suporte WASI Preview 2 em cinco runtimes, avisos de JSPI e orçamentos de tamanho / cold start / TTFB / memória.

> Página canônica: https://elysiatools.com/pt/tools/wasm-wasi-component-model-jspi-wasi-copilot-perf-budget-and-link-rule-planner

- **Categoria:** Validation

- **Palavras-chave:** wasm, wasi, modelo de componentes, regras de link, cold start, streaming, orçamento, matriz de runtimes

## Visão geral

Os componentes são analisados num grafo de links socket/plug estilo wac com ordenação topológica, detecção de ciclos e comandos wac plug / wac targets gerados; a matriz de suporte separa o WASI 0.2 estável (wasi-cli, wasi:http/proxy) das propostas (keyvalue, config) entre wasmtime, Wasmer, WasmEdge, WAMR e V8; tamanho, cold start p50/p95/p99, TTFB em streaming e memória por instância são modelados contra seus orçamentos; o JSPI é marcado como nativo do V8 mas não padronizado pela W3C.

## Entradas

- **Manifesto de componentes** (textarea): One per line: name, imports, exports, size_kb (use "-" for empty lists) e.g. api-gateway, wasi:http/incoming-handler@0.2.0 wasi:keyvalue/store@0.1.0, wasi:http/outgoing-handler@0.2.0, 850 auth-plug, -, wasi:http/incoming-handler@0.2.0, 220 kv-cache, -, wasi:keyvalue/store@0.1.0, 150
- **Runtimes alvo** (select)
- **Interfaces WASI exigidas** (select)
- **Usa JSPI (ponte async↔sync)** (checkbox)
- **Respostas em streaming (wasi:http)** (checkbox)
- **Instâncias concorrentes esperadas** (number)
- **Memória linear por instância (MB)** (number)
- **Orçamento de tamanho (KB)** (number)
- **Orçamento de cold start p99 (ms)** (number)
- **Orçamento TTFB (ms)** (number)

## Quando usar

- Ao arquitetar microsserviços ou proxies HTTP compostos por múltiplos componentes WebAssembly via ferramentas como wac.
- Para validar a compatibilidade de interfaces WASI 0.2 estáveis e propostas (como keyvalue e config) entre Wasmtime, Wasmer, WasmEdge, WAMR e V8.
- Durante a definição de orçamentos de desempenho para cold start p99, tempo até o primeiro byte (TTFB) e alocação de memória linear por instância concorrente.

## Como funciona

- Analisa a lista de componentes, importações, exportações e tamanhos em KB para construir um grafo de links estruturado com ordenação topológica e detecção de ciclos.
- Compara as interfaces exigidas com a matriz de suporte dos runtimes selecionados (Wasmtime, Wasmer, WasmEdge, WAMR e V8), sinalizando propostas em andamento e status do JSPI.
- Calcula as métricas estimadas de cold start (p50/p95/p99), TTFB com ou sem streaming e consumo agregado de memória contra os orçamentos configurados.
- Gera a sequência de comandos de composição wac plug / wac targets e o relatório detalhado de conformidade com os limites estipulados.

## Casos de uso

- Planejamento de gateways de API edge orquestrados via WASI HTTP Proxy e plugs de autenticação.
- Validação de micro-runtimes embarcados (como WAMR AOT) para funções CLI com orçamentos restritos de cold start submilissegundo.
- Avaliação de viabilidade de migração de cargas de trabalho async de Node.js/V8 para isolados WebAssembly com JSPI.

## Perguntas frequentes

### Como o JSPI é avaliado pelo planejador?

O JSPI é identificado como nativo no runtime V8 para pontes assíncronas/síncronas, com aviso explícito de que ainda não é um padrão finalizado pela W3C.

### Qual a diferença de suporte entre interfaces estáveis e propostas do WASI?

Interfaces como wasi:cli e wasi:http/proxy pertencem ao WASI 0.2 estável, enquanto wasi:keyvalue e wasi:config são sinalizadas como propostas com suporte restrito em certos runtimes.

### Como as respostas em streaming afetam o orçamento de TTFB?

Com streaming ativado, o TTFB é modelado a partir do cold start inicial e tempo de despacho do primeiro chunk; sem streaming, o TTFB reflete o processamento do payload completo.

### Como a ferramenta detecta problemas na ligação de componentes?

Ela realiza ordenação topológica sobre os pares de importação/exportação e alerta caso encontre dependências circulares ou imports não atendidos.

### Como a memória linear por instância impacta a projeção total?

A ferramenta multiplica a memória linear estipulada pelo número de instâncias concorrentes esperadas, adicionando o overhead do runtime para aferir a viabilidade operacional.

## Ferramentas relacionadas

- [Verificador de citações de códigos municipais dos EUA (Municode) com detecção de renumeração](https://elysiatools.com/pt/tools/us-state-county-municode-code-of-ordinances-section-subsection-citation-link-checker): Analisa citações de códigos municipais em cinco níveis (Title/Chapter/Article/Section/Subsection/Appendix), gera citações jurídicas Bluebook (Regra 12.9.2), detecta renumeração após ordenanças recentes (lacunas, duplicatas, desordem) e verifica opcionalmente links hospedados Municode / American Legal / eCode360.
- [Calculadora de soma de verificação Mod-11](https://elysiatools.com/pt/tools/mod11-checksum): Valida ou gera números com o algoritmo de dígito de controle Modulus-11 (ISO 7064) com esquemas ISBN-10 (10..2), ID norueguesa (3,7,6,1,8,9,4,5,2) e genérico 2-7.
- [Gerador de ideias de domínio com IA](https://elysiatools.com/pt/tools/ai-domain-name-idea-generator): Insira palavras-chave da marca e a IA gera até 10 ideias de domínio, filtrando as já registradas via DNS + RDAP. Para empreendedores e desenvolvedores.
- [Explicador de Expressões Cron](https://elysiatools.com/pt/tools/cron-expression-explainer): Analisa uma expressão cron (5/6 campos ou Quartz) em uma descrição em linguagem natural, detalha os campos e lista as próximas N execuções em qualquer zona IANA, com explicação por IA
- [Coach de cycle time e throughput Kanban](https://elysiatools.com/pt/tools/kanban-cycle-time-throughput-coach): Importe carimbos criado→iniciado→resolvido de CSV (estilo Jira ou simples) e receba métricas de fluxo como agile coaches leem: percentis de lead/cycle time, idade do WIP, throughput por dia/semana/mês, um diagrama de fluxo acumulado e uma checagem da Lei de Little.
- [Testador de par de chaves e encapsulamento ML-KEM / Kyber](https://elysiatools.com/pt/tools/ml-kem-kyber-keypair-and-encapsulation-tester): Gera pares de chaves ML-KEM-512/768/1024 (FIPS 203 / CRYSTALS-Kyber), encapsula um segredo compartilhado aleatório com a chave pública, desencapsula com a chave privada e verifica a igualdade — conferindo ao vivo os tamanhos exatos dos três conjuntos de parâmetros.
- [Gerador de PKCE Code Verifier e Challenge](https://elysiatools.com/pt/tools/pkce-code-verifier-generator): Gera, valida e verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Três modos: (1) gerar um par novo a partir de bytes aleatórios criptográficos (256/384/512/768 bits), (2) auditar um verifier existente frente ao RFC — comprimento (43–128), charset \[A-Za-z0-9-._~\] e ≥256 bits de entropia, e (3) verificar um par recalculando BASE64URL(SHA256(verifier)). Opcionalmente constrói a URL completa de autorização e o corpo de troca de token. Complementa o nonce-generator genérico (que só emite o par) com auditoria de conformidade RFC e verificação de pares.
- [Verificador de cabeçalhos de segurança](https://elysiatools.com/pt/tools/security-headers-checker): Audita cabeçalhos de resposta HTTP para conformidade de segurança — analisa os cabeçalhos brutos que você cola (sem rede) e os classifica conforme o conjunto de cabeçalhos seguros OWASP com verificações em nível de valor: HSTS max-age, CSP unsafe-inline/eval, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP e mais. Retorna uma nota (A+ a F) mais constatações por cabeçalho com recomendações prontas para copiar.

## Exemplos

- [WebAssembly (WASM) Computação de Alta Performance](https://elysiatools.com/pt/samples/webassembly): WebAssembly para computação de alta performance baseada em navegador com velocidade quase nativa
- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Amostras do Visualizador WASM](https://elysiatools.com/pt/samples/wasm-viewer-samples): Uma amostra WASM para visualização no navegador
- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
