WasmEdge / WasmEdge

WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.

Home Page:https://WasmEdge.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't install WasmEdge with wasmedge_rustls plugin (tested on Fedora and Ubuntu)

JohnFrrr opened this issue · comments

Summary

When trying to install WasmEdge with the wasmedge_rustls plugin using the command:
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --plugins wasmedge_rustls

In Ubuntu 22.04.3 LTS it returns the error:
ERROR - Plugin not compatible: ubuntu20.04aarch64wasmedge_rustls

In Fedora CoreOS 39.20240128.2.2 it returns the error:
ERROR - Plugin not compatible: manylinux2014aarch64wasmedge_rustls

Hardware: Macbook M2 Pro Max

Hi @JohnFrrr
We only provided a pre-built plugin of the wasmedge_rustls on the x86_64 Linux platforms. If you want to use this plugin on arm64, please build from source instead.

Hi @hydai
Thanks for the clarification, but when I try to build it from source following these instructions I get the error:
error: no packages found with binaries or examples

Can you help me find out if I'm doing something wrong?
Here is the terminal history (already installed CMake and Rust):

~/WasmEdge/plugins/wasmedge_rustls$ cargo build --release
   Compiling libc v0.2.153
   Compiling cc v1.0.83
   Compiling proc-macro2 v1.0.78
   Compiling unicode-ident v1.0.12
   Compiling cfg-if v1.0.0
   Compiling getrandom v0.2.12
   Compiling untrusted v0.9.0
   Compiling ring v0.17.7
   Compiling spin v0.9.8
   Compiling ring v0.16.20
   Compiling quote v1.0.35
   Compiling syn v2.0.48
   Compiling wasmedge_sys_ffi v0.13.0
   Compiling thiserror v1.0.57
   Compiling paste v1.0.14
   Compiling thiserror-impl v1.0.57
   Compiling webpki v0.22.4
   Compiling log v0.4.20
   Compiling once_cell v1.19.0
   Compiling spin v0.5.2
   Compiling untrusted v0.7.1
   Compiling rustls v0.20.9
   Compiling sct v0.7.1
   Compiling wasmedge_plugin_sdk v0.2.0
   Compiling webpki-roots v0.22.6
   Compiling bytes v1.5.0
   Compiling wasmedge_rustls_plugin v0.2.0 (/home/docker/WasmEdge/plugins/wasmedge_rustls)
    Finished release [optimized] target(s) in 18.10s
~/WasmEdge/plugins/wasmedge_rustls$ cargo install --path .
error: no packages found with binaries or examples

Hi @JohnFrrr
Could you please check if there is a libwasmedge_rustls.so file inside target/release? If so, please copy it into your plugin folder.

Hi @L-jasmine
Please check if the issue about install --path . is not working after the Lunar New Year vacation.

Thank you @hydai !
After copying the file to the plugin folder I can run the hyper https client example successfully using the rustls plugin, although I still receive the following three errors, should I worry about them?

[2024-02-18 18:03:40.345] [error] instantiation failed: module name conflict, Code: 0x60
[2024-02-18 18:03:40.345] [error]     At AST node: module
[2024-02-18 18:03:40.350] [error]     AOT section -- library load failed:loading failed: integer too large, Code: 0x35 , use interpreter mode instead.

*The first two are the same as the #2418 issue.

Here is a more complete history of the terminal:

sudo ls $HOME/.wasmedge/plugin #confirming that the file was correctly copied to the wasmedge plugin folder
libwasmedge_rustls.so #here it is
~$ cd wasmedge_hyper_demo/client-https
~/wasmedge_hyper_demo/client-https$ wasmedge wasmedge_hyper_client_https.wasm
[2024-02-18 18:03:40.345] [error] instantiation failed: module name conflict, Code: 0x60
[2024-02-18 18:03:40.345] [error]     At AST node: module
[2024-02-18 18:03:40.350] [error]     AOT section -- library load failed:loading failed: integer too large, Code: 0x35 , use interpreter mode instead.
Response: 200 OK
Headers: {
    "date": "Sun, 18 Feb 2024 18:03:40 GMT",
    "content-type": "application/json",
    "content-length": "238",
    "connection": "keep-alive",
    "server": "gunicorn/19.9.0",
    "access-control-allow-origin": "*",
    "access-control-allow-credentials": "true",
}

{
  "args": {
    "msg": "WasmEdge"
  }, 
  "headers": {
    "Host": "httpbin.org", 
    "X-Amzn-Trace-Id": "Root=1-65d2467c-3c79b310673c469c3b42e5d5"
  }, 
  "origin": "179.250.248.61", 
  "url": "https://httpbin.org/get?msg=WasmEdge"
}



Done!

These error msg could be ignored correctly.
The first two errors are triggered when using the rust plugin.
The third error is the pre-compiled wasm file contains some incompatible AOT section so we just skip the AOT part and use the interpreter mode instead.