Run JavaScript in WebAssembly
Now supporting wasmedge socket for HTTP requests and Tensorflow in JavaScript programs!
Prerequisites
Install Rust and wasmedge CLI tool. Make sure that you use the -e all
option to install the WasmEdge Tensorflow extensions if you want to try the Tensorflow examples below.
rustup target add wasm32-wasi
Hello js
Build
$ cargo build --target wasm32-wasi --release
Run
$ cd example_js
$ wasmedge --dir .:. ../target/wasm32-wasi/release/wasmedge_quickjs.wasm hello.js WasmEdge Runtime
HTTP Request
Build
$ cargo build --target wasm32-wasi --release
Run
HTTP client applications.
$ cd example_js
$ wasmedge --dir .:. ../target/wasm32-wasi/release/wasmedge_quickjs.wasm http_demo.js
Run and POST to a HTTP server.
# Start the server
$ cd example_js
$ nohup wasmedge --dir .:. ../target/wasm32-wasi/release/wasmedge_quickjs.wasm http_server_demo.js &
# Access the server
$ curl -d "WasmEdge" -X POST http://localhost:8000
echo:WasmEdge
These examples also show how to import another JavaScript file into the current program.
TensorFlow
Build
Note: Build the QuickJS interpreter with the WasmEdge Tensorflow extension.
$ cargo build --target wasm32-wasi --release --features=tensorflow
Run
$ cd example_js/tensorflow_lite_demo
$ wasmedge-tensorflow --dir .:. ../../target/wasm32-wasi/release/wasmedge_quickjs.wasm main.js
Optional: Get static-lib & binding.rs
If you want to build a custom libquickjs.a to export some static c function.
See [quickjs-wasi]
run quickjs-wasi/lib/build.sh