Open tiziano88 opened 8 months ago
I'm currently facing the same issue on my project. It would be quite handy having somehow a setStdIn
function.
Could you explain on more further details about the workaround to pass input data to the wasi
module execution?
For the time being I just serialize the data as a string (base64 if necessary) and pass it as the first command line argument to the Wasm module, which then reads it as argv[1]
Right, in that case fixing this issue wouldn't help you, since this is specific to WASI, which AFAICT you are not using. I think your best bet is to declare a custom function for the Wasm module to read the data into its own memory
Motivation
It is quite common to have to provide a pre-determined stdin value to a Wasm module, without having to expose a full file system to it.
Proposed solution
leverage this function:
https://docs.wasmtime.dev/c-api/wasi_8h.html#a525abd98ade58887a969b796ea05468e
would require modifying
https://github.com/wasmerio/wasmer-go/blob/ca60a4524acf4fc518ced3bfd818d960804a0bee/wasmer/packaged/include/wasmer.h#L705-L707
and
https://github.com/wasmerio/wasmer-go/blob/ca60a4524acf4fc518ced3bfd818d960804a0bee/wasmer/wasi.go#L196-L202
Alternatives
The best alternative at the moment is passing the value as argument on the command line, but that's not great for large and / or binary values.