快速开始
你可以使用以下的单行命令来安装 WasmEdge。 你的系统必须预先安装 和 curl
。
如果你正在使用Windows 10,你可以使用Windows Package Manager Client (也称winget.exe)来安装WasmEdge。
winget install wasmedge
如果你希望一并安装 ,请执行以下命令。它将尝试在你的系统上安装 Tensorflow 和图像共享库。
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- -e all
执行以下命令能使已安装的二进制文件在当前会话中可用。
source $HOME/.wasmedge/env
这里有几个 WebAssembly 字节码的示例供您试用新安装的 WasmEdge CLI。
hello.wasm 这个 WebAssembly 程序中包含一个 main()
函数。 它将打印 hello
,以及所有的命令行参数。
$ wasmedge hello.wasm second state
hello
second
state
add.wasm 这个 WebAssembly 程序包含一个 add()
函数。 我们在反应器模式下使用 WasmEdge 来调用 add()
,并给它 2 个整数作为输入参数。
$ wasmedge --reactor add.wasm add 2 2
4
我们手动创建了 fibonacci.wat 程序,并使用了 编译器来构建 fibonacci.wasm 这个 WebAssembly 程序。 它包含了一个 fib()
函数,这个函数以一个整数作为输入参数。我们在反应器模式下使用 WasmEdge 来调用这个导出函数。
$ wasmedge --reactor fibonacci.wasm fib 10
89
CLI工具支持 --gas-limit
标志,用于控制执行的成本。
# gas 足够时
$ wasmedge --enable-all-statistics --gas-limit 20425 hello.wasm second state
hello
second
state
[2021-12-09 16:03:33.261] [info] ==================== Statistics ====================
[2021-12-09 16:03:33.261] [info] Total execution time: 268266 ns
[2021-12-09 16:03:33.261] [info] Wasm instructions execution time: 251610 ns
[2021-12-09 16:03:33.261] [info] Host functions execution time: 16656 ns
[2021-12-09 16:03:33.261] [info] Executed wasm instructions count: 20425
[2021-12-09 16:03:33.261] [info] Gas costs: 20425
[2021-12-09 16:03:33.261] [info] Instructions per second: 81177218
[2021-12-09 16:03:33.261] [info] ======================= End ======================
# gas 不足时
$ wasmedge --enable-all-statistics --gas-limit 20 hello.wasm second state
[2021-12-23 15:19:06.690] [error] Cost exceeded limit. Force terminate the execution.
[2021-12-23 15:19:06.690] [error] In instruction: ref.func (0xd2) , Bytecode offset: 0x00000000
[2021-12-23 15:19:06.690] [error] At AST node: element segment
[2021-12-23 15:19:06.690] [error] At AST node: element section
[2021-12-23 15:19:06.690] [info] ==================== Statistics ====================
[2021-12-23 15:19:06.690] [info] Total execution time: 0 ns
[2021-12-23 15:19:06.690] [info] Wasm instructions execution time: 0 ns
[2021-12-23 15:19:06.690] [info] Host functions execution time: 0 ns
[2021-12-23 15:19:06.690] [info] Executed wasm instructions count: 21
[2021-12-23 15:19:06.690] [info] Gas costs: 20
WasmEdge 也可以作为一个高性能、安全、可扩展、易于部署且 的 JavaScript 运行时。
qjs.wasm 是一个被编译为 WebAssembly 的 JavaScript 解释器。 是一个非常简单的 JavaScript 程序。
$ wasmedge --dir .:. qjs.wasm hello.js 1 2 3
Hello 1 2 3
qjs_tf.wasm 则是一个 WebAssembly 版本的 JavaScript 解释器(带有 )。 要想运行 qjs_tf.wasm,你必须使用 wasmedge-tensorflow-lite
这个命令行工具;这个工具里内置了包含 Tensorflow 扩展的 WasmEdge 构建版本。 你可以下载一个来对图像进行分类。
# Download the Tensorflow example
$ wget https://raw.githubusercontent.com/second-state/wasmedge-quickjs/main/example_js/tensorflow_lite_demo/aiy_food_V1_labelmap.txt
$ wget https://raw.githubusercontent.com/second-state/wasmedge-quickjs/main/example_js/tensorflow_lite_demo/food.jpg
$ wget https://raw.githubusercontent.com/second-state/wasmedge-quickjs/main/example_js/tensorflow_lite_demo/lite-model_aiy_vision_classifier_food_V1_1.tflite
$ wget https://raw.githubusercontent.com/second-state/wasmedge-quickjs/main/example_js/tensorflow_lite_demo/main.js
$ wasmedge-tensorflow-lite --dir .:. qjs_tf.wasm main.js
confidence: 0.8941176470588236