Wasi also supports _initialize entry points
The Wasi standard also supports modules whose entry point is _initialize.
https://github.com/WebAssembly/WASI/blob/master/design/application-abi.md
Here is some background regarding "reactors": https://github.com/WebAssembly/WASI/issues/13
One advantage of using this scheme in redshirt is that we could force applications to register themselves as interface handler during the call to _initialize. We would thereby have a way of telling that an application will no longer handle any new interface that it doesn't already handle.
Rust compiler support has just landed in nightly: https://github.com/rust-lang/rust/pull/79997#issuecomment-758203786