第一個執行WebAssembly的Java庫:Wasmer JNI
Wasmer JNI是一個可以直接在Java中執行WebAssembly的庫。它嵌入了WebAssembly執行時Wasmer,Wasmer JNI開源專案是:https://github.com/wasmerio/java-ext-wasm
讓我們從一個簡單的Rust程式開始,將其編譯為WebAssembly,然後在Java中執行:
#[no_mangle] pub extern fn sum(x: i32, y: i32) -> i32 { x + y } |
彙編WebAssembly後,我們得到這樣一個檔案:這裡,命名為simple.wasm。
以下Java程式sum通過傳遞5和37作為引數來執行匯出的函式:
import org.wasmer.Instance; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; class SimpleExample { public static void main(String[] args) throws IOException { // Read the WebAssembly bytes. byte[] bytes = Files.readAllBytes(Paths.get("simple.wasm")); // Instantiate the WebAssembly module. Instance instance = new Instance(bytes); // Get the `sum` exported function, call it by passing 5 and 37, and get the result. Integer result = (Integer) instance.exports.getFunction("sum").apply(5, 37)[0]; assert result == 42; instance.close(); } } |
我們已經用Java成功執行了一個Rust程式,該程式首先需要編譯為WebAssembly。這非常簡單。該API與標準JavaScript API或我們為PHP,Python,Go,Ruby等設計的其他API非常相似。
相關文章
- Android JNI 中的執行緒操作Android執行緒
- 一個用於實現並行執行的 Java actor 庫並行Java
- 第一個C程式HelloWold(Android之JNI)C程式Android
- JNI多執行緒與全域性引用執行緒
- 通過 WebAssembly 在瀏覽器執行 PHPWeb瀏覽器PHP
- 【JAVA併發第一篇】Java的程式與執行緒Java執行緒
- 只需 5 分鐘,教你如何編寫並執行一個 Rust + WebAssembly 程式RustWeb
- 【Flask】第一個Flask程式(安裝、執行引數、執行方式)Flask
- 【Java面試】如何中斷一個正在執行的執行緒?Java面試執行緒
- Java執行緒的5個使用技巧Java執行緒
- Java築基 - JNI到底是個啥Java
- Java執行緒新特徵——Java併發庫Java執行緒特徵
- Java執行緒入門第一篇Java執行緒
- java呼叫c++動態庫之jni呼叫JavaC++
- 【胡思亂想】JNI與執行緒池的維護執行緒
- 執行計劃-5:第一個子操作的變化
- Java多執行緒——獲取多個執行緒任務執行完的時間Java執行緒
- Java NIO 執行緒 的一個問題Java執行緒
- java的第一個程式Java
- 哪位高手可幫小弟一個忙,十萬火急!!!在java執行緒中可不可以呼叫JNIJava執行緒
- WebAssembly + Dapr = 下一代雲原生執行時?Web
- java JNI簡介Java
- Nexus.js介紹:一個多執行緒的JavaScript執行庫JS執行緒JavaScript
- 一個java檔案被執行的歷程Java
- 【譯】Go和WebAssembly:在瀏覽器中執行Go程式GoWeb瀏覽器
- parallel: 一個簡單的並行執行Go迴圈的庫Parallel並行Go
- java與python哪個執行快?JavaPython
- 15個Java多執行緒面試題Java執行緒面試題
- 50個Java多執行緒面試題Java執行緒面試題
- 【Java】【多執行緒】兩個執行緒間的通訊、wait、notify、notifyAllJava執行緒AI
- JNI訪問Java方法Java
- jni回撥java方法Java
- 03-Java核心類庫_多執行緒Java執行緒
- 第一個Java程式Java
- 一個 java 檔案的執行過程詳解Java
- 一個簡單java程式的執行全過程Java
- Java多執行緒打輔助的三個小夥子Java執行緒
- JVM學習第一篇思考:一個Java程式碼是怎麼執行起來的-上篇JVMJava