Add WASI support
Given the separation we have between functions.rs and the build system it should be fairly trivial to output the executable as a WASI file.
The base rust image https://quay.io/repository/roche/alpine-libgcc would need to be updated to include the wasm32 target
rustup target add wasm32-wasi
and the build system would have to add cargo build --target wasm32-wasi to the cargo commands.
https://github.com/bytecodealliance/wasmtime/blob/main/docs/WASI-tutorial.md#from-rust
Rather than packaging to a runtime container https://github.com/roche-rs/roche/blob/main/src/template/Release.Dockerfile#L5 It might be better to wrap the outputs with an OCI https://github.com/engineerd/wasm-to-oci
And possibly utilised in something like https://github.com/deislabs/krustlet It would be good to understand what the potential deployment targets are for a WASM service. Research to be captured here.
Cargo already has a fully integrated WASI stack https://github.com/bytecodealliance/cargo-wasi Networking has yet to land in WASI https://github.com/WebAssembly/WASI/pull/312 Minipot is a FreeBSD container platform based on Nomad that could target such an environment https://github.com/pizzamig/minipot