bytecodealliance / lucet

Lucet, the Sandboxing WebAssembly Compiler.
Apache License 2.0
4.06k stars 165 forks source link

Can lucet compile and run on iOS using AOT modules? Web? #509

Open warvstar opened 4 years ago

warvstar commented 4 years ago

Can lucet compile and run on iOS using AOT modules?

Is there anything preventing lucet from been compiled and run on the web?

Thanks

pchickey commented 4 years ago

Hi @warvstar,

We have not investigated whether Lucet is compatible with iOS. At the moment, we only support x86_64 on Mac OS and Linux, but Cranelift support for Aarch64 has been improving, so that may be possible to support, though it will require some work on various bits of architecture-specific code for setting up and switching stacks. My understanding is that, even if Lucet worked on iOS, App Store policies may prevent it from being very useful. Our team doesn't have any iOS experts so if that is something you wanted to pursue, you'd mostly be on your own.

Lucet's compiler generates x86_64 from Wasm. It wouldn't be possible to execute that code natively in a Web context, but the compiler could probably be compiled to Wasm and run in a browser if you wanted. The Lucet's runtime would not be usable in a Web context, because it needs to execute native code and directly use a lot of low-level operating system features.