-
Notifications
You must be signed in to change notification settings - Fork 38
Description
Summary
For certain scenarios, it would be great if we could create WebAssembly Components from ESM with this library without requiring a JS runtime.
Background
If a backend service written in Python or Ruby would like to take an input string of Javascript, precompile a wasm component, and then run it using a Wasmtime host for Python/Ruby, needing a full JS runtime to do the compilation might complicate things in that Python or Ruby backend.
Proposal
With the current trend that a lot of JS tooling is also available in Rust (Biome, Oxc, Rolldown, etc), would it be possible to see this project as a two-layer library?
The lower layer is implemented in Rust (maybe using existing ecosystem tools where available) to bundle and compile the JS code into a WebAssembly Component, and the higher layer would be bindings to the lower layer.
Those higher-layer bindings might be JS, which would give the end result of this project (lower layer + higher level), but those bindings might also be written in Python or Ruby, to pair with e.g. Wasmtime-Py or Wasmtime-Rb.
Let me know if I should elaborate!
Also, I know this is more of a discussions item, but the discussions tab isn't enabled on the repo so I opened it here.
Thoughts?