This includes a major refactor of the project to enable native extension support via shared-everything dynamic linking. In particular, the old process (edit the runtime Wasm file to inject the application code, run the result through Wizer, and use wit-component to make the component) has been replaced by a new process:
Synthesize an adapter module which does the canonical ABI lifting and lowering.
Link the adapter module with the runtime library, libpython3.11.so, libc.so, any native extension libraries, and a few other libraries, producing a component.
This currently requires temporary forks of wasi-sdk and CPython, plus a nightly Rust release, but I expect we'll be able to use stable, official releases of those projects once everything has been upstreamed.
This includes a major refactor of the project to enable native extension support via shared-everything dynamic linking. In particular, the old process (edit the runtime Wasm file to inject the application code, run the result through Wizer, and use
wit-component
to make the component) has been replaced by a new process:This currently requires temporary forks of
wasi-sdk
and CPython, plus a nightly Rust release, but I expect we'll be able to use stable, official releases of those projects once everything has been upstreamed.