Comment by nekevss
11 hours ago
Hi, I'm another one of the maintainers on the project.
In general, we are shifting more to performance now than conformance. We currently sit at around 94% conformance, so there's not really that much more to go conformance-wise. The remaining conformance gains are a couple of the newer specification features and Intl related features. Our current conformance can be found at https://boajs.dev/conformance.
Regarding performance, we are already making some gains, with hopefully more to come. The best example of this was probably the updates to script-bench-rs with our most recent release (which can be found at this commit https://github.com/khvzak/script-bench-rs/commit/d9635de77d2...). We still obviously have more to improve on, but we have already made some pretty steady progress from where we were.
EDIT: I forgot to answer your question about v8-jitless. Obviously in the future it would be nice to be able to be more competitive with v8-jitless, but at least for me, I'd just like to focus on improving the Boa overall.
Does Boa support `fetch`? And if so, is it built on Reqwest or Wreq [1]?
I immediately have use for this if y'all have async fetch support. I can use JavaScript as an extension language for our app.
I love how supremely easy it looks to embed in normal Rust apps without a complicated build script. That, to me, is a killer feature.
Really awesome work on this!
[1] Wreq is starting to get popular for its ability to bypass Cloudflare and look like a normal browser
So this is a bit loaded. Short answer: it can.
Long answer: first, `fetch` is a runtime feature, and Boa is first and foremost an engine. So `boa_engine` -- the core project crate -- does not support `fetch` out of the box.
That being said, we do have a `boa_runtime` crate. This crate is not currently a full runtime, but it is a collection of runtime features that have been implemented and can be registered onto the context. `fetch` is one of the features that has an implementation completed in `boa_runtime`, and it does use reqwest if I'm remembering correctly. If you're interested to see some example code of registering features, you can look at our CLI code as an example :)
This sounds really well architected and extensible. I've gotta check this out.
Thank you!
1 reply →