bytecodealliance / wasmtime

A fast and secure runtime for WebAssembly
https://wasmtime.dev/
Apache License 2.0
15.03k stars 1.25k forks source link

How to get control over filesystem access with `wasmtime_wasi::WasiCtxBuilder` #8963

Open stevenj opened 1 month ago

stevenj commented 1 month ago

Our implementation requires filesystems to be fully controlled, and files come from a VFS not any mounted filesystem. That means we need to control the low level aspects of filesystem access for WasiP2.

I don't see how that can be achieved, because the only option I see is giving Wasi access to a pre-opened directory, which is 100% off the table for our application. How to use the WaiCtxBuilder, and abstract the necessary filesystem interfaces to the runtime?

alexcrichton commented 1 month ago

For a fully virtual filesystem you won't be using WasiCtxBuilder. You'll want to instead implement the Host traits directly generated in the wasmtime-wasi crate such as this. You'd then call add_to_linker or similarly.