Boa (JavaScript engine): Difference between revisions
m Moved page from wikipedia:en:Boa (JavaScript engine) ([[Edithistory:|history]]) |
m automatic correction by IA |
||
| Line 1: | Line 1: | ||
{{Infobox software | {{Infobox software | ||
| name = Boa | | name = Boa | ||
| Line 11: | Line 11: | ||
| latest release version = v0.20<ref name="latest-release">{{cite web |title=Boa release v0.19 |url=https://boajs.dev/blog/2024/12/05/boa-release-020 |website=boajs.dev |language=en |date=5 December 2024}}</ref> / {{start date and age|2024|12|5|df=y}} | | latest release version = v0.20<ref name="latest-release">{{cite web |title=Boa release v0.19 |url=https://boajs.dev/blog/2024/12/05/boa-release-020 |website=boajs.dev |language=en |date=5 December 2024}}</ref> / {{start date and age|2024|12|5|df=y}} | ||
| latest release date = {{start date and age|{{wikidata|qualifier|single|P548=Q2804309|P348|P577}}}} | | latest release date = {{start date and age|{{wikidata|qualifier|single|P548=Q2804309|P348|P577}}}} | ||
| programming language = [[Rust_(programming_language)|Rust]]<ref name="boa-about">{{cite web |title=About Boa {{!}} Boa JS |url=https://boajs.dev/about |website=boajs.dev |publisher=Boa Developers |access-date=15 October 2024 |language=en}}</ref> | | programming language = [[Rust_(programming_language)|Rust]]<ref name="boa-about">{{cite web |title=About Boa {{!}} Boa JS |url=https://boajs.dev/about |website=boajs.dev |publisher=Boa Developers |access-date=15 October 2024 |language=en |date=15 October 2024}}</ref> | ||
| platform = [[x86-64]], [[ARM architecture|32-bit ARM]], [[AArch64]] | | platform = [[x86-64]], [[ARM architecture|32-bit ARM]], [[AArch64]] | ||
| genre = [[JavaScript engine|JavaScript]] | | genre = [[JavaScript engine|JavaScript]] | ||
| Line 19: | Line 19: | ||
}} | }} | ||
'''Boa''' | '''Boa''' is an [[open-source]] [[JavaScript engine|JavaScript]] engine written in Rust.<ref name="boa-about" /> Boa was introduced at JSConf EU 2019 by Jason Williams.<ref name="boa-talk">{{cite web |last1=Williams |first1=Jason |title=Let's build a JavaScript Engine in Rust by Jason Williams - JSConf EU 2019 |url=https://www.youtube.com/watch?v=_uD2pijcSi4 |website=YouTube |publisher=JS Conf EU |access-date=15 October 2024 |date=20 June 2019}}</ref><ref name="jsonconf-eu">{{cite web |author1=Jason Williams |title=Let's build a JavaScript Engine |url=https://2019.jsconf.eu/jason-williams/lets-build-a-javascript-engine.html |website=2019.jsconf.eu |publisher=JS Conf EU |access-date=25 February 2024 |archive-url=https://web.archive.org/web/20240225094308/https://2019.jsconf.eu/jason-williams/lets-build-a-javascript-engine.html |archive-date=25 February 2024 |language=en}}</ref> | ||
Williams created Boa in 2017 after working on [[Servo (software)|Servo]] and being inspired by the "written from scratch" CSS engine.<ref>{{cite web |title=Hacking & Contributing to Servo On Windows – Mozilla Hacks - the Web developer blog |url=https://hacks.mozilla.org/2017/04/hacking-contributing-to-servo-on-windows/ |website=Mozilla Hacks – the Web developer blog}}</ref><ref name="jsonconf-eu" /> 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.<ref name="boa-talk" /><ref>{{cite web |title=Contributors to boa-dev/boa |url=https://github.com/boa-dev/boa/graphs/contributors |website=GitHub |language=en}}</ref> Over time the engine gained more prominent features such as [[bytecode]] compilation,<ref>{{cite web |title=Boa release v0.14 |url=https://boajs.dev/blog/2022/03/15/boa-release-14 |website=boajs.dev |language=en |date=15 March 2022}}</ref> better conformance to the specification and ergonomic API design.<ref name="latest-release" /> | Williams created Boa in 2017 after working on [[Servo (software)|Servo]] and being inspired by the "written from scratch" CSS engine.<ref>{{cite web |title=Hacking & Contributing to Servo On Windows – Mozilla Hacks - the Web developer blog |url=https://hacks.mozilla.org/2017/04/hacking-contributing-to-servo-on-windows/ |website=Mozilla Hacks – the Web developer blog}}</ref><ref name="jsonconf-eu" /> 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.<ref name="boa-talk" /><ref>{{cite web |title=Contributors to boa-dev/boa |url=https://github.com/boa-dev/boa/graphs/contributors |website=GitHub |language=en}}</ref> Over time the engine gained more prominent features such as [[bytecode]] compilation,<ref>{{cite web |title=Boa release v0.14 |url=https://boajs.dev/blog/2022/03/15/boa-release-14 |website=boajs.dev |language=en |date=15 March 2022}}</ref> better conformance to the specification and ergonomic API design.<ref name="latest-release" /> | ||
==Design== | ==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.<ref name="boaspect">{{cite web |last1=Munsters |first1=Aäron |title=BoaSpect |url=http://soft.vub.ac.be/Publications/2022/vub-soft-ms-22-01.pdf |publisher=Vrije Universiteit Brussel |access-date=15 October 2024}}</ref> | 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 a standalone JavaScript interpreter accessible from a command line.<ref name="boaspect">{{cite web |last1=Munsters |first1=Aäron |title=BoaSpect |url=http://soft.vub.ac.be/Publications/2022/vub-soft-ms-22-01.pdf |publisher=Vrije Universiteit Brussel |access-date=15 October 2024}}</ref> | ||
Boa follows the common interpreter design which approximately consists of a [[lexer]], [[parser]], [[compiler]] and [[bytecode interpreter]]<ref name="boaspect" /> | Boa follows the common interpreter design which approximately consists of a [[lexer]], [[parser]], [[compiler]] and [[bytecode interpreter]]<ref name="boaspect" /> | ||
Latest revision as of 01:25, 29 April 2026
| Original author(s) | Jason Williams |
|---|---|
| Developer(s) | Boa Developers |
| Initial release | 10 June 2019 |
| Stable release | v0.20[1] / 5 December 2024
/ Error: first parameter is missing. |
| Repository | github |
| Written in | Rust[2] |
| Engine | |
| Platform | x86-64, 32-bit ARM, AArch64 |
| Type | JavaScript |
| License | MIT |
| Website | boajs |
Search Boa (JavaScript engine) on Amazon.
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] Over time 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 a 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 17th August 2025 Boa has 94.6% conformance to Test262[9]
Temporal
In September 24th 2025 Boa launched Temporal_rs, a library which implements the Temporal proposal in ECMAScript.[10] This implementation is used within the V8 (JavaScript engine) making it the first piece of Rust code which V8 have integrated.[11][12]
See also
- JerryScript, an ultra-lightweight JavaScript engine
- SpiderMonkey, a JavaScript engine used in Firefox
- List Of ECMAScript engines
References
- ↑ 1.0 1.1 "Boa release v0.19". boajs.dev. 5 December 2024.
- ↑ 2.0 2.1 "About Boa | Boa JS". boajs.dev. Boa Developers. 15 October 2024. Retrieved 15 October 2024.
- ↑ 3.0 3.1 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.0 4.1 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.
- ↑ "Hacking & Contributing to Servo On Windows – Mozilla Hacks - the Web developer blog". Mozilla Hacks – the Web developer blog.
- ↑ "Contributors to boa-dev/boa". GitHub.
- ↑ "Boa release v0.14". boajs.dev. 15 March 2022.
- ↑ 8.0 8.1 Munsters, Aäron. "BoaSpect" (PDF). Vrije Universiteit Brussel. Retrieved 15 October 2024.
- ↑ "test262.fyi". test262.fyi. 17 August 2025. Archived from the original on 17 August 2025. Retrieved 6 September 2024.
- ↑ "Temporal_rs is here! The datetime library powering Temporal in Boa, Kiesel, and V8 | Boa JS". boajs.dev. 2025-09-24. Retrieved 2025-09-27.
- ↑ "Chrome Platform Status". chromestatus.com. Retrieved 2025-09-27.
- ↑ "Cross-Engine Contributions at Scale: How newcomers accelerated Temporal and Upsert in SpiderMonkey, V8, and Boa" (PDF). Web Engines Hackfest. 2 June 2025.
This article "Boa (JavaScript engine)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Boa (JavaScript engine). Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
