Boa has moved
First off, some breaking changes!
Boa is now
boa_engine on crates.io. This should bring it in line with our other packages, and allows us to resolve the casing issue we had with Boa previously. It should just be a case of changing your dependencies in cargo.toml to the new destination. The old
Boa crate will no longer receive any updates.
New ECMAScript features
Boa v0.14 ships with support for
String.raw( template, ...substitutions ), and more. There's also been several bug fixes and internal improvements, such as switching to Bors for our CI management.
Boa opens financial contributions
In the past months, due to the big and steady progress on Boa, we have received multiple requests to contribute to Boa financially. From now on, anyone can contribute with either a recurring donation, or a one-time contribution in our OpenCollective page.
What does this mean for Boa?
Being able to receive financial contributions won't directly show a change in Boa development, but depending on how much funding we get, we are already planning next steps. Having more motivated contributors would be the first step. We all want to spend more of our free time in boa, and receiving a financial compensation for it is definitely making the team members eager to continue contributing.
But that is not our only idea. We would like to create a reproducible benchmarking platform. Currently, we just use GitHub actions for benchmarking, which is useful to get some general ideas on how some changes affect the performance of the engine. However, they have a high variability (up to 10%), meaning that we can definitely see changes if they are big, but it's impossible to see differences if changes are minimal (1-2%, for example). Having the infrastructure to do proper performance testing would require using dedicated CPUs, for example, which could be financed using the Boa Open Collective.
On the development side, there are some very big projects that require deep involvement from the team. Priorities include (not neccesarily in order):
- Async/Await support.
- Better completion records implementation
- Performance improvement across the board.
- Future implementation of Shapes/Hidden Classes.
- Being able to measure against other engines.
- Improved conformance of the EcmaScript specification.
- Integration with ICU4X for Intl and future Temporal implementation.
Implementing a proper API for Rust crates that want to embed Boa as they like, or a C API so that other software, not written in Rust, can use Boa, are also a priority, and implementing all the new built-in objects to achieve 100% conformance with the ECMAScript specification is also a must. All this takes time, and we will need to finance developers working on these big issues.
Can I contribute differently?
We are also looking to improve the documentation of the engine, both for developers of the engine itself and for users of the engine. Feel free to contact us in Discord.
Last but certainly not least, a big Thank You to all the contributors of Boa. It's not often we list them but we would like to say thank you to the new contributors who joined for the last release.
Thank you New Contributors
- @abhishekc-sharma who made their first contribution in #1612
- @kevinputera who made their first contribution in #1606
- @nrabulinski who made their first contribution in #1614
- @hle0 who made their first contribution in #1618
- @nekevss who made their first contribution in #1613
- @lowr who made their first contribution in #1628
- @Nimpruda who made their first contribution in #1634
- @atouchet who made their first contribution in #1638
- @praveenbakkal who made their first contribution in #1680
- @bsinky who made their first contribution in #1665
- @TheDoctor314 who made their first contribution in #1691