마이크로컨트롤러에도 올릴 수 있을 만큼 작고, 다양한 언어의 라이브러리로 임베딩할 수 있는 고속 C 기반 WebAssembly 인터프리터입니다.
boa-dev/boa
Rust로 작성된 임베디드 JavaScript 엔진으로, 렉서·파서·인터프리터를 제공하며 ECMAScript 사양을 폭넓게 지원합니다.
- 스타
- 7,659
- 포크
- 687
- 열린 이슈
- 223
- 마지막 커밋
- 6일 전
어떤 프로젝트인가요?
Boa는 Rust로 작성된 JavaScript 렉서, 파서, 인터프리터입니다. 최신 ECMAScript 사양의 90% 이상을 구현하는 것을 목표로 하며, Test262 테스트 스위트를 기준으로 지속적으로 적합성 작업을 진행하고 있습니다.
이 엔진은 여러 Rust 크레이트로 배포됩니다. 메인 크레이트인 boa_engine을 사용하면 Rust 애플리케이션에서 실행 컨텍스트를 만들고 JavaScript 소스 코드를 바로 평가할 수 있습니다. 함께 제공되는 크레이트에는 AST, 파서, 가비지 컬렉터, 문자열 인터너, WebAPI 스타일의 런타임 기능이 포함되어 있으며, 터미널에서 JS 파일을 실행할 수 있는 CLI와 REPL도 제공됩니다.
Boa는 WebAssembly로 컴파일할 수 있으며, 브라우저에서 사용할 수 있는 라이브 플레이그라운드도 제공합니다. README에는 wasm32-unknown-unknown 타깃을 위한 별도 설정이 설명되어 있는데, 여기에는 feature flag 활성화와 getrandom 설정이 포함됩니다.
핵심 기능
- 01Rust로 작성된 JavaScript 렉서, 파서, 인터프리터입니다.
- 02최신 ECMAScript 사양의 90% 이상을 목표로 합니다.
- 03간단한 eval API를 제공하는 boa_engine 크레이트를 통해 임베드할 수 있습니다.
- 04AST 덤프와 옵티마이저 옵션을 지원하는 CLI와 REPL을 포함합니다.
- 05WebAssembly로 컴파일할 수 있으며 브라우저 플레이그라운드를 제공합니다.
활용 사례
- C++ 엔진에 의존하지 않고 Rust 애플리케이션에서 JavaScript를 실행합니다.
- 샌드박스 처리된 Rust 호스트에서 사용자가 제공한 스크립트나 표현식을 평가합니다.
- JavaScript 언어 구현이나 엔진 내부를 실험합니다.
- WebAssembly 환경에서 JavaScript를 실행합니다.
빠른 시작
- 1
Cargo.toml에 boa_engine crate를 추가합니다
cargo add boa_engine - 2
예제 코드를 main.rs에 복사합니다
- 3
프로젝트를 실행합니다
cargo run
사용 전 알아둘 점
- 제작자가 실험 단계라고 설명하고 있어 아직 프로덕션 환경에 적합하지 않을 수 있습니다.
- 아직 ECMAScript 사양을 완전히 준수하지 않으며, 90% 이상을 지원한다고 합니다.
토픽
자주 묻는 질문
- boa은(는) 무엇인가요?
- Rust로 작성된 임베디드 JavaScript 엔진으로, 렉서·파서·인터프리터를 제공하며 ECMAScript 사양을 폭넓게 지원합니다. Boa는 Rust로 작성된 JavaScript 렉서, 파서, 인터프리터입니다. 최신 ECMAScript 사양의 90% 이상을 구현하는 것을 목표로 하며, Test262 테스트 스위트를 기준으로 지속적으로 적합성 작업을 진행하고 있습니다.
- boa은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- boa은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- boa은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. boa의 마지막 커밋은 2026년 10월 31일입니다.
- boa은(는) 어디에 사용할 수 있나요?
- C++ 엔진에 의존하지 않고 Rust 애플리케이션에서 JavaScript를 실행합니다. 샌드박스 처리된 Rust 호스트에서 사용자가 제공한 스크립트나 표현식을 평가합니다. JavaScript 언어 구현이나 엔진 내부를 실험합니다. WebAssembly 환경에서 JavaScript를 실행합니다.
- boa는 어떻게 설치하나요?
- Cargo.toml에 boa_engine crate를 추가합니다: cargo add boa_engine 예제 코드를 main.rs에 복사합니다 프로젝트를 실행합니다: cargo run
- boa은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/boa-dev/boa
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
WebAssembly Micro Runtime(WAMR)은 임베디드, IoT, 엣지 및 기타 리소스 제약 환경을 위한 경량 Wasm 런타임입니다.
실행 중인 JavaScript를 일시 중지하고 전체 힙을 스냅샷으로 저장한 뒤 다른 프로세스에서 재개할 수 있으며, TypeScript를 기본 지원하는 QuickJS 포크입니다.
순수 Go로 작성된 ECMAScript 5.1 JavaScript 엔진으로, Go 애플리케이션에 JS 실행 기능을 임베딩할 수 있습니다.
Rust로 작성된 초고속 TypeScript/JavaScript 컴파일러이자 파서로, Rust와 JavaScript에서 모두 사용할 수 있습니다.
POSIX, Bash, Zsh, mksh 셸 스크립트를 파싱하고 포맷하며 실행하는 Go 라이브러리와 shfmt CLI입니다.