You can edit almost every page by Creating an account and confirming your email.

Boa (JavaScript engine): Difference between revisions

From EverybodyWiki Bios & Wiki
WikiMasterBot2 (talk | contribs)
m Moved page from wikipedia:en:Boa (JavaScript engine) ([[Edithistory:|history]])
WikiMasterBot2 (talk | contribs)
m automatic correction by IA
 
Line 1: Line 1:
{{Notability|date=October 2024}}
 
{{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''' 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>
'''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

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; 18 months ago (2024-12-05) / Error: first parameter is missing. ()
Repositorygithub.com/boa-dev/boa
Written inRust[2]
Engine
    Platformx86-64, 32-bit ARM, AArch64
    TypeJavaScript
    LicenseMIT
    Websiteboajs.dev

    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

    References

    1. 1.0 1.1 "Boa release v0.19". boajs.dev. 5 December 2024.
    2. 2.0 2.1 "About Boa | Boa JS". boajs.dev. Boa Developers. 15 October 2024. Retrieved 15 October 2024.
    3. 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. 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.
    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. 8.0 8.1 Munsters, Aäron. "BoaSpect" (PDF). Vrije Universiteit Brussel. Retrieved 15 October 2024.
    9. "test262.fyi". test262.fyi. 17 August 2025. Archived from the original on 17 August 2025. Retrieved 6 September 2024.
    10. "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.
    11. "Chrome Platform Status". chromestatus.com. Retrieved 2025-09-27.
    12. "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.