diff --git a/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java b/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java index f502aff..ff7b43e 100644 --- a/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java +++ b/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java @@ -2,7 +2,6 @@ import static io.roastedroot.proxywasm.Helpers.len; -import com.dylibso.chicory.experimental.aot.AotMachine; import com.dylibso.chicory.runtime.ByteArrayMemory; import com.dylibso.chicory.runtime.HostFunction; import com.dylibso.chicory.runtime.ImportMemory; @@ -324,7 +323,7 @@ public ProxyWasm build(Instance.Builder instanceBuilder) throws StartException { var imports = ImportValues.builder(); if (this.machineFactory != null) { - instanceBuilder.withMachineFactory(AotMachine::new); + instanceBuilder.withMachineFactory(this.machineFactory); } imports.addMemory(Objects.requireNonNullElseGet(memory, this::defaultImportMemory)); diff --git a/quarkus-x-kuadrant-example/pom.xml b/quarkus-x-kuadrant-example/pom.xml index 53f8ccf..869b29f 100644 --- a/quarkus-x-kuadrant-example/pom.xml +++ b/quarkus-x-kuadrant-example/pom.xml @@ -86,6 +86,23 @@ + + + com.dylibso.chicory + aot-maven-plugin-experimental + + + wasm-shim + + wasm-aot-gen + + + io.roastedroot.proxywasm.kuadrant.example.WasmShim + src/main/wasm/wasm_shim.wasm + + + + maven-failsafe-plugin ${surefire-plugin.version} diff --git a/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java b/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java index 8648e3f..e40bd58 100644 --- a/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java +++ b/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java @@ -1,7 +1,5 @@ package io.roastedroot.proxywasm.kuadrant.example; -import com.dylibso.chicory.wasm.Parser; -import com.dylibso.chicory.wasm.WasmModule; import io.roastedroot.proxywasm.LogHandler; import io.roastedroot.proxywasm.StartException; import io.roastedroot.proxywasm.plugin.Plugin; @@ -19,9 +17,6 @@ @ApplicationScoped public class App { - private static WasmModule module = - Parser.parse(App.class.getResourceAsStream("wasm_shim.wasm")); - static final String CONFIG; static { @@ -42,10 +37,11 @@ public PluginFactory kuadrant() throws StartException { return () -> Plugin.builder() .withName("kuadrant") + .withMachineFactory(WasmShimModule::create) .withLogger(DEBUG ? LogHandler.SYSTEM : null) .withPluginConfig(CONFIG) .withUpstreams(Map.of("limitador", limitadorUrl)) .withMetricsHandler(new SimpleMetricsHandler()) - .build(module); + .build(WasmShimModule.load()); } } diff --git a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/README.md b/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/README.md deleted file mode 100644 index 3e05a1d..0000000 --- a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Attribution - -The wasm_shim.wasm plugin comes from: - -https://github.com/Kuadrant/wasm-shim - diff --git a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/wasm_shim.wasm b/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/wasm_shim.wasm deleted file mode 100755 index ab8618a..0000000 Binary files a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/wasm_shim.wasm and /dev/null differ diff --git a/quarkus-x-kuadrant-example/src/main/wasm/README.md b/quarkus-x-kuadrant-example/src/main/wasm/README.md new file mode 100644 index 0000000..7d2e737 --- /dev/null +++ b/quarkus-x-kuadrant-example/src/main/wasm/README.md @@ -0,0 +1,19 @@ +## Attribution + +The wasm_shim.wasm plugin comes from: + +https://github.com/Kuadrant/wasm-shim + +add to `Cargo.toml`: + +```toml +[profile.release] +opt-level = "s" +debug = false +``` + +to build run: + +```bash +cargo build --release --target wasm32-unknown-unknown +``` diff --git a/quarkus-x-kuadrant-example/src/main/wasm/wasm_shim.wasm b/quarkus-x-kuadrant-example/src/main/wasm/wasm_shim.wasm new file mode 100755 index 0000000..6a68cdc Binary files /dev/null and b/quarkus-x-kuadrant-example/src/main/wasm/wasm_shim.wasm differ