bytecodealliance / javy

JS to WebAssembly toolchain
Apache License 2.0
2.24k stars 108 forks source link

Imported functionallity from the host #599

Closed william-stacken closed 9 months ago

william-stacken commented 9 months ago

What is your question?

We are currently using Javy and are very happy with it! The way we are using the Wasm modules output by Javy currently is that, from the host runtime we are providing a JSON input over its stdin and parsing a JSON output from its stdout. The Wasm modules are written by our users and most of them don't need all the data in the JSON. As we add more data to the JSON input, it keeps getting larger and it takes longer to produce.

Performance could be improved if we could, instead of providing all the data the Wasm module could possibly need before it is invoked, have the Wasm module be able to request the information that it actually needs through imported functions from the host (custom ones outside of the WASI standard). Is this something that Javy plans to support in the future?

jeffcharles commented 9 months ago

Have you read our documentation on extending Javy, which includes adding custom APIs?

To summarize what's in there, we have a number of crates published to crates.io which we recommend using and then writing your own CLI and javy-core implementation that re-use those crates.

william-stacken commented 9 months ago

Thanks a lot!