Repolode
boa-dev

boa-dev/boa

Un motor de JavaScript integrable, escrito en Rust, con lexer, parser e intérprete y amplia compatibilidad con la especificación ECMAScript.

Estrellas
7,662
Forks
690
Issues abiertos
223
Último commit
hace 14 horas

¿Qué es?

Boa es un lexer, parser e intérprete de JavaScript escrito en Rust. Su objetivo es implementar más del 90 % de la versión más reciente de la especificación ECMAScript, y su desarrollo incluye un trabajo continuo de conformidad que se sigue con la suite Test262.

El motor se distribuye como un conjunto de crates de Rust. El crate principal, boa_engine, permite que las aplicaciones Rust creen un contexto de ejecución y evalúen código fuente JavaScript directamente. Los crates complementarios incluyen el AST, el parser, el recolector de basura, el interner de strings y funciones de ejecución al estilo de WebAPI. El proyecto también incluye un CLI y un REPL para ejecutar archivos JS desde la terminal.

Boa se puede compilar a WebAssembly y el proyecto ofrece un entorno interactivo en el navegador. El README describe una configuración específica para el target wasm32-unknown-unknown que requiere habilitar un feature flag y configurar getrandom.

Funciones clave

  • 01Lexer, parser e intérprete de JavaScript escritos en Rust.
  • 02Su objetivo es implementar más del 90 % de la versión más reciente de la especificación ECMAScript.
  • 03Se integra mediante el crate boa_engine, que ofrece una API eval sencilla.
  • 04Incluye un CLI y un REPL con opciones para volcar el AST y usar el optimizador.
  • 05Se puede compilar a WebAssembly e incluye un entorno interactivo en el navegador.

Casos de uso

  • Ejecutar JavaScript dentro de una aplicación Rust sin depender de un motor de C++.
  • Evaluar scripts o expresiones proporcionados por usuarios en un host Rust aislado.
  • Experimentar con la implementación del lenguaje JavaScript o con los componentes internos de un motor.
  • Ejecutar JavaScript en entornos WebAssembly.

Inicio rápido

  1. 1

    Añade el crate boa_engine a Cargo.toml

    cargo add boa_engine
  2. 2

    Copia el código de ejemplo en main.rs

  3. 3

    Ejecuta el proyecto

    cargo run

Antes de usarlo

  • Sus autores lo describen como experimental, por lo que quizá todavía no sea adecuado para producción.
  • Aún no cumple por completo con la especificación ECMAScript; afirma ofrecer más del 90 % de compatibilidad.

Temas

Preguntas frecuentes

¿Qué es boa?
Un motor de JavaScript integrable, escrito en Rust, con lexer, parser e intérprete y amplia compatibilidad con la especificación ECMAScript. Boa es un lexer, parser e intérprete de JavaScript escrito en Rust. Su objetivo es implementar más del 90 % de la versión más reciente de la especificación ECMAScript, y su desarrollo incluye un trabajo continuo de conformidad que se sigue con la suite Test262.
¿boa es gratuito? ¿Qué licencia tiene?
boa es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿boa sigue mantenido?
Mantenimiento activo. El último commit de boa fue el 7 nov 2026.
¿Para qué puedo usar boa?
Ejecutar JavaScript dentro de una aplicación Rust sin depender de un motor de C++. Evaluar scripts o expresiones proporcionados por usuarios en un host Rust aislado. Experimentar con la implementación del lenguaje JavaScript o con los componentes internos de un motor. Ejecutar JavaScript en entornos WebAssembly.
¿Cómo se instala boa?
Añade el crate boa_engine a Cargo.toml: cargo add boa_engine Copia el código de ejemplo en main.rs Ejecuta el proyecto: cargo run
¿Dónde consigo boa?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/boa-dev/boa

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados