Jump to content

Boa (JavaScript engine)

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Boa
Original author(s)Jason Williams
Developer(s)Boa Developers
Initial release10 June 2019; 6 years ago (2019-06-10)
Stable release
v0.20[1] / 5 December 2024; 6 months ago (2024-12-05) /  ()
Repositorygithub.com/boa-dev/boa
Written inRust[2]
Platformx86-64, 32-bit ARM, AArch64
TypeJavaScript and WebAssembly engine
LicenseMIT
Websiteboajs.dev

Boa is an open-source JavaScript engine written in Rust.[2] Boa was introduced at JSConf EU 2019 by Jason Williams.[3][4]

Williams created Boa in 2017 after working on Servo and being inspired by the "written from scratch" CSS engine.[5][4] He was eager to work on a JavaScript engine using Rust to learn more about how JavaScript implementations work, since then the project has had over 100 contributors.[3][6] Overtime the engine gained more prominent features such as bytecode compilation,[7] better conformance to the specification and ergonomic API design.[1]

Design

Boa is an open-source implementation of a JavaScript execution engine. The project is developed as a Rust library for embedding the JavaScript engine in Rust applications. Additionally, the authors of Boa provide a command-line interface (CLI) for users to interact with Boa as standalone JavaScript interpreter accessible from a command line.[8]

Boa follows the common interpreter design which approximately consists of a lexer, parser, compiler and bytecode interpreter[8]

Standards

Boa implements the ECMA-262 specification (ECMAScript). As of 6 September 2024 Boa has 88% conformance to Test262[9]

See also

References

  1. ^ a b "Boa release v0.19". boajs.dev. 5 December 2024.
  2. ^ a b "About Boa | Boa JS". boajs.dev. Boa Developers. Retrieved 15 October 2024.
  3. ^ a b Williams, Jason (20 June 2019). "Let's build a JavaScript Engine in Rust by Jason Williams - JSConf EU 2019". YouTube. JS Conf EU. Retrieved 15 October 2024.
  4. ^ a b Jason Williams. "Let's build a JavaScript Engine". 2019.jsconf.eu. JS Conf EU. Archived from the original on 25 February 2024. Retrieved 25 February 2024.
  5. ^ "Hacking & Contributing to Servo On Windows – Mozilla Hacks - the Web developer blog". Mozilla Hacks – the Web developer blog.
  6. ^ "Contributors to boa-dev/boa". GitHub.
  7. ^ "Boa release v0.14". boajs.dev. 15 March 2022.
  8. ^ a b Munsters, Aäron. "BoaSpect" (PDF). Vrije Universiteit Brussel. Retrieved 15 October 2024.
  9. ^ "test262.fyi". test262.fyi. 6 September 2024. Archived from the original on 6 September 2024. Retrieved 6 September 2024.