Repolode
boa-dev

boa-dev/boa

Встраиваемый движок JavaScript на Rust с лексером, парсером и интерпретатором, поддерживающий значительную часть спецификации ECMAScript.

Звёзды
7,662
Форки
690
Открытые issues
223
Последний коммит
13 часов назад

Что это?

Boa — лексер, парсер и интерпретатор JavaScript, написанные на Rust. Проект стремится реализовать более 90% актуальной спецификации ECMAScript и продолжает проверять соответствие стандарту с помощью набора тестов Test262.

Движок распространяется в виде набора Rust-крейтов. Основной крейт, boa_engine, позволяет Rust-приложениям создавать контекст выполнения и напрямую выполнять исходный код JavaScript. Вспомогательные крейты отвечают за AST, парсер, сборщик мусора, интернер строк и функции среды выполнения в стиле WebAPI. Кроме того, в проект входят CLI и REPL для запуска JS-файлов из терминала.

Boa можно скомпилировать в WebAssembly, а для него доступна интерактивная площадка в браузере. В README описана отдельная настройка для целевой платформы wasm32-unknown-unknown: нужно включить флаг функции и настроить getrandom.

Ключевые возможности

  • 01Лексер, парсер и интерпретатор JavaScript, написанные на Rust.
  • 02Поддерживает более 90% актуальной спецификации ECMAScript.
  • 03Встраивается в приложения через крейт boa_engine с простым API eval.
  • 04Включает CLI и REPL с возможностью вывода AST и настройками оптимизатора.
  • 05Компилируется в WebAssembly и включает площадку для работы в браузере.

Сценарии использования

  • Запуск JavaScript в Rust-приложении без зависимости от движка на C++.
  • Выполнение пользовательских скриптов или выражений в изолированной среде на Rust.
  • Изучение реализации языка JavaScript или внутреннего устройства движков.
  • Запуск JavaScript в средах WebAssembly.

Быстрый старт

  1. 1

    Добавьте crate boa_engine в Cargo.toml

    cargo add boa_engine
  2. 2

    Скопируйте пример кода в main.rs

  3. 3

    Запустите проект

    cargo run

Что важно знать

  • Авторы называют его экспериментальным, поэтому пока он может быть не готов для использования в production.
  • Пока не полностью соответствует спецификации ECMAScript; заявлена поддержка более 90% спецификации.

Темы

Частые вопросы

Что такое boa?
Встраиваемый движок JavaScript на Rust с лексером, парсером и интерпретатором, поддерживающий значительную часть спецификации ECMAScript. Boa — лексер, парсер и интерпретатор JavaScript, написанные на Rust. Проект стремится реализовать более 90% актуальной спецификации ECMAScript и продолжает проверять соответствие стандарту с помощью набора тестов Test262.
boa можно использовать бесплатно? Какая у него лицензия?
boa распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
boa всё ещё поддерживается?
Активно поддерживается. Последний коммит в boa — 7 нояб. 2026 г..
Для чего можно использовать boa?
Запуск JavaScript в Rust-приложении без зависимости от движка на C++. Выполнение пользовательских скриптов или выражений в изолированной среде на Rust. Изучение реализации языка JavaScript или внутреннего устройства движков. Запуск JavaScript в средах WebAssembly.
Как установить boa?
Добавьте crate boa_engine в Cargo.toml: cargo add boa_engine Скопируйте пример кода в main.rs Запустите проект: cargo run
Где скачать boa?
Исходный код и инструкции по установке — на GitHub: https://github.com/boa-dev/boa

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Быстрый интерпретатор WebAssembly на C: достаточно компактный для микроконтроллеров и встраивания в приложения на разных языках.

8,1 тыс.+3 за неделю538CMITАктивно поддерживаетсяОбновлён в прошлом месяце

Форк QuickJS, который умеет приостанавливать JavaScript, сохранять весь его heap и возобновлять выполнение в другом процессе, а также поддерживает TypeScript без дополнительных инструментов.

483+30 за неделю10COtherАктивно поддерживаетсяОбновлён 5 дней назад