Interpretador WebAssembly rápido em C, pequeno o bastante para microcontroladores e integrável como biblioteca em várias linguagens.
boa-dev/boa
Engine JavaScript incorporável, escrito em Rust, com lexer, parser e interpretador e amplo suporte à especificação ECMAScript.
- Estrelas
- 7,662
- Forks
- 690
- Issues abertas
- 223
- Último commit
- há 12 horas
O que é?
Boa é um lexer, parser e interpretador de JavaScript escrito em Rust. O projeto busca implementar mais de 90% da versão mais recente da especificação ECMAScript e segue trabalhando na conformidade, acompanhada com base na suíte Test262.
A engine é distribuída como um conjunto de crates Rust. A crate principal, boa_engine, permite que aplicações Rust criem um contexto de execução e avaliem código-fonte JavaScript diretamente. As crates de apoio abrangem a AST, o parser, o garbage collector, o interner de strings e recursos de runtime no estilo WebAPI. O projeto também inclui uma CLI e um REPL para executar arquivos JS pelo terminal.
Boa pode ser compilado para WebAssembly, e o projeto oferece um playground interativo no navegador. O README descreve uma configuração específica para o target wasm32-unknown-unknown, que envolve habilitar uma feature flag e configurar getrandom.
Recursos principais
- 01Lexer, parser e interpretador de JavaScript escritos em Rust.
- 02Tem como meta implementar mais de 90% da versão mais recente da especificação ECMAScript.
- 03Pode ser incorporado por meio da crate boa_engine, que oferece uma API eval simples.
- 04Inclui uma CLI e um REPL com opções para exibir a AST e usar o otimizador.
- 05Pode ser compilado para WebAssembly e inclui um playground no navegador.
Casos de uso
- Executar JavaScript em uma aplicação Rust sem depender de uma engine C++.
- Avaliar scripts ou expressões fornecidos pelo usuário em um host Rust isolado.
- Experimentar com a implementação da linguagem JavaScript ou com os componentes internos de uma engine.
- Executar JavaScript em ambientes WebAssembly.
Início rápido
- 1
Adicione o crate boa_engine ao Cargo.toml
cargo add boa_engine - 2
Copie o código de exemplo para main.rs
- 3
Execute o projeto
cargo run
Antes de usar
- Seus autores o descrevem como experimental, então talvez ainda não seja adequado para uso em produção.
- Ainda não está totalmente em conformidade com a especificação ECMAScript; afirma oferecer mais de 90% de suporte.
Tópicos
Perguntas frequentes
- O que é boa?
- Engine JavaScript incorporável, escrito em Rust, com lexer, parser e interpretador e amplo suporte à especificação ECMAScript. Boa é um lexer, parser e interpretador de JavaScript escrito em Rust. O projeto busca implementar mais de 90% da versão mais recente da especificação ECMAScript e segue trabalhando na conformidade, acompanhada com base na suíte Test262.
- boa é gratuito? Qual é a licença?
- boa é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- boa ainda é mantido?
- Manutenção ativa. O último commit de boa foi em 7 de nov. de 2026.
- Para que posso usar boa?
- Executar JavaScript em uma aplicação Rust sem depender de uma engine C++. Avaliar scripts ou expressões fornecidos pelo usuário em um host Rust isolado. Experimentar com a implementação da linguagem JavaScript ou com os componentes internos de uma engine. Executar JavaScript em ambientes WebAssembly.
- Como instalar boa?
- Adicione o crate boa_engine ao Cargo.toml: cargo add boa_engine Copie o código de exemplo para main.rs Execute o projeto: cargo run
- Onde consigo boa?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/boa-dev/boa
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
WebAssembly Micro Runtime (WAMR) é um runtime Wasm leve para sistemas embarcados, IoT, edge e outros ambientes com recursos limitados.
Fork do QuickJS que suspende JavaScript em execução, salva todo o heap em um snapshot e retoma a execução em outro processo, com suporte nativo a TypeScript.
Engine JavaScript ECMAScript 5.1 escrita em Go puro para incorporar a execução de JS em aplicações Go.
Um compilador e parser de TypeScript/JavaScript super-rápido, escrito em Rust e utilizável tanto em Rust quanto em JavaScript.
Biblioteca Go e CLI shfmt para analisar, formatar e interpretar scripts de shell em POSIX, Bash, Zsh e mksh.