*Objectives*
Provide an Nginx module that is compatible with proxy-wasm standard and exposes API to APISIX *Wasm SDK* reusing SDK from proxy-wasm https://github.com/proxy-wasm/spec *Which Wasm VM does we choose* Candidates: 1. wasmtime https://docs.wasmtime.dev/c-api/ 2. wasmer https://github.com/wasmerio/wasmer/tree/master/lib/c-api *Implementation ideas of wasm-nginx-module* Main modules. 1. Encapsulate a layer of Wasm VMs to interface with various Wasm VM implementations 2. Wrapping a context layer, which contains the VM abstraction, context switching, etc. 3. Implementing the proxy-wasm standard host API for injection into the Wasm VM 4. Expose the C API for Lua to call via ffi, enabling Lua to drive the Wasm VM 1 and 2 refer to: https://github.com/proxy-wasm/proxy-wasm-cpp-host some host API in 3 may be implemented by calling Lua. *The interaction between Wasm VM, Nginx C, and Lua VM* All three are in the same process, so they can call each other 6.1 Can be implemented as step 1 6.2 can be implemented as the second step, it is important to consider whether a generic Wasm VM <=> Lua VM call protocol is needed, or whether it should be implemented as a simple API
