I am using the WasiCtxBuilder class of the wasmtime-rb gem to set stdout and stderr files using set_stdout_file and set_stderr_file respectively. I was wondering if there is any way to limit the max size of these files, i.e. the amount of bytes that the Wasm module is allowed to write to them? I also noticed the ResourceLimiter rust trait, is this feature planned for wasmtime-rb?
no, there is no limiting on those files. it would be possible to implement some limiting on those files with a lower level interface than provided by that ruby class, but I don't actually know much about how the ruby bindings work
the resource limiter trait is about limiting the sizes of linear memories and tables created in a Store
Thanks for your reply. By lower level interface, do you mean in the base wasmtime rust crate? Or do you mean use something like a tmpfs file system with a max capacity instead?
I know about the ResourceLimiter, I am also interested in limiting the memory usage of Wasm modules using wasmtime-rb, hence my question.
The wasmtime wasi rust implementation would let you hook into the stdout/stderr write
calls, which means you could add pretty much whatever logic you want. See: https://docs.rs/wasi-common/11.0.1/wasi_common/pipe/struct.WritePipe.html
You could probably find some outside solution that would work on a particular OS (like a tmpfs), but making it work cross-platform might be tricky if that is a goal.
Last updated: Dec 23 2024 at 13:07 UTC