#quickjs #wasmedge #webassembly

bin+lib wasmedge_quickjs

Create your own JavaScript runtime and extension APIs for WasmEdge

1 unstable release

0.2.0 Oct 7, 2021

#982 in WebAssembly

MIT/Apache

455KB
4.5K SLoC

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

Bonus: This example also shows how to import another JavaScript file into the current program.

$ cd example_js
$ wasmedge --dir .:. ../target/wasm32-wasi/release/wasmedg_quickjs.wasm http_demo.js

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

Dependencies

~8.5MB
~149K SLoC