Быстрый интерпретатор WebAssembly на C: достаточно компактный для микроконтроллеров и встраивания в приложения на разных языках.
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
Добавьте crate boa_engine в Cargo.toml
cargo add boa_engine - 2
Скопируйте пример кода в main.rs
- 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 Micro Runtime (WAMR) — компактная среда выполнения Wasm для встраиваемых устройств, IoT, edge-систем и других сред с ограниченными ресурсами.
Форк QuickJS, который умеет приостанавливать JavaScript, сохранять весь его heap и возобновлять выполнение в другом процессе, а также поддерживает TypeScript без дополнительных инструментов.
Движок JavaScript на чистом Go с поддержкой ECMAScript 5.1 для встраивания выполнения JS-кода в приложения на Go.
Сверхбыстрый компилятор и парсер TypeScript/JavaScript на Rust, доступный из Rust и JavaScript.
Библиотека на Go и CLI shfmt для разбора, форматирования и выполнения shell-скриптов на POSIX, Bash, Zsh и mksh.