用于 Java 的高性能可嵌入 WebAssembly 运行时
优势
如何开始
您可以选择使用 WebAssembly 扩展您的 Java 应用程序,或直接进入入门项目
1. 从Maven Central添加 GraalWasm 作为依赖项
1. 从Maven Central添加 GraalWasm 作为依赖项
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>polyglot</artifactId>
<version>24.2.1</version>
</dependency>
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>wasm</artifactId>
<version>24.2.1</version>
<type>pom</type>
</dependency>
或
implementation("org.graalvm.polyglot:polyglot:24.2.1")
implementation("org.graalvm.polyglot:wasm:24.2.1")
2. 创建一个 WebAssembly 模块,例如使用wat2wasm
2. 创建一个 WebAssembly 模块,例如使用wat2wasm
(module
(func (export "addTwo") (param i32 i32) (result i32)
local.get 0
local.get 1
i32.add))
3. 将 Wasm 模块嵌入到 Java 中
3. 将 Wasm 模块嵌入到 Java 中
import java.net.URL;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
try (Context context = Context.create()) {
URL wasmFile = Main.class.getResource("add-two.wasm");
String moduleName = "main";
context.eval(Source.newBuilder("wasm", wasmFile).name(moduleName).build());
Value addTwo = context.getBindings("wasm").getMember(moduleName).getMember("addTwo");
System.out.println("addTwo(40, 2) = " + addTwo.execute(40, 2));
}