Voltar

Nova engine JavaScript embarcável em Rust, Yavashark chega com 82% de aprovação no test262

Aprofundamento CEVIU

Aprofundamento

A Yavashark é uma engine JavaScript pequena, embarcável e fácil de estender, escrita em Rust. Segundo o anúncio no site do projeto, ela passa em cerca de 82% do test262, tem suporte a Temporal (via crate temporal_rs, do Boa, também usada no V8) e a Intl (via crate icu4x). Muita coisa ainda falta ou está pela metade. O desenvolvimento começou em 17 de março de 2024, como projeto paralelo de uma única pessoa, com mais de 4200 commits no repositório da engine.

O próprio autor admite que a engine é lenta hoje. Ela usa basicamente um interpretador tree-walking, com bytecode só para async/await, e não tem hidden classes, inline caches, NaN-boxing nem layout eficiente de objetos. A extensão é feita ligando funções e métodos Rust ao JavaScript por macro. Há recursos experimentais compilados à parte: API de TCP e HTTP, filesystem e I/O, e um começo de timers. A CLI já roda TypeScript e React com TypeScript, incluindo react e react-dom completos.

O roadmap cita NaN-boxing e novo formato de objetos (perto de ficar prontos), um bytecode novo com inline caches e um GC concorrente, móvel e geracional, pensado para servir também ao resto do ecossistema Rust. Num protótipo com 19 microbenchmarks, o interpretador com o novo GC ficou em média 3,5× mais rápido que o modo jitless do V8 e venceu em todos. Em exceções e generators, superou até o V8 com JIT. O autor avisa que o resultado deve ser visto com cautela, porque a integração à engine real pode trazer lentidão.

O que mudou

Não há evolução da Yavashark na cobertura anterior, que não tratou desse projeto. O que existe é contexto do ecossistema: em 21 de outubro de 2026, o CEVIU noticiou "Cloudflare e VoidZero portam o compilador do TypeScript para Rust e chegam a 8x mais velocidade", e em 8 de maio de 2026, "Rolldown 1.0 é Lançado: Um Novo Padrão para Bundlers JavaScript em Rust". São projetos distintos, mas mostram Rust ganhando espaço no tooling JavaScript.

Por que isso importa

Para quem desenvolve, a Yavashark ainda é um projeto para testar e acompanhar, não para produção: a própria descrição admite lacunas e velocidade modesta. Para quem precisa embarcar JavaScript em aplicações Rust, a ligação por macro e o suporte a Temporal e Intl merecem uma olhada no playground e nos exemplos do repositório. Os números de benchmark são de protótipo, então convém esperar a integração real.

Linha do tempo

  1. Yavashark é anunciada com 82% de aprovação no test262, suporte a Temporal e Intl e CLI que roda TypeScript.

Perguntas frequentes

O que é a Yavashark?

É uma engine JavaScript embarcável escrita em Rust, pequena e fácil de estender. Segundo o anúncio, passa em cerca de 82% do test262. Foi criada como projeto paralelo por uma única pessoa, que aceita contribuições.

A Yavashark é rápida?

Hoje, não: o autor diz que é lenta, pois usa sobretudo um interpretador tree-walking. Um protótipo com novo GC ficou em média 3,5× mais rápido que o V8 em modo jitless em 19 microbenchmarks, mas o autor pede cautela porque a integração real pode piorar o resultado.

Dá para rodar TypeScript e React nela?

Sim, pela CLI. O anúncio informa que ela já executa TypeScript e React com TypeScript, incluindo as bibliotecas react e react-dom completas, com demos no repositório da engine.

Como estender a engine com código Rust?

Basta ligar funções e métodos Rust ao JavaScript por meio de uma macro. Há também recursos experimentais, como API de TCP e HTTP, filesystem e I/O e timers iniciais, todos intencionalmente pequenos. Exemplos estão nas pastas examples e demos do repositório.

Fontes

Avalie este artigo:
Categoria
CEVIU Web Dev
Publicado
29 de outubro de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser