extism / js-pdk

Write Extism plugins in JavaScript & TypeScript
42 stars 16 forks source link

Move away from quickjs-wasm-rs to an alternative #87

Open mdarrik opened 2 weeks ago

mdarrik commented 2 weeks ago

I was looking into a build time error I was getting, which seems to be related to quickjs #261 which was fixed in a newer release of quickjs. During this investigation, I noticed that Javy has deprecated quickjs-wasm-rs in favor of rquickjs.

The reasons for the deprecation are outlined in javy #618.

I started a WIP branch to see what moving the pdk to rquickjs might look like. I've mostly moved through the logic for initializing the globals so far, but the migration seems feasible. It seems like rquickjs should let the pdk keep most of the same logic & API's, just moved around a bit.

Keeping the tooling similar to Javy and using rquickjs may also make it easier to implement #56 and #19 , but haven't looked into it too much.

Recognize that this pdk is in rc for 1.0, so a large crate change might not be the best timing. I am happy to take this migration farther if that's something y'all would be interested in, but didn't want to just drop a big migration PR on y'all without talking it through.

bhelx commented 2 weeks ago

Thank you for volunteering! Yes, this is definitely something we've been discussing in Discord lately. There are a few latent issues it could clear up. We've also discussed switching runtimes entirely to something with more W3C API coverage, but I'd definitely prefer an rquickjs port because it seems like a simpler and quicker path.

If you want to open a PR we'll gladly support you and contribute, help you debug, test, etc. Feel free to reach out in the #js-pdk channel in our Discord if you want to sync in real time.

bhelx commented 2 weeks ago

Hello @mdarrik did you put any work into this? No pressure of course, but i noticed your WIP branch didn't resolve: https://github.com/mdarrik/js-pdk/blob/feat/migrate-to-rquickjs/

If you want to open a draft PR or something, we can help out :)

mdarrik commented 2 weeks ago

Hey, yeah. It's still in progress. I have the global work done locally. Have only just started looking into the core logic.

I can push what I've got so far up later today and open a draft PR so y'all can take a look too.