Repolode
boa-dev

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. 1

    Adicione o crate boa_engine ao Cargo.toml

    cargo add boa_engine
  2. 2

    Copie o código de exemplo para main.rs

  3. 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