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
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
- yavashark.devfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 29 de outubro de 2026
- Editoria
- CEVIU Web Dev
