Asmble is unmaintained and missing a lot of Wasm extensions

Asmble is getting quite old and isn’t getting Wasm extensions that are being introduced. Some people were interested in the GC extension in particular. Maybe consider a different Wasm implementation. There are a handful of options:

  • Chasm is newish but claims to support quite a lot of extensions including GC.
  • GraalWasm supports quite a few extensions but not GC.
  • Chicory supports few extensions and not GC.
  • Various native Wasm runtimes could be accessed via JNI.

If we’re going to switch Wasm runtimes anyway, it might be nice to get away from the async-centric model that Asmble imposed and move towards something that allows suspension and serialization of an in-progress Wasm function call, which would mean Wasm code can be written straight-line with sleep calls inserted or enforced yields at the relevant time periods. This could probably even be done in a backwards-compatible way by keeping the async-centric APIs and adding blocking APIs as well. But I have no idea if any Wasm runtime actually supports suspending and serializing in the middle of execution.

Edited by Christopher Head