WasmEdge Runtime is a high-performance, extensible, and hardware optimized WebAssembly Virtual Machine for automotive, cloud, AI, and blockchain applications.

Overview

中文文档

Quick start guides

🤖 Build and contribute to WasmEdge
⌨️ Run a standalone Wasm program from CLI or Node.js or Golang or CRI-O / Docker
💭 Deploy a Wasm function as a web service (FaaS)
🛠 Embed a user-defined Wasm function in a SaaS platform
🔩 Embed a Wasm function in your Node.js web app
🔌 Embed a Wasm function in your Golang app
🔗 Deploy a Wasm function as a blockchain smart contract

build Total alerts Language grade: C/C++ codecov FOSSA Status

Introduction

WasmEdge (previously known as SSVM) is a high-performance WebAssembly (Wasm) VM optimized for Edge Computing, including Edge Clouds and Software Defined Vehicles. In its AOT mode, WasmEdge is the fastest Wasm VM on the market today.

WasmEdge is an official sandbox project hosted by CNCF (Cloud Native Computing Foundation).

The most important use case for WasmEdge is to safely execute user-defined or community-contributed code as plug-ins in a software product (e.g., a SaaS, a car OS, an edge node, or even a blockchain node). It enables third-party developers, vendors, suppliers, and community members to extend and customize the software product. With WasmEdge, a software product could become a host platform.

WasmEdge provides a well-defined execution sandbox for its contained Wasm bytecode program. The bytecode program cannot access operating system resources (e.g., file system, sockets, environment variables, processes) without explicit permissions from the VM's runner. The runner specifies the system resources the VM can access in the VM's configuration options upon starting up (a.k.a capability-based security model).

WasmEdge also provides memory protection for its contained bytecode program. If the program attempts to access memory outside of the region allocated to the VM, the VM will terminate with an error message.

WasmEdge and its contained wasm program can be started from the CLI as a new process, or from a existing process. If started from an existing process (e.g., from a running Node.js or Golang program), the VM will simply run inside the process as a function. It is also possible to start a WasmEdge VM instance as a thread. Currently, WasmEdge is not yet thread-safe, meaning that VM instances running in different threads in the same process will potentially be able to access each other's memory. In the future, we plan to make WasmEdge thread safe.

Embed WasmEdge into a host application

A major use case of WasmEdge is to start an VM instance from a host application. In general, you can use the WasmEdge C API to do so.

However, the Wasm spec, and the WasmEdge C API, only supports very limited data types as input parameters and return values for the contained Wasm bytecode functions. In order to pass complex data types, such as a string of an array, as call arguments into the contained function, you should use the bindgen solution provided by the rustwasmc toolchain.

We currently supports bindgen in the Node.js host environment and in Golang environment. We are working on supporting interface types in place of bindgen for future releases.

Call native host functions from WasmEdge

Sometimes, the Wasm bytecode alone could prove too limiting for some applications. WasmEdge provides a host function API that allows Wasm bytecode programs to load and call native library functions from the underlying host operating system.

The host functions break the Wasm sandbox. But the sandbox breaking is done with explicit permission from the system’s operator.

In fact, the extensions to WasmEdge are implemented using native host functions. For example, the Tensorflow extension allows Wasm bytecode to make calls to the native Tensorflow library functions.

Manage WasmEdge VM instances

With the WasmEdge C API, you can write a program to start, stop, and manage WasmEdge VM instances in your own applications. For example,

  • When WasmEdge functions are embedded in Node.js or in Slack, the VM is launched by the application when there is an incoming request.
  • When WasmEdge functions are plugged into a data flow engine like YoMo, the VM is launched when a new data point flows through the system.
  • As an OCI compliant runtime, WasmEdge applications could be managed by Docker tools such as CRI-O and Docker Hub. See how We are currently working on Kubernetes support.

Support wasm standard extensions

WasmEdge supports optional WebAssembly features and proposals. Those proposals are likely to become official WebAssembly specifications in the future. WasmEdge supports the following proposals.

  • WASI (WebAssembly Systems Interface) spec. WasmEdge has supported the WASI spec for WebAssembly programs to interact with the host Linux operating system securely.
  • Reference Types. It allows WebAssembly programs to exchange data with host applications and operating systems.
  • Bulk memory operations. The WebAssembly program sees faster memory access and performs better with bulk memory operations.
  • SIMD (Single instruction, multiple data). For modern devices with multiple CPU cores, the SIMD allows data processing programs to take advantage of the CPUs fully. SIMD could significantly enhance the performance of data applications.

Meanwhile, the WasmEdge team is exploring the wasi-socket proposal to support network access in WebAssembly programs.

WasmEdge extensions

A key differentiator of WasmEdge from other WebAssembly VMs is its support for non-standard extensions. The WASI spec provides a mechanism for developers to extend WebAssembly VMs efficiently and securely. The WasmEdge team created the following WASI-like extensions based on real-world customer demands.

  • Tensorflow. Developers can write Tensorflow inference functions using a simple Rust API, and then run the function securely and at native speed inside WasmEdge.
  • Other AI frameworks. Besides Tensorflow, the Second State team is building WASI-like extensions for AI frameworks such as ONNX and Tengine for WasmEdge.
  • Storage. The WasmEdge storage interface allows WebAssembly programs to read and write a key value store.
  • Command interface. WasmEdge enables webassembly functions execute native commands in the host operating system. It supports passing arguments, environment variables, STDIN / STDOUT pipes, and security policies for host access.
  • Ethereum. The WasmEdge Ewasm extension supports Ethereum smart contracts compiled to WebAssembly. It is a leading implementation for Ethereum flavored WebAssembly (Ewasm).
  • Substrate. The Pallet allows WasmEdge to act as an Ethereum smart contract execution engine on any Substrate based blockchains.

Use cases

WasmEdge enables software products to be extended and customized by their users. With WasmEdge, any software product can build a developer ecosystem. Here are some specific use cases from our customers and partners.

Community

Contributing

If you would like to contribute to the WasmEdge project, please refer to our CONTRIBUTION document for details. If you are looking for ideas, checkout our wish list!

Contact

If you have any questions, feel free to open a GitHub issue on a related project or to join the following channels:

License

FOSSA Status

Comments
  • segfault when checkAccessBound

    segfault when checkAccessBound

    Description

    I am trying to integrate WasmEdge into wasm-nginx-module. When I tried to use WasmEdge as the Wasm VM, I got a segfault:

    (gdb) bt
    #0  WasmEdge::AST::Limit::getMin (this=0x0) at /home/lzx/git/WasmEdge/include/ast/type.h:47
    #1  0x00007fc0bf1d9fbd in WasmEdge::Runtime::Instance::MemoryInstance::checkAccessBound (this=0x0, Offset=92, Length=4)
        at /home/lzx/git/WasmEdge/include/runtime/instance/memory.h:77
    #2  0x00007fc0bf27ab5b in WasmEdge::Runtime::Instance::MemoryInstance::storeValue<unsigned int> (this=0x0, [email protected]: 0, Offset=92, Length=4)
        at /home/lzx/git/WasmEdge/include/runtime/instance/memory.h:311
    #3  0x00007fc0bf25ddee in WasmEdge::Executor::Executor::runStoreOp<unsigned int> (this=0x1813930, MemInst=..., Instr=..., BitWidth=32)
        at /home/lzx/git/WasmEdge/include/executor/engine/memory.ipp:60
    #4  0x00007fc0bf250684 in WasmEdge::Executor::Executor::execute(WasmEdge::Runtime::StoreManager&, WasmEdge::AST::Instruction const*, WasmEdge::AST::Instruction const*)::$_0::operator()() const (this=0x7ffd1e233290) at /home/lzx/git/WasmEdge/lib/executor/engine/engine.cpp:242
    #5  0x00007fc0bf24ec3a in WasmEdge::Executor::Executor::execute (this=0x1813930, StoreMgr=..., Start=0x304f950, End=0x304fa10)
        at /home/lzx/git/WasmEdge/lib/executor/engine/engine.cpp:1606
    #6  0x00007fc0bf24eed6 in WasmEdge::Executor::Executor::runFunction(WasmEdge::Runtime::StoreManager&, WasmEdge::Runtime::Instance::FunctionInstance const&, cxx20::span<WasmEdge::Variant<unsigned int, int, unsigned long, long, float, double, unsigned __int128, __int128, unsigned long __vector(2), long __vector(2), unsigned int __vector(4), int __vector(4), unsigned short __vector(8), short __vector(8), unsigned char __vector(16), signed char __vector(16), float __vector(4), double __vector(2), WasmEdge::UnknownRef, WasmEdge::FuncRef, WasmEdge::ExternRef> const, 18446744073709551615ul>) (this=0x1813930, StoreMgr=..., Func=..., Params=...) at /home/lzx/git/WasmEdge/lib/executor/engine/engine.cpp:44
    #7  0x00007fc0bf288a88 in WasmEdge::Executor::Executor::invoke(WasmEdge::Runtime::StoreManager&, unsigned int, cxx20::span<WasmEdge::Variant<unsigned int, int, unsigned long, long, float, double, unsigned __int128, __int128, unsigned long __vector(2), long __vector(2), unsigned int __vector(4), int __vector(4), unsigned short __vector(8), short __vector(8), unsigned char __vector(16), signed char __vector(16), float __vector(4), double __vector(2), WasmEdge::UnknownRef, WasmEdge::FuncRef, WasmEdge::ExternRef> const, 18446744073709551615ul>, cxx20::span<WasmEdge::ValType const, 18446744073709551615ul>) (this=0x1813930, StoreMgr=..., FuncAddr=2766, Params=..., ParamTypes=...)
        at /home/lzx/git/WasmEdge/lib/executor/executor.cpp:108
    #8  0x00007fc0bf171c51 in WasmEdge_ExecutorInvoke::$_9::operator() (this=0x7ffd1e2338a0) at /home/lzx/git/WasmEdge/lib/api/wasmedge.cpp:1528
    #9  0x00007fc0bf16af0f in (anonymous namespace)::wrap<WasmEdge_ExecutorInvoke::$_9, WasmEdge_ExecutorInvoke::$_10, WasmEdge_ExecutorContext, WasmEdge_StoreContext> (Proc=...,
        Then=..., Cxts=0x1859ff0, Cxts=0x1859ff0) at /home/lzx/git/WasmEdge/lib/api/wasmedge.cpp:265
    #10 0x00007fc0bf16a828 in WasmEdge_ExecutorInvoke (Cxt=0x1813930, StoreCxt=0x1859ff0, FuncName=..., Params=0x7ffd1e233b80, ParamLen=2, Returns=0x7ffd1e233b60, ReturnLen=1)
        at /home/lzx/git/WasmEdge/lib/api/wasmedge.cpp:1506
    #11 0x0000000000699c30 in ngx_wasm_wasmedge_call (data=0x3053ca0, name=0x72bd60 <proxy_on_configure>, has_result=true, param_type=3)
        at /home/lzx/git/wasm-nginx-module/src/vm/wasmedge.c:325
    #12 0x00000000006915db in ngx_http_wasm_on_configure (hw_plugin=0x23d97d0, conf=0x7fc0be967e20 "{\"http_status\": 401, \"percentage\": 0}", size=37)
        at /home/lzx/git/wasm-nginx-module/src/http/ngx_http_wasm_module.c:422
    

    The code can be found in https://github.com/api7/wasm-nginx-module/pull/93/files#diff-29a3e0c7bd2fd8b0d13dd0490a28522f81448eecc538703e39429410ee424ea8R260

    I could send you the .wasm file if needed.

    Environment

    • Hardware Architecture: (e.g. x86_64 or aarch64) x86_64
    • Operating system: (e.g. Ubuntu 20.04 or CentOS 7.6) Ubuntu 20.04

    The following information is optional. Please provide them only if you have built from source.

    • C++ Compiler version:
    • CMake version:
    • CMake flags: (e.g. -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_BUILD_AOT_RUNTIME=ON)
    • Boost version:

    Steps to Reproduce

    Run the https://github.com/api7/wasm-nginx-module/blob/main/t/rust.t test with the code in https://github.com/api7/wasm-nginx-module/pull/93

    opened by spacewander 25
  • [Rust] Refactoring: wasmedge-sys and wasmedge-rs update to 0.2.0

    [Rust] Refactoring: wasmedge-sys and wasmedge-rs update to 0.2.0

    wasmedge-sys 0.2.0

    • Improvements

      1. Wrap the unsafe code that deals directly with the C-API into the wasmedge-sys library.
      2. Expose the necessary interfaces to the upper layers for building the Rust sdk.
    • Features

      1. Turning on the Wasi support.

    wasmedge-rs 0.2.0

    • Improvements

      1. Change the vm api to a chain call and provide explicit semantics.
      2. Design the api to ensure that config/module/vm are created in the same scope so that memory can be reasonably freed.
    • Features

      1. Turning on the Wasi support.
    opened by ZhangHanDong 25
  • Build wasmedge-sys error from scratch

    Build wasmedge-sys error from scratch

    Description

    I added the latest wasmedge-sys to Cargo.toml, and cargo build will get error:

    [email protected]:~/demo$ cargo build
        Blocking waiting for file lock on build directory
       Compiling leb128 v0.2.5
       Compiling unicode-width v0.1.9
       Compiling ppv-lite86 v0.2.16
       Compiling libc v0.2.126
       Compiling memchr v2.5.0
       Compiling wasm-encoder v0.13.0
       Compiling thiserror v1.0.31
       Compiling wasmedge-sys v0.7.0
       Compiling getrandom v0.2.7
       Compiling rand_core v0.6.3
       Compiling wast v42.0.0
       Compiling rand_chacha v0.3.1
       Compiling rand v0.8.5
    The following warnings were emitted during compilation:
    
    warning: [wasmedge-sys] not_standalone
    warning: [wasmedge-sys] TARGET_OS: linux
    warning: [wasmedge-sys] git init output: Output { status: ExitStatus(unix_wait_status(0)), stdout: "Reinitialized existing Git repository in /home/coder/demo/target/debug/build/wasmedge-sys-37a25dfbb3310fc8/out/wasmedge/.git/\n", stderr: "" }
    warning: [wasmedge-sys] git remote add output: Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: remote origin already exists.\n" }
    warning: [wasmedge-sys] git fetch output: Output { status: ExitStatus(unix_wait_status(0)), stdout: "", stderr: "From https://github.com/WasmEdge/WasmEdge\n * branch              HEAD       -> FETCH_HEAD\n" }
    warning: [wasmedge-sys] git checkout output: Output { status: ExitStatus(unix_wait_status(0)), stdout: "", stderr: "HEAD is now at 0eca4b9f [Misc] Add the necessary components of WasmEdge static library.\n" }
    
    error: failed to run custom build command for `wasmedge-sys v0.7.0`
    
    Caused by:
      process didn't exit successfully: `/home/coder/demo/target/debug/build/wasmedge-sys-8747e4711719c10f/build-script-build` (exit status: 101)
    

    Then I follow the link to build from scratch

    https://wasmedge.org/book/en/extend/build.html

    Did I miss something?

    Current State

    image

    Expected

    Building will be Ok

    Environment

    Linux pearl 5.13.0-1029-azure #34~20.04.1-Ubuntu SMP Thu Jun 9 12:37:07 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

    opened by chenyukang 20
  • [OSPP] A MySQL database driver for WebAssembly

    [OSPP] A MySQL database driver for WebAssembly

    Motivation

    As WebAssembly is increasingly adopted as a server-side application runtime, WebAssembly applications, such as serverless functions and embedded functions, require access to relational databases. This can be done through socket connections to the database server. However, WebAssembly does not yet support the POSIX socket API. That means standard Rust (or JavaScript) connectors for MySQL would not run correctly in WebAssembly.

    Details

    WasmEdge provides its own networking socket extensions for WebAssembly. With the WasmEdge Rust and JavaScript SDKs, developers can write high-performance and non-blocking I/O applications including database connectors. The WasmEdge Rust SDK for networking socket is similar to Tokio’s low-level API.

    In this project, the participant will utilize the WasmEdge Rust SDK to implement a connector for the MySQL database. The final deliverable should be similar to MySQL’s official Rust connector.

    Appendix

    https://github.com/second-state/wasmedge_wasi_socket

    Apply here: https://summer-ospp.ac.cn/#/org/prodetail/228830160

    OSPP 
    opened by alabulei1 20
  • Create a Tokio-like async runtime in WasmEdge

    Create a Tokio-like async runtime in WasmEdge

    Motivation

    One of the most important features of WasmEdge is its support for non-blocking network sockets. However, the current WasmEdge API for async networking is still cumbersome. Rust developers would prefer to use a Tokio-like async / await API for such tasks.

    But Tokio is multi-threaded and cannot run correctly in standard single-threaded WebAssembly. Yet, it is possible to provide a single-threaded Tokio runtime. Our goal is to create a WebAssembly compatible Tokio scheduler.

    Specification

    1. Study and evaluate the Tokio runtime and its API.
    2. Create a single thread scheduler runtime with Tokio compatible API.
    3. Compile the new runtime to WebAssembly.
    4. Fix any potential gap in WasmEdge to support the new Tokio compatible runtime.
    5. Create a suite of HTTP fetch (GET and POST) and server demo apps using the new Tokio API.

    Qualifications

    To apply this LFX mentorship, there are some minimum qualifications:

    1. Experience with the Rust programming language and the Tokio framework.
    2. Experience with WebAssembly and WasmEdge.

    Appendix

    1. The Tokio async runtime for Rust: https://tokio.rs/
    2. Tokio single-thread scheduler: https://stackoverflow.com/questions/61763072/is-there-a-way-to-use-tokiomain-with-a-single-threaded-runtime-in-tokio-0-2
    3. The non-blocking I/O API for WasmEdge: https://wasmedge.org/book/en/dev/rust/networking-nonblocking.html
    4. The Rust API for the WasmEdge sockets extension: https://github.com/second-state/wasmedge_wasi_socket
    LFX Mentorship 
    opened by juntao 19
  • [Java SDK] Implementation of Java SDK

    [Java SDK] Implementation of Java SDK

    This feature is still working in progress. Tasks:

    • [x] Set up wasmedge-jni project
    • [x] Set up wasmedge-java project
    • [ ] Wrap c apis
      • [ ] WasmEdge Basics
        • [x] Version
        • [x] Logging Settings
        • [x] Value Types
        • [x] Strings
        • [x] Results
        • [ ] Contexts
          • [x] ConfigureContext
          • [x] FunctionTypeContext
          • [x] ASTModuleContext
          • [x] ExecutorContext
          • [x] ExportTypeContext
          • [x] GlobalTypeContext
          • [x] ImportTypeCOntext
          • [x] LoaderContext
          • [x] MemoryTypeContext
          • [x] LoaderContext
          • [x] StoreContext
          • [x] StatisticsContext.
          • [x] TableTypeContext
          • [x] ValidatorContext
      • [ ] WasmEdge VM
        • [x] VM Creation
        • [ ] Preregistrations
        • [x] Host Module Registrations
        • [x] Wasm Registration and Executions
        • [x] Instance Tracing
      • [ ] WasmEdge Runtime
        • [x] Loader
        • [x] Validator
        • [x] Executor
        • [x] AST Module
        • [x] Store
        • [x] Instances
        • [ ] Host Functions
      • [ ] AOT compiler
        • [x] Compiler options
      • [ ] Async API
    • [ ] Documentation
      • [x] Readme, build and install instructions
      • [ ] Java API docs
      • [ ] Step by step examples
    • [ ] CI workflow
      • [ ] build on different platforms
      • [ ] publish to maven repository
    opened by kenvifire 19
  • [Utils] Install Script Fix

    [Utils] Install Script Fix

    • Removed dangerous removal of path #412
    • Quoting of variables as per shellcheck 2086 https://github.com/koalaman/shellcheck/wiki/SC2086.
    • Apologies to the affected users ;-(

    Signed-off-by: Shreyas Atre [email protected]

    opened by SAtacker 19
  • exec container process `/add.wasm`: Exec format error error while running runtime: exit status 1

    exec container process `/add.wasm`: Exec format error error while running runtime: exit status 1

    Description

    I want to create and run the container image for test. I referred to this article(https://wasmedge.org/book/en/kubernetes/demo/wasi.html). I have followed the mentioned steps to build and install buildah. At the same time, I builded image using the tool buildah.

    $ sudo buildah images
    REPOSITORY                    TAG      IMAGE ID       CREATED       SIZE
    localhost/wasm-wasi-example   latest   d230f65c92e0   4 hours ago   2.01 MB
    

    After, i creates a new working container using the command sudo buidah from localhost/wasm-wasi-example:latest

    sudo buildah containers
    CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME
    67ac345ac1a7     *     d230f65c92e0 localhost/wasm-wasi-example:l... wasm-wasi-example-working-container
    

    Everything is normal up to here, as expected.

    However, i want to run a command inside of the container, the following error occurs, exec container process `/add.wasm`: Exec format error error while running runtime: exit status 1. One more question, If I want tocrun to manage a container, how will i do? I find that it is wrong to use crun to run a container that is created by buildah.

    Current State

    I cannot manage a container using crun or buildah

    Expected

    Input: sudo buildah run wasm-wasi-example-working-container /add.wasm 2 2 Output: 4

    Environment

    x86 Ubuntu20.04

    • Hardware Architecture: (e.g. x86_64 or aarch64)
    • Operating system: (e.g. Ubuntu 20.04 or CentOS 7.6)

    The following information is optional. Please provide them only if you have built from source.

    • C++ Compiler version:
    • CMake version:
    • CMake flags: (e.g. -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_BUILD_AOT_RUNTIME=ON)
    • Boost version:

    Steps to Reproduce

    wasm app https://github.com/second-state/wasm-learning/tree/master/cli/add build image https://wasmedge.org/book/en/kubernetes/demo/wasi.html

    opened by JcJinChen 17
  • feat: enable Include What You Use scanning in CI

    feat: enable Include What You Use scanning in CI

    Motivation

    Currently, we use a local environment to run the Include What You Use like #1179 However, it will be better to create a workflow for the regular scanning.

    Reference: https://github.com/include-what-you-use/include-what-you-use

    enhancement good first issue 
    opened by hydai 17
  • LFX Workspace: Support Durable Objects (DO) in WasmEdge

    LFX Workspace: Support Durable Objects (DO) in WasmEdge

    Motivation

    Durable Objects (DO) are persistent data objects available to applications at runtime. They can be stored in a persistent KV store or a data cache. DOs are important for stateful serverless functions.

    The Anna KVS project developed by UC Berkeley is an autoscaling KVS ideally suited for edge nodes. It is a good match for WasmEdge to support stateful serverless functions on the edge cloud. The goal of this task is to create Rust and JavaScript clients for Anna KVS using the WasmEdge socket API. It allows Rust-based WasmEdge applications to connect to Anna KVS, and store or retrieve DOs in the KVS.

    Note: A new Rust-based version of Anna KVS is going to be released soon. We will likely use the new version for this task. The network socket API for accessing the KVS will remain largely unchanged from the old version.

    Milestones

    • [x] Adapt the anna-rs client code to connect to routing and kvs nodes through TCP, instead of Zenoh.
    • [x] Adapt the anna-rs client code to use Tokio instead of smol.
    • [x] Run the adapted client on top of WasmEdge. This step depends on #1532.
    • [x] Improve API experience of the client SDK.
    LFX Mentorship 
    opened by richardchien 16
  • [CI] Add Infer Static Code Analysis

    [CI] Add Infer Static Code Analysis

    Changes

    • Fixes #519
    • Uses GitHub Actions and https://github.com/facebook/infer
    • The report can be accessed in the GiHub Actions logs

    Test Runs

    • https://github.com/avinal/WasmEdge/runs/3973355777?check_suite_focus=true#step:5:159

    Signed-off-by: Avinal Kumar [email protected]

    hacktoberfest-accepted 
    opened by avinal 16
  • [Installer] Can't install WasmEdge on maxOS with M2 chip

    [Installer] Can't install WasmEdge on maxOS with M2 chip

    Description

    Current State

    I followed the WasmEdge book's guide to install WasmEdge on my laptop. The log shows I installed WasmEdge successfully. But when I ran wasmedge -v, there was no results from the terminal

    image

    Expected

    If I installed WasmEdge successfully, the wasmedge -v command should output the right verison.

    Environment

    • Hardware Architecture: aarch64
    • Operating system: macOS Ventura
    arch:arm64 
    opened by alabulei1 4
  • [Installer] Remove the `0.8.x` supporting

    [Installer] Remove the `0.8.x` supporting

    Motivation

    According to #2062, we can remove the 0.8.x supporting in installer.

    Details

    Remove all the 0.8.x WasmEdge and extensions includes the dependencies in installer. I think it can make the installer much easier, especially the image dependencies can all be removed. Thanks.

    c:Installer 
    opened by q82419 0
  • feat: evaluate the horizontal scaling performance improvement approach

    feat: evaluate the horizontal scaling performance improvement approach

    Motivation

    Someone is asking if we can apply a similar approach to increase the multi-thread performance. Before we do this stuff, we should know what's the baseline, what's the benchmark, and what approach can be applied to our codebase.

    Appendix

    There are some possible discussions in other runtime implementations:

    1. Wasmtime: https://github.com/bytecodealliance/wasmtime/issues/4637
    Improvement priority:low 
    opened by hydai 0
  • [Installer] Update the plug-in table

    [Installer] Update the plug-in table

    Description

    Current State

    As the supported plug-in table here: https://github.com/WasmEdge/WasmEdge/blob/master/utils/install.py#L254-L263 Please help to update to the latest release (0.11.2).

    Expected

    The list is:

    wasi_crypto : ubuntu20.04 x86_64, manylinux2014 x86_64, manylinux2014 aarch64 wasi_nn-openvino : ubuntu20.04 x86_64 wasi_nn-pytorch : ubuntu20.04 x86_64, manylinux2014 x86_64 wasi_nn-tensorflowlite : ubuntu20.04 x86_64, manylinux2014 x86_64, manylinux2014 aarch64 wasmedge_httpsreq : ubuntu20.04 x86_64, manylinux2014 x86_64, manylinux2014 aarch64

    c:Installer 
    opened by q82419 1
  • [Installer] Support $DIST for WasmEdge core

    [Installer] Support $DIST for WasmEdge core

    Description

    Current State

    The $DIST only supports plug-ins. But for ABI compatibility and dependencies (especially for WASI-NN), the ubuntu and manylinux2014 versions of WasmEdge core and plug-ins cannot be mixed. The extensions like the WasmEdge-tensorflow, WasmEdge-image can be ignored because they work with C API.

    Expected

    If the detected or assigned $DIST is Ubuntu 20.04 or manylinux2014, should install the same WasmEdge and plugins. For example, when install with the command on Ubuntu 20.04:

    $ ./install.sh -v 0.12.0-alpha.1 -D
    Using Python: /usr/bin/python3
    DEBUG   - Python Version: sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0)
    DEBUG   - Compat object: Platform:Linux
    Machine:x86_64
    Version:0.12.0-alpha.1
    Extensions:[]
    Dist:ubuntu20.04
    

    Then the Ubuntu 20.04 version of WasmEdge the specified --plugins plugins (if available) should be installed.

    When install with the command on Ubuntu 20.04:

    $ ./install.sh -v 0.12.0-alpha.1 -D --dist manylinux2014
    Using Python: /usr/bin/python3
    DEBUG   - Python Version: sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0)
    DEBUG   - Compat object: Platform:Linux
    Machine:x86_64
    Version:0.12.0-alpha.1
    Extensions:[]
    Dist:manylinux2014
    

    Then the manylinux2014 version of WasmEdge and the specified --plugins plugins (if available) should be installed.

    Environment

    • Hardware Architecture: x86_64
    • Operating system: Ubuntu 20.04
    c:Installer 
    opened by q82419 8
Releases(0.12.0-alpha.1)
  • 0.12.0-alpha.1(Dec 23, 2022)

    0.12.0-alpha.1 (2022-12-23)

    Features:

    • Updated the WasmEdge shared library.
      • Due to the breaking change of ABI, bump the SOVERSION to 0.0.2.
    • Introduced the python version WasmEdge installer.
    • Updated the ABI of the wasi_ephemeral_sock.
      • Added the output port of the sock_recv_from.
      • Updated the API of sock_getlocaladdr.
      • Unified the socket address size to 128-bit.
    • Supported using libtool to archive the WasmEdge static library.

    Fixed issues:

    • Fixed WASI-NN issues.
      • Fixed the definition of wasi_nn::TensorType to prevent from comparing with dirty data.
    • Fixed the lost intrinsics table in AOT mode when using the WasmEdge C API.
    • Fixed the implementation in threads proposal.
      • Fixed the error in atomic.nofify and atomic.wait instructions.
      • Fixed the decoding of atomic.fence instruction.
      • Corrected the error message of waiting on unshared memory.

    Refactor:

    • Refactored the implementation of number loading in the file manager.
      • Supported s33 and sn loading and decoding.
    • Refactored the WasmEdge::ValType.
      • Removed the WasmEdge::ValType::None.
      • Used the flag in WasmEdge::BlockType for supporting the type index.
      • Removed the WasmEdge::Validator::VType and used the WasmEdge::ValType instead.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Updated the WASM spec tests to the date 2022/12/15.

    Thank all the contributors that made this release possible!

    DarumaDocker, Harry Chiang, Justin Echternach, Kenvi Zhu, LFsWang, Lîm Tsú-thuàn, MediosZ, Puelloc, Rafael Fernández López, Shreyas Atre, Sylveon, Xin Liu, Xiongsheng Wang, YiYing He, alabulei1, dm4, hydai, jeongkyu, little-willy

    If you want to build from source, please use WasmEdge-0.12.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.12.0-alpha.1-android_aarch64.tar.gz(669.06 KB)
    WasmEdge-0.12.0-alpha.1-darwin_x86_64.tar.gz(23.73 MB)
    WasmEdge-0.12.0-alpha.1-manylinux2014_aarch64.rpm(13.08 MB)
    WasmEdge-0.12.0-alpha.1-manylinux2014_aarch64.tar.gz(17.60 MB)
    WasmEdge-0.12.0-alpha.1-manylinux2014_aarch64.tar.xz(11.46 MB)
    WasmEdge-0.12.0-alpha.1-manylinux2014_x86_64.rpm(14.95 MB)
    WasmEdge-0.12.0-alpha.1-manylinux2014_x86_64.tar.gz(18.52 MB)
    WasmEdge-0.12.0-alpha.1-manylinux2014_x86_64.tar.xz(13.15 MB)
    WasmEdge-0.12.0-alpha.1-src.tar.gz(6.93 MB)
    WasmEdge-0.12.0-alpha.1-ubuntu20.04_x86_64.tar.gz(24.58 MB)
    WasmEdge-0.12.0-alpha.1-windows.zip(15.19 MB)
    WasmEdge-0.12.0-windows.msi(15.18 MB)
    wasmedge-0.12.0.alpha.1-1.fc38.src.rpm(6.94 MB)
    WasmEdge-plugin-wasi_crypto-0.12.0-alpha.1-manylinux2014_aarch64.tar.gz(4.05 MB)
    WasmEdge-plugin-wasi_crypto-0.12.0-alpha.1-manylinux2014_x86_64.tar.gz(1.92 MB)
    WasmEdge-plugin-wasi_crypto-0.12.0-alpha.1-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.12.0-alpha.1-ubuntu20.04_x86_64.tar.gz(113.61 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.12.0-alpha.1-manylinux2014_x86_64.tar.gz(3.30 MB)
    WasmEdge-plugin-wasi_nn-pytorch-0.12.0-alpha.1-ubuntu20.04_x86_64.tar.gz(120.01 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.12.0-alpha.1-manylinux2014_aarch64.tar.gz(2.60 MB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.12.0-alpha.1-manylinux2014_x86_64.tar.gz(370.22 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.12.0-alpha.1-ubuntu20.04_x86_64.tar.gz(107.48 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.12.0-alpha.1-manylinux2014_aarch64.tar.gz(4.07 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.12.0-alpha.1-manylinux2014_x86_64.tar.gz(1.93 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.12.0-alpha.1-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    wasmedge.spec(2.47 KB)
  • 0.11.2(Nov 3, 2022)

    0.11.2 (2022-11-03)

    Features:

    • Added the new WasmEdge C API.
      • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
      • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
      • Added the WasmEdge_LogOff() API to turn off the logging.
      • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
    • Added the additional hint messages if import not found when in instantiation.
    • Added the forcibly interpreter execution mode in WasmEdge CLI.
      • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
    • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
    • Bump the fmt format of logging to 9.0.0.
    • Added the new experimental edge-triggered epoll API epollOneoff in the WASI component.

    Fixed issues:

    • Detected the valid _start function of the WasmEdge CLI command mode.
      • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
    • Fixed the non-English WasmEdge CLI arguments error on Windows.
    • Fixed the AOT compiler issues.
      • Fixed the operand of frintn on arm64 platforms.
      • Corrected the unreachable status to record on every control stacks.
    • Refined the Loader performance.
      • Capped the maximum local counts to 67108864 (2^26).
      • Rejected wrong data when loading the universal WASM.
      • Rejected the unreasonable long vector sizes.
    • Fixed the lost std namespace in the experimental::expected.
    • Fixed the repeatedly compilation of universal WASM format.
      • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
      • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
    • Hided the local symbols of the WasmEdge shared library.
    • Loaded the default plug-in path from the path related to the WasmEdge shared library.
      • This only fixed on the MacOS and Linux platforms now.
    • Updated the minimum CMake required version on Android.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN TensorFlow-Lite backend unit test.
    • Added the new C API unit tests.
    • Applied more fuzz tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Gustavo Ye, HangedFish, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, MediosZ, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, dm4, he11c, hydai, vincent, yyy1000, zhlhahaha

    If you want to build from source, please use WasmEdge-0.11.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.11.2-1.fc38.src.rpm(7.47 MB)
    WasmEdge-0.11.2-android_aarch64.tar.gz(669.28 KB)
    WasmEdge-0.11.2-darwin_arm64.tar.gz(27.74 MB)
    WasmEdge-0.11.2-darwin_x86_64.tar.gz(23.73 MB)
    WasmEdge-0.11.2-manylinux2014_aarch64.rpm(13.08 MB)
    WasmEdge-0.11.2-manylinux2014_aarch64.tar.gz(17.60 MB)
    WasmEdge-0.11.2-manylinux2014_aarch64.tar.xz(11.46 MB)
    WasmEdge-0.11.2-manylinux2014_x86_64.rpm(14.95 MB)
    WasmEdge-0.11.2-manylinux2014_x86_64.tar.gz(18.52 MB)
    WasmEdge-0.11.2-manylinux2014_x86_64.tar.xz(13.12 MB)
    WasmEdge-0.11.2-src.tar.gz(7.46 MB)
    WasmEdge-0.11.2-ubuntu20.04_x86_64.tar.gz(24.58 MB)
    WasmEdge-0.11.2-windows.msi(15.17 MB)
    WasmEdge-0.11.2-windows.zip(15.17 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-manylinux2014_aarch64.tar.gz(4.05 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-manylinux2014_x86_64.tar.gz(1.92 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.2-ubuntu20.04_x86_64.tar.gz(113.61 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-manylinux2014_x86_64.tar.gz(3.30 MB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-ubuntu20.04_x86_64.tar.gz(120.01 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-manylinux2014_aarch64.tar.gz(2.60 MB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-manylinux2014_x86_64.tar.gz(370.23 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-ubuntu20.04_x86_64.tar.gz(107.46 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-manylinux2014_aarch64.tar.gz(4.07 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-manylinux2014_x86_64.tar.gz(1.93 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    WasmEdge-slim-runtime-0.11.2-manylinux2014_aarch64.tar.gz(1.24 MB)
    WasmEdge-slim-runtime-0.11.2-manylinux2014_x86_64.tar.gz(781.10 KB)
    wasmedge.spec(2.45 KB)
  • 0.11.2-rc.3(Nov 1, 2022)

    0.11.2-rc.3 (2022-11-01)

    Features:

    • Added the new WasmEdge C API.
      • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
      • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
      • Added the WasmEdge_LogOff() API to turn off the logging.
      • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
    • Added the additional hint messages if import not found when in instantiation.
    • Added the forcibly interpreter execution mode in WasmEdge CLI.
      • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
    • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
    • Bump the fmt format of logging to 9.0.0.
    • Add the new experimental edge-triggered epoll API epollOneoff in the WASI component.

    Fixed issues:

    • Detected the valid _start function of the WasmEdge CLI command mode.
      • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
    • Fixed the non-English WasmEdge CLI arguments error on Windows.
    • Fixed the AOT compiler issues.
      • Fixed the operand of frintn on arm64 platforms.
      • Corrected the unreachable status to record on every control stacks.
    • Refined the Loader performance.
      • Capped the maximum local counts to 67108864 (2^26).
      • Rejected wrong data when loading the universal WASM.
      • Rejected the unreasonable long vector sizes.
    • Fixed the lost std namespace in the experimental::expected.
    • Fixed the repeatedly compilation of universal WASM format.
      • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
      • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
    • Hided the local symbols of the WasmEdge shared library.
    • Loaded the default plug-in path from the path related to the WasmEdge shared library.
      • This only fixed on the MacOS and Linux platforms now.
    • Updated the minimum CMake required version on Android.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN TensorFlow-Lite backend unit test.
    • Added the new C API unit tests.
    • Applied more fuzz tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Gustavo Ye, HangedFish, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, dm4, he11c, hydai, vincent, yyy1000, zhlhahaha

    If you want to build from source, please use WasmEdge-0.11.2-rc.3-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.2-rc.3-android_aarch64.tar.gz(669.29 KB)
    WasmEdge-0.11.2-rc.3-darwin_x86_64.tar.gz(23.73 MB)
    WasmEdge-0.11.2-rc.3-manylinux2014_aarch64.rpm(13.08 MB)
    WasmEdge-0.11.2-rc.3-manylinux2014_aarch64.tar.gz(17.60 MB)
    WasmEdge-0.11.2-rc.3-manylinux2014_aarch64.tar.xz(11.46 MB)
    WasmEdge-0.11.2-rc.3-manylinux2014_x86_64.rpm(14.95 MB)
    WasmEdge-0.11.2-rc.3-manylinux2014_x86_64.tar.gz(18.52 MB)
    WasmEdge-0.11.2-rc.3-manylinux2014_x86_64.tar.xz(13.13 MB)
    WasmEdge-0.11.2-rc.3-src.tar.gz(7.46 MB)
    WasmEdge-0.11.2-rc.3-ubuntu20.04_x86_64.tar.gz(24.58 MB)
    WasmEdge-0.11.2-rc.3-windows.zip(15.17 MB)
    WasmEdge-0.11.2-windows.msi(15.17 MB)
    wasmedge-0.11.2.rc.3-1.fc38.src.rpm(7.47 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.3-manylinux2014_aarch64.tar.gz(4.05 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.3-manylinux2014_x86_64.tar.gz(1.92 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.3-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.2-rc.3-ubuntu20.04_x86_64.tar.gz(113.61 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-rc.3-manylinux2014_x86_64.tar.gz(3.30 MB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-rc.3-ubuntu20.04_x86_64.tar.gz(120.01 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.3-manylinux2014_aarch64.tar.gz(2.60 MB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.3-manylinux2014_x86_64.tar.gz(370.23 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.3-ubuntu20.04_x86_64.tar.gz(107.45 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.3-manylinux2014_aarch64.tar.gz(4.07 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.3-manylinux2014_x86_64.tar.gz(1.93 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.3-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    wasmedge.spec(2.46 KB)
  • 0.11.2-rc.2(Nov 1, 2022)

    0.11.2-rc.2 (2022-10-31)

    Features:

    • Added the new WasmEdge C API.
      • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
      • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
      • Added the WasmEdge_LogOff() API to turn off the logging.
      • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
    • Added the additional hint messages if import not found when in instantiation.
    • Added the forcibly interpreter execution mode in WasmEdge CLI.
      • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
    • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
    • Bump the fmt format of logging to 9.0.0.

    Fixed issues:

    • Detected the valid _start function of the WasmEdge CLI command mode.
      • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
    • Fixed the non-English WasmEdge CLI arguments error on Windows.
    • Fixed the AOT compiler issues.
      • Fixed the operand of frintn on arm64 platforms.
      • Corrected the unreachable status to record on every control stacks.
    • Refined the Loader performance.
      • Capped the maximum local counts to 67108864 (2^26).
      • Rejected wrong data when loading the universal WASM.
      • Rejected the unreasonable long vector sizes.
    • Fixed the lost std namespace in the experimental::expected.
    • Fixed the repeatedly compilation of universal WASM format.
      • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
      • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
    • Hided the local symbols of the WasmEdge shared library.
    • Loaded the default plug-in path from the path related to the WasmEdge shared library.
      • This only fixed on the MacOS and Linux platforms now.
    • Updated the minimum CMake required version on Android.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN TensorFlow-Lite backend unit test.
    • Added the new C API unit tests.
    • Applied more fuzz tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Gustavo Ye, HangedFish, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, dm4, he11c, hydai, vincent, yyy1000, zhlhahaha

    If you want to build from source, please use WasmEdge-0.11.2-rc.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.2-rc.2-android_aarch64.tar.gz(654.44 KB)
    WasmEdge-0.11.2-rc.2-darwin_x86_64.tar.gz(23.73 MB)
    WasmEdge-0.11.2-rc.2-manylinux2014_aarch64.rpm(13.08 MB)
    WasmEdge-0.11.2-rc.2-manylinux2014_aarch64.tar.gz(17.58 MB)
    WasmEdge-0.11.2-rc.2-manylinux2014_aarch64.tar.xz(11.45 MB)
    WasmEdge-0.11.2-rc.2-manylinux2014_x86_64.rpm(14.94 MB)
    WasmEdge-0.11.2-rc.2-manylinux2014_x86_64.tar.gz(18.51 MB)
    WasmEdge-0.11.2-rc.2-manylinux2014_x86_64.tar.xz(13.12 MB)
    WasmEdge-0.11.2-rc.2-src.tar.gz(7.46 MB)
    WasmEdge-0.11.2-rc.2-ubuntu20.04_x86_64.tar.gz(24.57 MB)
    WasmEdge-0.11.2-rc.2-windows.zip(15.16 MB)
    WasmEdge-0.11.2-windows.msi(15.16 MB)
    wasmedge-0.11.2.rc.2-1.fc38.src.rpm(7.46 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.2-manylinux2014_aarch64.tar.gz(4.05 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.2-manylinux2014_x86_64.tar.gz(1.92 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.2-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.2-rc.2-ubuntu20.04_x86_64.tar.gz(113.61 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-rc.2-manylinux2014_x86_64.tar.gz(3.30 MB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-rc.2-ubuntu20.04_x86_64.tar.gz(120.01 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.2-manylinux2014_aarch64.tar.gz(2.60 MB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.2-manylinux2014_x86_64.tar.gz(370.22 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.2-ubuntu20.04_x86_64.tar.gz(107.46 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.2-manylinux2014_aarch64.tar.gz(4.07 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.2-manylinux2014_x86_64.tar.gz(1.93 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.2-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    wasmedge.spec(2.46 KB)
  • 0.11.2-rc.1(Oct 28, 2022)

    0.11.2-rc.1 (2022-10-28)

    Features:

    • Added the new WasmEdge C API.
      • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
      • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
      • Added the WasmEdge_LogOff() API to turn off the logging.
      • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
    • Added the additional hint messages if import not found when in instantiation.
    • Added the forcibly interpreter execution mode in WasmEdge CLI.
      • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
    • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
    • Bump the fmt format of logging to 9.0.0.

    Fixed issues:

    • Detected the valid _start function of the WasmEdge CLI command mode.
      • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
    • Fixed the non-English WasmEdge CLI arguments error on Windows.
    • Fixed the AOT compiler issues.
      • Fixed the operand of frintn on arm64 platforms.
      • Corrected the unreachable status to record on every control stacks.
    • Refined the Loader performance.
      • Capped the maximum local counts to 67108864 (2^26).
      • Rejected wrong data when loading the universal WASM.
      • Rejected the unreasonable long vector sizes.
    • Fixed the lost std namespace in the experimental::expected.
    • Fixed the repeatedly compilation of universal WASM format.
      • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
      • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
    • Hided the local symbols of the WasmEdge shared library.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN TensorFlow-Lite backend unit test.
    • Added the new C API unit tests.
    • Applied more fuzz tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Gustavo Ye, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, dm4, he11c, hydai, vincent, zhlhahaha

    If you want to build from source, please use WasmEdge-0.11.2-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.2-rc.1-android_aarch64.tar.gz(654.09 KB)
    WasmEdge-0.11.2-rc.1-darwin_x86_64.tar.gz(23.73 MB)
    WasmEdge-0.11.2-rc.1-manylinux2014_aarch64.rpm(13.08 MB)
    WasmEdge-0.11.2-rc.1-manylinux2014_aarch64.tar.gz(17.59 MB)
    WasmEdge-0.11.2-rc.1-manylinux2014_aarch64.tar.xz(11.46 MB)
    WasmEdge-0.11.2-rc.1-manylinux2014_x86_64.rpm(14.94 MB)
    WasmEdge-0.11.2-rc.1-manylinux2014_x86_64.tar.gz(18.51 MB)
    WasmEdge-0.11.2-rc.1-manylinux2014_x86_64.tar.xz(13.12 MB)
    WasmEdge-0.11.2-rc.1-src.tar.gz(7.46 MB)
    WasmEdge-0.11.2-rc.1-ubuntu20.04_x86_64.tar.gz(24.57 MB)
    WasmEdge-0.11.2-rc.1-windows.zip(15.16 MB)
    WasmEdge-0.11.2-windows.msi(15.16 MB)
    wasmedge-0.11.2.rc.1-1.fc38.src.rpm(7.46 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.1-manylinux2014_aarch64.tar.gz(4.05 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.1-manylinux2014_x86_64.tar.gz(1.92 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-rc.1-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.2-rc.1-ubuntu20.04_x86_64.tar.gz(113.61 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-rc.1-manylinux2014_x86_64.tar.gz(3.30 MB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-rc.1-ubuntu20.04_x86_64.tar.gz(120.01 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.1-manylinux2014_aarch64.tar.gz(2.60 MB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.1-manylinux2014_x86_64.tar.gz(370.23 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-rc.1-ubuntu20.04_x86_64.tar.gz(107.46 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.1-manylinux2014_aarch64.tar.gz(4.07 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.1-manylinux2014_x86_64.tar.gz(1.93 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-rc.1-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    wasmedge.spec(2.46 KB)
  • 0.11.2-alpha.1(Oct 25, 2022)

    0.11.2-alpha.1 (2022-10-25)

    Features:

    • Added the new WasmEdge C API.
      • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
      • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
      • Added the WasmEdge_LogOff() API to turn off the logging.
      • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
    • Added the additional hint messages if import not found when in instantiation.
    • Added the forcibly interpreter execution mode in WasmEdge CLI.
      • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
    • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
    • Bump the fmt format of logging to 9.0.0.

    Fixed issues:

    • Detected the valid _start function of the WasmEdge CLI command mode.
      • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
    • Fixed the non-English WasmEdge CLI arguments error on Windows.
    • Fixed the AOT compiler issues.
      • Fixed the operand of frintn on arm64 platforms.
      • Corrected the unreachable status to record on every control stacks.
    • Refined the Loader performance.
      • Capped the maximum local counts to 67108864 (2^26).
      • Rejected wrong data when loading the universal WASM.
      • Rejected the unreasonable long vector sizes.
    • Fixed the lost std namespace in the experimental::expected.
    • Fixed the repeatedly compilation of universal WASM format.
      • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
      • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
    • Hided the local symbols of the WasmEdge shared library.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN TensorFlow-Lite backend unit test.
    • Added the new C API unit tests.
    • Applied more fuzz tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Gustavo Ye, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, he11c, hydai, vincent

    If you want to build from source, please use WasmEdge-0.11.2-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.2-alpha.1-android_aarch64.tar.gz(654.11 KB)
    WasmEdge-0.11.2-alpha.1-darwin_x86_64.tar.gz(23.73 MB)
    WasmEdge-0.11.2-alpha.1-manylinux2014_aarch64.rpm(13.08 MB)
    WasmEdge-0.11.2-alpha.1-manylinux2014_aarch64.tar.gz(17.58 MB)
    WasmEdge-0.11.2-alpha.1-manylinux2014_aarch64.tar.xz(11.45 MB)
    WasmEdge-0.11.2-alpha.1-manylinux2014_x86_64.rpm(14.94 MB)
    WasmEdge-0.11.2-alpha.1-manylinux2014_x86_64.tar.gz(18.51 MB)
    WasmEdge-0.11.2-alpha.1-manylinux2014_x86_64.tar.xz(13.12 MB)
    WasmEdge-0.11.2-alpha.1-src.tar.gz(7.45 MB)
    WasmEdge-0.11.2-alpha.1-ubuntu20.04_x86_64.tar.gz(24.57 MB)
    WasmEdge-0.11.2-alpha.1-windows.zip(15.16 MB)
    WasmEdge-0.11.2-windows.msi(15.16 MB)
    wasmedge-0.11.2.alpha.1-1.fc38.src.rpm(7.45 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-alpha.1-manylinux2014_aarch64.tar.gz(4.05 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-alpha.1-manylinux2014_x86_64.tar.gz(1.92 MB)
    WasmEdge-plugin-wasi_crypto-0.11.2-alpha.1-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.2-alpha.1-ubuntu20.04_x86_64.tar.gz(113.61 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-alpha.1-manylinux2014_x86_64.tar.gz(3.30 MB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.2-alpha.1-ubuntu20.04_x86_64.tar.gz(120.01 KB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-alpha.1-manylinux2014_aarch64.tar.gz(2.60 MB)
    WasmEdge-plugin-wasi_nn-tensorflowlite-0.11.2-alpha.1-manylinux2014_x86_64.tar.gz(370.22 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-alpha.1-manylinux2014_aarch64.tar.gz(4.07 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-alpha.1-manylinux2014_x86_64.tar.gz(1.93 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.2-alpha.1-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    wasmedge.spec(2.47 KB)
  • 0.11.1(Oct 3, 2022)

    0.11.1 (2022-10-03)

    Features:

    • Supported WASI-NN plug-in with PyTorch backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with PyTorch backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.
    • Updated the WASI-Crypto proposal and supported OpenSSL 3.0.
    • Supported LLVM 15.
    • Added the plug-in C API.
    • Extended WasmEdge CLI.
      • Allow the optimization level assignment in wasmedgec tool.
      • Supported the v128 value type printing in wasmedge tool.
    • Released Ubuntu 20.04 version with statically linked LLVM.

    Fixed issues:

    • Fixed the private members into the protected in the module instance class.
    • Fixed the type mismatch for IntrinsicsTable initialization statement in the AOT compiler.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN PyTorch backend unit test.
    • Added fuzzing tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    DarumaDocker, Faidon Liambotis, Gustavo Ye, LFsWang, MediosZ, Michael Yuan, Shen-Ta Hsieh, Tricster, Xin Liu, Yeongju Kang, YiYing He, Zhou Zhou, hydai, jeeeerrrpop, sonder-joker, vincent

    If you want to build from source, please use WasmEdge-0.11.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.11.1-1.fc38.src.rpm(7.32 MB)
    WasmEdge-0.11.1-android_aarch64.tar.gz(710.93 KB)
    WasmEdge-0.11.1-darwin_arm64.tar.gz(27.75 MB)
    WasmEdge-0.11.1-darwin_x86_64.tar.gz(23.75 MB)
    WasmEdge-0.11.1-manylinux2014_aarch64.rpm(13.45 MB)
    WasmEdge-0.11.1-manylinux2014_aarch64.tar.gz(18.05 MB)
    WasmEdge-0.11.1-manylinux2014_aarch64.tar.xz(11.81 MB)
    WasmEdge-0.11.1-manylinux2014_x86_64.rpm(15.50 MB)
    WasmEdge-0.11.1-manylinux2014_x86_64.tar.gz(19.26 MB)
    WasmEdge-0.11.1-manylinux2014_x86_64.tar.xz(13.66 MB)
    WasmEdge-0.11.1-src.tar.gz(7.32 MB)
    WasmEdge-0.11.1-ubuntu20.04_x86_64.tar.gz(25.61 MB)
    WasmEdge-0.11.1-windows.msi(15.14 MB)
    WasmEdge-0.11.1-windows.zip(15.15 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-manylinux2014_aarch64.tar.gz(1.56 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-manylinux2014_x86_64.tar.gz(1.67 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.1-ubuntu20.04_x86_64.tar.gz(113.43 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.1-ubuntu20.04_x86_64.tar.gz(119.26 KB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.1-manylinux2014_aarch64.tar.gz(1.56 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.1-manylinux2014_x86_64.tar.gz(1.68 MB)
    WasmEdge-plugin-wasmedge_httpsreq-0.11.1-ubuntu20.04_x86_64.tar.gz(1.65 MB)
    wasmedge.spec(2.45 KB)
  • 0.11.1-rc.1(Sep 28, 2022)

    0.11.1-rc.1 (2022-09-28)

    Features:

    • Supported WASI-NN plug-in with PyTorch backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with PyTorch backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.
    • Updated the WASI-Crypto proposal and supported OpenSSL 3.0.
    • Supported LLVM 15.
    • Added the plug-in C API.
    • Extended WasmEdge CLI.
      • Allow the optimization level assignment in wasmedgec tool.
      • Supported the v128 value type printing in wasmedge tool.

    Fixed issues:

    • Fixed the private members into the protected in the module instance class.
    • Fixed the type mismatch for IntrinsicsTable initialization statement in the AOT compiler.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN PyTorch backend unit test.
    • Added fuzzing tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    DarumaDocker, Gustavo Ye, LFsWang, MediosZ, Michael Yuan, Shen-Ta Hsieh, Tricster, Xin Liu, Yeongju Kang, YiYing He, Zhou Zhou, hydai, sonder-joker

    If you want to build from source, please use WasmEdge-0.11.1-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.1-rc.1-android_aarch64.tar.gz(713.77 KB)
    WasmEdge-0.11.1-rc.1-darwin_x86_64.tar.gz(23.76 MB)
    WasmEdge-0.11.1-rc.1-manylinux2014_aarch64.rpm(13.45 MB)
    WasmEdge-0.11.1-rc.1-manylinux2014_aarch64.tar.gz(18.05 MB)
    WasmEdge-0.11.1-rc.1-manylinux2014_aarch64.tar.xz(11.82 MB)
    WasmEdge-0.11.1-rc.1-manylinux2014_x86_64.rpm(15.50 MB)
    WasmEdge-0.11.1-rc.1-manylinux2014_x86_64.tar.gz(19.26 MB)
    WasmEdge-0.11.1-rc.1-manylinux2014_x86_64.tar.xz(13.64 MB)
    WasmEdge-0.11.1-rc.1-src.tar.gz(7.31 MB)
    WasmEdge-0.11.1-rc.1-windows.zip(15.15 MB)
    WasmEdge-0.11.1-windows.msi(15.14 MB)
    wasmedge-0.11.1.rc.1-1.fc38.src.rpm(7.31 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-rc.1-manylinux2014_aarch64.tar.gz(1.56 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-rc.1-manylinux2014_x86_64.tar.gz(1.67 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-rc.1-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.1-rc.1-ubuntu20.04_x86_64.tar.gz(113.43 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.1-rc.1-ubuntu20.04_x86_64.tar.gz(119.25 KB)
    wasmedge.spec(2.46 KB)
  • 0.11.1-alpha.1(Sep 26, 2022)

    0.11.1-alpha.1 (2022-09-26)

    Features:

    • Supported WASI-NN plug-in with PyTorch backend on Ubuntu 20.04 x86_64.
      • Users can refer to the WASI-NN document for the information.
      • For building with enabling WASI-NN with PyTorch backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.
    • Updated the WASI-Crypto proposal and supported OpenSSL 3.0.
    • Supported LLVM 15.
    • Added the plug-in C API.
    • Extended WasmEdge CLI.
      • Allow the optimization level assignment in wasmedgec tool.
      • Supported the v128 value type printing in wasmedge tool.

    Fixed issues:

    • Fixed the private members into the protected in the module instance class.
    • Fixed the type mismatch for IntrinsicsTable initialization statement in the AOT compiler.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the WASI-NN PyTorch backend unit test.
    • Added fuzzing tests for WasmEdge CLI.

    Thank all the contributors that made this release possible!

    DarumaDocker, Gustavo Ye, LFsWang, MediosZ, Michael Yuan, Shen-Ta Hsieh, Tricster, Xin Liu, Yeongju Kang, YiYing He, Zhou Zhou, hydai, sonder-joker

    If you want to build from source, please use WasmEdge-0.11.1-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.1-alpha.1-android_aarch64.tar.gz(713.78 KB)
    WasmEdge-0.11.1-alpha.1-darwin_x86_64.tar.gz(29.41 MB)
    WasmEdge-0.11.1-alpha.1-manylinux2014_aarch64.rpm(13.45 MB)
    WasmEdge-0.11.1-alpha.1-manylinux2014_aarch64.tar.gz(18.05 MB)
    WasmEdge-0.11.1-alpha.1-manylinux2014_aarch64.tar.xz(11.82 MB)
    WasmEdge-0.11.1-alpha.1-manylinux2014_x86_64.rpm(15.50 MB)
    WasmEdge-0.11.1-alpha.1-manylinux2014_x86_64.tar.gz(19.26 MB)
    WasmEdge-0.11.1-alpha.1-manylinux2014_x86_64.tar.xz(13.65 MB)
    WasmEdge-0.11.1-alpha.1-src.tar.gz(7.31 MB)
    WasmEdge-0.11.1-alpha.1-windows.zip(15.15 MB)
    WasmEdge-0.11.1-windows.msi(15.14 MB)
    wasmedge-0.11.1.alpha.1-1.fc38.src.rpm(7.31 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-alpha.1-manylinux2014_aarch64.tar.gz(1.56 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-alpha.1-manylinux2014_x86_64.tar.gz(1.67 MB)
    WasmEdge-plugin-wasi_crypto-0.11.1-alpha.1-ubuntu20.04_x86_64.tar.gz(1.72 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.1-alpha.1-ubuntu20.04_x86_64.tar.gz(113.43 KB)
    WasmEdge-plugin-wasi_nn-pytorch-0.11.1-alpha.1-ubuntu20.04_x86_64.tar.gz(119.25 KB)
    wasmedge.spec(2.47 KB)
  • 0.11.0(Aug 31, 2022)

    0.11.0 (2022-08-31)

    Breaking changes:

    • WasmEdge C API changes.
      • Refactored the host function definition to export the calling frame.
        • The first parameter of WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.
        • The first parameter of WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.
      • Extended the content of WasmEdge_Result.
      • Added the const qualifier of some APIs.
        • Added the const qualifer of the first parameter of WasmEdge_StoreFindModule().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncWait().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncWaitFor().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncGetReturnsLength().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncGet().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionType().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionTypeRegistered().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionListLength().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionList().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetImportModuleContext().
      • Renamed the plugin API.
        • Renamed WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().
    • Dropped the manylinux1 and manylinux2010 support. Please refer to the deprecation notice.
    • Standardize the SONAME and SOVERSION for WasmEdge C API
      • The name of the library is changed to libwasmedge.so, libwasmedge.dyld, and wasmedge.dll.
      • Users should change the linker flag from lwasmedge_c to lwasmedge.
      • The initialized SONAME is set to libwasmedge.so.0.
      • The initialized SOVERSION is set to libwasmedge.so.0.0.0.

    Features:

    • Updated CMake options of WasmEdge project.
      • Added WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.
      • Removed the WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.
      • For details, please refer to the documentation.
      • After this version, our releases on MacOS platforms will link the LLVM library statically to reduce the installation of LLVM from Homebrew for the users.
    • Supported the user-defined error code for host functions.
      • The 24-bit size user-defined error code is supported (smaller than 16777216).
      • Developers can use the WasmEdge_ResultGen() API to generate the result and return.
    • Exported the CallingFrame instead of the memory instance in host functions.
      • New WasmEdge_CallingFrameContext struct.
      • Developers can use WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.
      • Developers can use WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
        • To quickly upgrate from the previous WasmEdge versions, developer can use the WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.
      • Developers can use WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.
    • Extended the WasmEdge_Result struct to support user defined error codes of host functions.
      • Added WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.
      • Added WasmEdge_ResultGetCategory() API to get the error code category.
    • Added a new API for looking up the native handler from a given WASI mapped Fd/Handler.
      • Added WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.
    • Added a new API for compiling a given WASM byte array.
      • Added WasmEdge_CompilerCompileFromBuffer to compile from buffer.
    • Added httpsreq plugin on Linux platforms.

    Fixed issues:

    • Fixed the binary format loading.
      • Fixed the error of immediate loading of const instructions in debug mode.
      • Updated the memarg of memory instructions for the multiple memories proposal changes.
    • Fixed the AOT issues.
      • Fixed the missed mask of shift operands.
      • Fixed the fallback case of vector instructions if the SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.
      • Fixed the sdk_version of lld warning on MacOS with LLVM 14.
    • Fixed the unexpected error message when execution.
      • Refined the terminated case to prevent from printing the unexpected error message.
    • Refined the symbols of output WasmEdge shared libraries.
      • Removed the weak symbol of WasmEdge plugins.
      • Hide the lld symbols of WasmEdge shared library.
    • Fixed the release packaging.
      • Fixed the lost of statically linking LLVM into WasmEdge shared library.
      • Fixed the lost of files when packaging on Windows.

    Refactor:

    • Reorginized the CI workflows to reuse the similar jobs.
    • Refactored the enum related headers.
      • Separated the C and C++ enum definition headers.
      • Not to package the C++ related headers.
    • Updated the WASI and plugin host functions for the API change.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode, or set the compiler optimization level to O0 in WasmEdge C API.
      • Developers can specify the extension name as .dylib on MacOS for the shared library format output when using wasmedgec tool.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220712.
    • Updated the test suite of the multiple memories proposal.
    • Updated the plugin tests for the host function API breaking change.

    Thank all the contributors that made this release possible!

    Cheng-En Lee, Chih-Hsuan Yen, Galden, GreyBalloonYU, HeZean, Michael Yuan, Shen-Ta Hsieh, Xin Liu, Yi Huang, Yi-Ying He, Zhenghao Lu, Zhou Zhou, dm4, hydai

    If you want to build from source, please use WasmEdge-0.11.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.11.0-1.fc38.src.rpm(7.29 MB)
    WasmEdge-0.11.0-android_aarch64.tar.gz(693.42 KB)
    WasmEdge-0.11.0-darwin_arm64.tar.gz(27.74 MB)
    WasmEdge-0.11.0-darwin_x86_64.tar.gz(29.39 MB)
    WasmEdge-0.11.0-manylinux2014_aarch64.rpm(13.45 MB)
    WasmEdge-0.11.0-manylinux2014_aarch64.tar.gz(18.04 MB)
    WasmEdge-0.11.0-manylinux2014_aarch64.tar.xz(11.81 MB)
    WasmEdge-0.11.0-manylinux2014_x86_64.rpm(15.49 MB)
    WasmEdge-0.11.0-manylinux2014_x86_64.tar.gz(19.25 MB)
    WasmEdge-0.11.0-manylinux2014_x86_64.tar.xz(13.67 MB)
    WasmEdge-0.11.0-src.tar.gz(7.29 MB)
    WasmEdge-0.11.0-windows.msi(15.09 MB)
    WasmEdge-0.11.0-windows.zip(15.10 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-manylinux2014_aarch64.tar.gz(1.53 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-manylinux2014_x86_64.tar.gz(1.64 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-ubuntu20.04_x86_64.tar.gz(1.69 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.0-ubuntu20.04_x86_64.tar.gz(112.37 KB)
    wasmedge.spec(2.45 KB)
  • 0.11.0-rc.1(Aug 26, 2022)

    0.11.0-rc.1 (2022-08-26)

    Breaking changes:

    • WasmEdge C API changes.
      • Refactored the host function definition to export the calling frame.
        • The first parameter of WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.
        • The first parameter of WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.
      • Extended the content of WasmEdge_Result.
      • Added the const qualifier of some APIs.
        • Added the const qualifer of the first parameter of WasmEdge_StoreFindModule().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncWait().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncWaitFor().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncGetReturnsLength().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncGet().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionType().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionTypeRegistered().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionListLength().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionList().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetImportModuleContext().
      • Renamed the plugin API.
        • Renamed WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().
    • Dropped the manylinux1 and manylinux2010 support. Please refer to the deprecation notice.
    • Standardize the SONAME and SOVERSION for WasmEdge C API
      • The name of the library is changed to libwasmedge.so, libwasmedge.dyld, and wasmedge.dll.
      • Users should change the linker flag from lwasmedge_c to lwasmedge.
      • The initialized SONAME is set to libwasmedge.so.0.
      • The initialized SOVERSION is set to libwasmedge.so.0.0.0.

    Features:

    • Updated CMake options of WasmEdge project.
      • Added WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.
      • Removed the WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.
      • For details, please refer to the documentation.
      • After this version, our releases on MacOS platforms will link the LLVM library statically to reduce the installation of LLVM from Homebrew for the users.
    • Supported the user-defined error code for host functions.
      • The 24-bit size user-defined error code is supported (smaller than 16777216).
      • Developers can use the WasmEdge_ResultGen() API to generate the result and return.
    • Exported the CallingFrame instead of the memory instance in host functions.
      • New WasmEdge_CallingFrameContext struct.
      • Developers can use WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.
      • Developers can use WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
        • To quickly upgrate from the previous WasmEdge versions, developer can use the WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.
      • Developers can use WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.
    • Extended the WasmEdge_Result struct to support user defined error codes of host functions.
      • Added WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.
      • Added WasmEdge_ResultGetCategory() API to get the error code category.
    • Added a new API for looking up the native handler from a given WASI mapped Fd/Handler.
      • Added WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.
    • Added a new API for compiling a given WASM byte array.
      • Added WasmEdge_CompilerCompileFromBuffer to compile from buffer.
    • Added httpsreq plugin on Linux platforms.

    Fixed issues:

    • Fixed the binary format loading.
      • Fixed the error of immediate loading of const instructions in debug mode.
      • Updated the memarg of memory instructions for the multiple memories proposal changes.
    • Fixed the AOT issues.
      • Fixed the missed mask of shift operands.
      • Fixed the fallback case of vector instructions if the SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.
      • Fixed the sdk_version of lld warning on MacOS with LLVM 14.
    • Fixed the unexpected error message when execution.
      • Refined the terminated case to prevent from printing the unexpected error message.
    • Refined the symbols of output WasmEdge shared libraries.
      • Removed the weak symbol of WasmEdge plugins.
      • Hide the lld symbols of WasmEdge shared library.
    • Fixed the release packaging.
      • Fixed the lost of statically linking LLVM into WasmEdge shared library.
      • Fixed the lost of files when packaging on Windows.

    Refactor:

    • Reorginized the CI workflows to reuse the similar jobs.
    • Refactored the enum related headers.
      • Separated the C and C++ enum definition headers.
      • Not to package the C++ related headers.
    • Updated the WASI and plugin host functions for the API change.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode, or set the compiler optimization level to O0 in WasmEdge C API.
      • Developers can specify the extension name as .dylib on MacOS for the shared library format output when using wasmedgec tool.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220712.
    • Updated the test suite of the multiple memories proposal.
    • Updated the plugin tests for the host function API breaking change.

    Thank all the contributors that made this release possible!

    Cheng-En Lee, Chih-Hsuan Yen, Galden, GreyBalloonYU, HeZean, Michael Yuan, Shen-Ta Hsieh, Xin Liu, Yi Huang, Yi-Ying He, Zhenghao Lu, Zhou Zhou, dm4, hydai

    If you want to build from source, please use WasmEdge-0.11.0-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.0-rc.1-android_aarch64.tar.gz(693.44 KB)
    WasmEdge-0.11.0-rc.1-darwin_arm64.tar.gz(13.92 MB)
    WasmEdge-0.11.0-rc.1-darwin_x86_64.tar.gz(29.43 MB)
    WasmEdge-0.11.0-rc.1-manylinux2014_aarch64.rpm(13.45 MB)
    WasmEdge-0.11.0-rc.1-manylinux2014_aarch64.tar.gz(18.04 MB)
    WasmEdge-0.11.0-rc.1-manylinux2014_aarch64.tar.xz(11.81 MB)
    WasmEdge-0.11.0-rc.1-manylinux2014_x86_64.rpm(15.49 MB)
    WasmEdge-0.11.0-rc.1-manylinux2014_x86_64.tar.gz(19.25 MB)
    WasmEdge-0.11.0-rc.1-manylinux2014_x86_64.tar.xz(13.67 MB)
    WasmEdge-0.11.0-rc.1-src.tar.gz(7.28 MB)
    WasmEdge-0.11.0-rc.1-windows.zip(15.10 MB)
    WasmEdge-0.11.0-windows.msi(15.09 MB)
    wasmedge-0.11.0.rc.1-1.fc38.src.rpm(7.29 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-rc.1-manylinux2014_aarch64.tar.gz(1.53 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-rc.1-manylinux2014_x86_64.tar.gz(1.64 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-rc.1-ubuntu20.04_x86_64.tar.gz(1.69 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.0-rc.1-ubuntu20.04_x86_64.tar.gz(112.38 KB)
    wasmedge.spec(2.46 KB)
  • 0.11.0-alpha.1(Aug 23, 2022)

    0.11.0-alpha.1 (2022-08-22)

    Breaking changes:

    • WasmEdge C API changes.
      • Refactored the host function definition to export the calling frame.
        • The first parameter of WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.
        • The first parameter of WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.
      • Extended the content of WasmEdge_Result.
      • Added the const qualifier of some APIs.
        • Added the const qualifer of the first parameter of WasmEdge_StoreFindModule().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncWait().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncWaitFor().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncGetReturnsLength().
        • Added the const qualifer of the first parameter of WasmEdge_AsyncGet().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionType().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionTypeRegistered().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionListLength().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionList().
        • Added the const qualifer of the first parameter of WasmEdge_VMGetImportModuleContext().
      • Renamed the plugin API.
        • Renamed WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().

    Features:

    • Updated CMake options of WasmEdge project.
      • Added WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.
      • Removed the WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.
      • For details, please refer to the documentation.
      • After this version, our releases on MacOS platforms will link the LLVM library statically to reduce the installation of LLVM from Homebrew for the users.
    • Supported the user-defined error code for host functions.
      • The 24-bit size user-defined error code is supported (smaller than 16777216).
      • Developers can use the WasmEdge_ResultGen() API to generate the result and return.
    • Exported the CallingFrame instead of the memory instance in host functions.
      • New WasmEdge_CallingFrameContext struct.
      • Developers can use WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.
      • Developers can use WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
        • To quickly upgrate from the previous WasmEdge versions, developer can use the WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.
      • Developers can use WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.
    • Extended the WasmEdge_Result struct to support user defined error codes of host functions.
      • Added WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.
      • Added WasmEdge_ResultGetCategory() API to get the error code category.
    • Added a new API for looking up the native handler from a given WASI mapped Fd/Handler.
      • Added WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.
    • Added a new API for compiling a given WASM byte array.
      • Added WasmEdge_CompilerCompileFromArray to compile from buffer.
    • Added httpsreq plugin on Linux platforms.

    Fixed issues:

    • Fixed the binary format loading.
      • Fixed the error of immediate loading of const instructions in debug mode.
      • Updated the memarg of memory instructions for the multiple memories proposal changes.
    • Fixed the AOT issues.
      • Fixed the missed mask of shift operands.
      • Fixed the fallback case of vector instructions if the SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.
    • Fixed the unexpected error message when execution.
      • Refined the terminated case to prevent from printing the unexpected error message.
    • Refined the symbols of output WasmEdge shared libraries.
      • Removed the weak symbol of WasmEdge plugins.
      • Hide the lld symbols of WasmEdge shared library.
    • Fixed the release packaging.
      • Fixed the lost of statically linking LLVM into WasmEdge shared library.
      • Fixed the lost of files when packaging on Windows.

    Refactor:

    • Reorginized the CI workflows to reuse the similar jobs.
    • Refactored the enum related headers.
      • Separated the C and C++ enum definition headers.
      • Not to package the C++ related headers.
    • Updated the WASI and plugin host functions for the API change.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
      • Developers can specify the extension name as .dylib on MacOS for the shared library format output of the AOT compiler.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220712.
    • Updated the test suite of the multiple memories proposal.
    • Updated the plugin tests for the host function API breaking change.

    Thank all the contributors that made this release possible!

    Galden, GreyBalloonYU, HeZean, Michael Yuan, Shen-Ta Hsieh, Xin Liu, Yi Huang, Yi-Ying He,Zhenghao Lu, Zhou Zhou, dm4, hydai

    If you want to build from source, please use WasmEdge-0.11.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.11.0-alpha.1-android_aarch64.tar.gz(693.51 KB)
    WasmEdge-0.11.0-alpha.1-darwin_arm64.tar.gz(43.38 MB)
    WasmEdge-0.11.0-alpha.1-darwin_x86_64.tar.gz(90.99 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2010_x86_64.rpm(15.97 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2010_x86_64.tar.gz(19.26 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2010_x86_64.tar.xz(13.68 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2014_aarch64.rpm(13.45 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2014_aarch64.tar.gz(18.04 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2014_aarch64.tar.xz(11.83 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2014_x86_64.rpm(15.49 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2014_x86_64.tar.gz(19.25 MB)
    WasmEdge-0.11.0-alpha.1-manylinux2014_x86_64.tar.xz(13.66 MB)
    WasmEdge-0.11.0-alpha.1-src.tar.gz(7.27 MB)
    WasmEdge-0.11.0-alpha.1-windows.zip(15.09 MB)
    WasmEdge-0.11.0-windows.msi(15.08 MB)
    wasmedge-0.11.0.alpha.1-1.fc38.src.rpm(7.27 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-alpha.1-manylinux2014_aarch64.tar.gz(1.53 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-alpha.1-manylinux2014_x86_64.tar.gz(1.64 MB)
    WasmEdge-plugin-wasi_crypto-0.11.0-alpha.1-ubuntu20.04_x86_64.tar.gz(1.69 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.11.0-alpha.1-ubuntu20.04_x86_64.tar.gz(112.38 KB)
    wasmedge.spec(2.43 KB)
  • 0.10.1(Jul 28, 2022)

    0.10.1 (2022-07-28)

    Features:

    • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
      • Users can refer to the standard extension status for the information.
      • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.
    • Supported WASI-crypto plug-in on Ubuntu 20.04 x86_64, manylinux2014 x86_64, and manylinux2014 aarch64.
      • Users can refer to the standard extension status for the information.
      • For building with enabling WASI-crypto with OpenSSL 1.1, please add the -DWASMEDGE_PLUGIN_WASI_CRYPTO=ON in cmake.
    • Added the static tool building option.
      • By default, WasmEdge tools will depend on the WasmEdge shared library.
      • Developers can add the -DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.
    • Exported the components of WasmEdge_VMContext in WasmEdge C API.
      • Added the WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.
      • Added the WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.
      • Added the WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.
    • Added the API for CLI tools.
      • Developers can use the WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.
      • Developers can use the WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.
    • Supported the WASM threads proposal.
      • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
      • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
    • Supported LLVM 14 on MacOS.
      • Used the new macho in lld on LLVM-14 envronment.
      • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.
    • Bumpped the MacOS x86_64 build to MacOS 11.

    Fixed issues:

    • Fixed the universal WASM format failed on MacOS platforms.
      • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
    • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
      • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
    • Reduced the branch miss when instantiating AOT-compiled WASM.

    Refactor:

    • Moved the code of WasmEdge CLI tools into WasmEdge::Driver.
    • Moved the plugin tests into the test/plugins folder.

    Known issues:

    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the spec tests for the threads proposal.
    • Added the WASI-NN unit tests.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Chris Ho, Faidon Liambotis, Frank Lin, Jianbai Ye, Kevin O'Neal, LFsWang, Lokesh Mandvekar, Michael Yuan, O3Ol, RichardAH, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, Yukang, abhinandanudupa, alabulei1, dm4, eat4toast, eee4017, hydai, sonder-joker, spacewander, swartz-k, yale

    If you want to build from source, please use WasmEdge-0.10.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.10.1-1.fc37.src.rpm(7.25 MB)
    WasmEdge-0.10.1-android_aarch64.tar.gz(688.94 KB)
    WasmEdge-0.10.1-darwin_arm64.tar.gz(839.63 KB)
    WasmEdge-0.10.1-darwin_x86_64.tar.gz(924.60 KB)
    WasmEdge-0.10.1-manylinux1_x86_64.rpm(19.30 MB)
    WasmEdge-0.10.1-manylinux1_x86_64.tar.gz(19.39 MB)
    WasmEdge-0.10.1-manylinux1_x86_64.tar.xz(13.77 MB)
    WasmEdge-0.10.1-manylinux2010_x86_64.rpm(16.05 MB)
    WasmEdge-0.10.1-manylinux2010_x86_64.tar.gz(19.36 MB)
    WasmEdge-0.10.1-manylinux2010_x86_64.tar.xz(13.76 MB)
    WasmEdge-0.10.1-manylinux2014_aarch64.rpm(13.71 MB)
    WasmEdge-0.10.1-manylinux2014_aarch64.tar.gz(18.39 MB)
    WasmEdge-0.10.1-manylinux2014_aarch64.tar.xz(12.07 MB)
    WasmEdge-0.10.1-manylinux2014_x86_64.rpm(15.56 MB)
    WasmEdge-0.10.1-manylinux2014_x86_64.tar.gz(19.34 MB)
    WasmEdge-0.10.1-manylinux2014_x86_64.tar.xz(13.73 MB)
    WasmEdge-0.10.1-src.tar.gz(7.24 MB)
    WasmEdge-0.10.1-windows.msi(15.07 MB)
    WasmEdge-0.10.1-windows.zip(15.09 MB)
    WasmEdge-plugin-wasi_crypto-0.10.1-manylinux2014_aarch64.tar.gz(4.02 MB)
    WasmEdge-plugin-wasi_crypto-0.10.1-manylinux2014_x86_64.tar.gz(1.89 MB)
    WasmEdge-plugin-wasi_crypto-0.10.1-ubuntu20.04_x86_64.tar.gz(1.69 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.10.1-ubuntu20.04_x86_64.tar.gz(111.71 KB)
    wasmedge.spec(2.50 KB)
  • 0.10.1-rc.1(Jul 26, 2022)

    0.10.1-rc.1 (2022-07-26)

    Features:

    • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
      • Users can refer to the standard extension status for the information.
      • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.
    • Supported WASI-crypto plug-in on Ubuntu 20.04 x86_64, manylinux2014 x86_64, and manylinux2014 aarch64.
      • Users can refer to the standard extension status for the information.
      • For building with enabling WASI-crypto with OpenSSL 1.1, please add the -DWASMEDGE_PLUGIN_WASI_CRYPTO=ON in cmake.
    • Added the static tool building option.
      • By default, WasmEdge tools will depend on the WasmEdge shared library.
      • Developers can add the -DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.
    • Exported the components of WasmEdge_VMContext in WasmEdge C API.
      • Added the WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.
      • Added the WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.
      • Added the WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.
    • Added the API for CLI tools.
      • Developers can use the WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.
      • Developers can use the WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.
    • Supported the WASM threads proposal.
      • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
      • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
    • Supported LLVM 14 on MacOS.
      • Used the new macho in lld on LLVM-14 envronment.
      • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.

    Fixed issues:

    • Fixed the universal WASM format failed on MacOS platforms.
      • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
    • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
      • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
    • Reduced the branch miss when instantiating AOT-compiled WASM.

    Refactor:

    • Moved the code of WasmEdge CLI tools into WasmEdge::Driver.
    • Moved the plugin tests into the test/plugins folder.

    Known issues:

    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the spec tests for the threads proposal.
    • Added the WASI-NN unit tests.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Chris Ho, Faidon Liambotis, Frank Lin, Jianbai Ye, Kevin O'Neal, LFsWang, Lokesh Mandvekar, Michael Yuan, O3Ol, RichardAH, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, Yukang, abhinandanudupa, alabulei1, dm4, eat4toast, eee4017, hydai, sonder-joker, spacewander, swartz-k, yale

    If you want to build from source, please use WasmEdge-0.10.1-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.1-rc.1-android_aarch64.tar.gz(688.92 KB)
    WasmEdge-0.10.1-rc.1-darwin_x86_64.tar.gz(924.06 KB)
    WasmEdge-0.10.1-rc.1-manylinux1_x86_64.rpm(19.30 MB)
    WasmEdge-0.10.1-rc.1-manylinux1_x86_64.tar.gz(19.39 MB)
    WasmEdge-0.10.1-rc.1-manylinux1_x86_64.tar.xz(13.75 MB)
    WasmEdge-0.10.1-rc.1-manylinux2010_x86_64.rpm(16.05 MB)
    WasmEdge-0.10.1-rc.1-manylinux2010_x86_64.tar.gz(19.36 MB)
    WasmEdge-0.10.1-rc.1-manylinux2010_x86_64.tar.xz(13.75 MB)
    WasmEdge-0.10.1-rc.1-manylinux2014_aarch64.rpm(13.71 MB)
    WasmEdge-0.10.1-rc.1-manylinux2014_aarch64.tar.gz(18.39 MB)
    WasmEdge-0.10.1-rc.1-manylinux2014_aarch64.tar.xz(12.06 MB)
    WasmEdge-0.10.1-rc.1-manylinux2014_x86_64.rpm(15.56 MB)
    WasmEdge-0.10.1-rc.1-manylinux2014_x86_64.tar.gz(19.34 MB)
    WasmEdge-0.10.1-rc.1-manylinux2014_x86_64.tar.xz(13.73 MB)
    WasmEdge-0.10.1-rc.1-src.tar.gz(7.24 MB)
    WasmEdge-0.10.1-rc.1-windows.msi(15.07 MB)
    WasmEdge-0.10.1-rc.1-windows.zip(15.09 MB)
    wasmedge-0.10.1.rc.1-1.fc37.src.rpm(7.25 MB)
    WasmEdge-plugin-wasi_crypto-0.10.1-rc.1-manylinux2014_aarch64.tar.gz(4.02 MB)
    WasmEdge-plugin-wasi_crypto-0.10.1-rc.1-manylinux2014_x86_64.tar.gz(1.89 MB)
    WasmEdge-plugin-wasi_crypto-0.10.1-rc.1-ubuntu20.04_x86_64.tar.gz(1.69 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.10.1-rc.1-ubuntu20.04_x86_64.tar.gz(111.71 KB)
    wasmedge.spec(2.51 KB)
  • 0.10.1-alpha.3(Jul 20, 2022)

    0.10.1-alpha.3 (2022-07-20)

    Features:

    • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
      • Users can refer to the standard extension status for the information.
      • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.
    • Added the static tool building option.
      • By default, WasmEdge tools will depend on the WasmEdge shared library.
      • Developers can add the -DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.
    • Exported the components of WasmEdge_VMContext in WasmEdge C API.
      • Added the WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.
      • Added the WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.
      • Added the WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.
    • Added the API for CLI tools.
      • Developers can use the WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.
      • Developers can use the WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.
    • Supported the WASM threads proposal.
      • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
      • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
    • Supported LLVM 14 on MacOS.
      • Used the new macho in lld on LLVM-14 envronment.
      • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.

    Fixed issues:

    • Fixed the universal WASM format failed on MacOS platforms.
      • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
    • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
      • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
    • Reduced the branch miss when instantiating AOT-compiled WASM.

    Refactor:

    • Moved the code of WasmEdge CLI tools into WasmEdge::Driver.
    • Moved the plugin tests into the test/plugins folder.

    Known issues:

    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the spec tests for the threads proposal.
    • Added the WASI-NN unit tests.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Chris Ho, Faidon Liambotis, Frank Lin, Jianbai Ye, Kevin O'Neal, LFsWang, Lokesh Mandvekar, Michael Yuan, RichardAH, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, Yukang, abhinandanudupa, alabulei1, dm4, eat4toast, eee4017, hydai, swartz-k, yale

    If you want to build from source, please use WasmEdge-0.10.1-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.1-alpha.3-android_aarch64.tar.gz(688.09 KB)
    WasmEdge-0.10.1-alpha.3-darwin_x86_64.tar.gz(923.38 KB)
    WasmEdge-0.10.1-alpha.3-manylinux1_x86_64.rpm(19.30 MB)
    WasmEdge-0.10.1-alpha.3-manylinux1_x86_64.tar.gz(19.39 MB)
    WasmEdge-0.10.1-alpha.3-manylinux1_x86_64.tar.xz(13.76 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2010_x86_64.rpm(16.05 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2010_x86_64.tar.gz(19.36 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2010_x86_64.tar.xz(13.73 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2014_aarch64.rpm(13.70 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2014_aarch64.tar.gz(18.39 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2014_aarch64.tar.xz(12.06 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2014_x86_64.rpm(15.56 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2014_x86_64.tar.gz(19.34 MB)
    WasmEdge-0.10.1-alpha.3-manylinux2014_x86_64.tar.xz(13.74 MB)
    WasmEdge-0.10.1-alpha.3-src.tar.gz(7.14 MB)
    WasmEdge-0.10.1-alpha.3-windows.msi(15.07 MB)
    WasmEdge-0.10.1-alpha.3-windows.zip(15.09 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.10.1-alpha.3-ubuntu20.04_x86_64.tar.gz(111.72 KB)
  • 0.10.1-alpha.2(Jul 4, 2022)

    0.10.1-alpha.2 (2022-07-04)

    Features:

    • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
      • Users can refer to the standard extension status for the information.
      • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_WASINN_BACKEND="OpenVINO" in cmake.
    • Supported the WASM threads proposal.
      • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
      • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
    • Supported LLVM 14 on MacOS.
      • Used the new macho in lld on LLVM-14 envronment.
      • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.

    Fixed issues:

    • Fixed the universal WASM format failed on MacOS platforms.
      • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
    • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
      • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
    • Reduced the branch miss when instantiating AOT-compiled WASM.

    Known issues:

    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the spec tests for the threads proposal.
    • Added the WASI-NN unit tests.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Frank Lin, Jianbai Ye, Kevin O'Neal, LFsWang, Lokesh Mandvekar, Michael Yuan, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, abhinandanudupa, alabulei1, dm4, eat4toast, eee4017, hydai, swartz-k, yale

    If you want to build from source, please use WasmEdge-0.10.1-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.1-alpha.2-android_aarch64.tar.gz(1.24 MB)
    WasmEdge-0.10.1-alpha.2-darwin_x86_64.tar.gz(2.00 MB)
    WasmEdge-0.10.1-alpha.2-manylinux1_x86_64.rpm(38.50 MB)
    WasmEdge-0.10.1-alpha.2-manylinux1_x86_64.tar.gz(38.67 MB)
    WasmEdge-0.10.1-alpha.2-manylinux1_x86_64.tar.xz(27.36 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2010_x86_64.rpm(32.02 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2010_x86_64.tar.gz(38.52 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2010_x86_64.tar.xz(27.25 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2014_aarch64.rpm(27.48 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2014_aarch64.tar.gz(36.82 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2014_aarch64.tar.xz(24.01 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2014_x86_64.rpm(31.04 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2014_x86_64.tar.gz(38.49 MB)
    WasmEdge-0.10.1-alpha.2-manylinux2014_x86_64.tar.xz(27.23 MB)
    WasmEdge-0.10.1-alpha.2-src.tar.gz(7.12 MB)
    WasmEdge-0.10.1-alpha.2-windows.msi(30.41 MB)
    WasmEdge-0.10.1-alpha.2-windows.zip(30.46 MB)
    wasmedge-0.10.1.alpha.2-1.fc37.src.rpm(7.12 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.10.1-alpha.2-ubuntu20.04_x86_64.tar.gz(111.71 KB)
    wasmedge.spec(2.51 KB)
  • 0.10.1-alpha.1(Jun 22, 2022)

    0.10.1-alpha.1 (2022-06-22)

    Features:

    • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
    • Supported the WASM threads proposal.
      • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
      • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.

    Fixed issues:

    • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
      • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
      • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.
    • WasmEdge CLI failed on Windows 10 issue.
    • Plug-in linking on MacOS platforms.
      • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
      • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

    Documentations:

    Tests:

    • Added the spec tests for the threads proposal.
    • Added the WASI-NN unit tests.

    Thank all the contributors that made this release possible!

    Abhinandan Udupa, Frank Lin, Jianbai Ye, LFsWang, Lokesh Mandvekar, Michael Yuan, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, abhinandanudupa, alabulei1, dm4, eee4017, hydai, swartz-k, yale

    If you want to build from source, please use WasmEdge-0.10.1-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.1-alpha.1-android_aarch64.tar.gz(1.24 MB)
    WasmEdge-0.10.1-alpha.1-darwin_x86_64.tar.gz(1.90 MB)
    WasmEdge-0.10.1-alpha.1-manylinux1_x86_64.rpm(38.50 MB)
    WasmEdge-0.10.1-alpha.1-manylinux1_x86_64.tar.gz(38.67 MB)
    WasmEdge-0.10.1-alpha.1-manylinux1_x86_64.tar.xz(27.44 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2010_x86_64.rpm(32.02 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2010_x86_64.tar.gz(38.52 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2010_x86_64.tar.xz(27.32 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2014_aarch64.rpm(27.48 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2014_aarch64.tar.gz(36.81 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2014_aarch64.tar.xz(24.00 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2014_x86_64.rpm(31.04 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2014_x86_64.tar.gz(38.49 MB)
    WasmEdge-0.10.1-alpha.1-manylinux2014_x86_64.tar.xz(27.24 MB)
    WasmEdge-0.10.1-alpha.1-src.tar.gz(6.51 MB)
    WasmEdge-0.10.1-alpha.1-windows.msi(30.41 MB)
    WasmEdge-0.10.1-alpha.1-windows.zip(30.46 MB)
    wasmedge-0.10.1.alpha.1-1.fc37.src.rpm(6.52 MB)
    WasmEdge-plugin-wasi_nn-openvino-0.10.1-alpha.1-ubuntu20.04_x86_64.tar.gz(111.74 KB)
    wasmedge.spec(2.02 KB)
  • 0.10.0(May 26, 2022)

    0.10.0 (2022-05-26)

    Breaking changes:

    • WasmEdge C API changes.
      • Merged the WasmEdge_ImportObjectContext into the WasmEdge_ModuleInstanceContext.
        • WasmEdge_ImportObjectCreate() is changed to WasmEdge_ModuleInstanceCreate().
        • WasmEdge_ImportObjectDelete() is changed to WasmEdge_ModuleInstanceDelete().
        • WasmEdge_ImportObjectAddFunction() is changed to WasmEdge_ModuleInstanceAddFunction().
        • WasmEdge_ImportObjectAddTable() is changed to WasmEdge_ModuleInstanceAddTable().
        • WasmEdge_ImportObjectAddMemory() is changed to WasmEdge_ModuleInstanceAddMemory().
        • WasmEdge_ImportObjectAddGlobal() is changed to WasmEdge_ModuleInstanceAddGlobal().
        • WasmEdge_ImportObjectCreateWASI() is changed to WasmEdge_ModuleInstanceCreateWASI().
        • WasmEdge_ImportObjectCreateWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceCreateWasmEdgeProcess().
        • WasmEdge_ImportObjectInitWASI() is changed to WasmEdge_ModuleInstanceInitWASI().
        • WasmEdge_ImportObjectInitWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceInitWasmEdgeProcess().
      • Used the pointer to WasmEdge_FunctionInstanceContext instead of the index in the FuncRef value type.
        • WasmEdge_ValueGenFuncRef() is changed to use the const WasmEdge_FunctionInstanceContext * as it's argument.
        • WasmEdge_ValueGetFuncRef() is changed to return the const WasmEdge_FunctionInstanceContext *.
      • Moved the functions of WasmEdge_StoreContext to the WasmEdge_ModuleInstanceContext.
        • WasmEdge_StoreListFunctionLength() and WasmEdge_StoreListFunctionRegisteredLength() is replaced by WasmEdge_ModuleInstanceListFunctionLength().
        • WasmEdge_StoreListTableLength() and WasmEdge_StoreListTableRegisteredLength() is replaced by WasmEdge_ModuleInstanceListTableLength().
        • WasmEdge_StoreListMemoryLength() and WasmEdge_StoreListMemoryRegisteredLength() is replaced by WasmEdge_ModuleInstanceListMemoryLength().
        • WasmEdge_StoreListGlobalLength() and WasmEdge_StoreListGlobalRegisteredLength() is replaced by WasmEdge_ModuleInstanceListGlobalLength().
        • WasmEdge_StoreListFunction() and WasmEdge_StoreListFunctionRegistered() is replaced by WasmEdge_ModuleInstanceListFunction().
        • WasmEdge_StoreListTable() and WasmEdge_StoreListTableRegistered() is replaced by WasmEdge_ModuleInstanceListTable().
        • WasmEdge_StoreListMemory() and WasmEdge_StoreListMemoryRegistered() is replaced by WasmEdge_ModuleInstanceListMemory().
        • WasmEdge_StoreListGlobal() and WasmEdge_StoreListGlobalRegistered() is replaced by WasmEdge_ModuleInstanceListGlobal().
        • WasmEdge_StoreFindFunction() and WasmEdge_StoreFindFunctionRegistered() is replaced by WasmEdge_ModuleInstanceFindFunction().
        • WasmEdge_StoreFindTable() and WasmEdge_StoreFindTableRegistered() is replaced by WasmEdge_ModuleInstanceFindTable().
        • WasmEdge_StoreFindMemory() and WasmEdge_StoreFindMemoryRegistered() is replaced by WasmEdge_ModuleInstanceFindMemory().
        • WasmEdge_StoreFindGlobal() and WasmEdge_StoreFindGlobalRegistered() is replaced by WasmEdge_ModuleInstanceFindGlobal().
      • Updated the WasmEdge_VMContext APIs.
        • Added the WasmEdge_VMGetActiveModule().
        • WasmEdge_VMGetImportModuleContext() is changed to return the WasmEdge_FunctionInstanceContext *.
        • WasmEdge_VMRegisterModuleFromImport() is changed to use the const WasmEdge_ModuleInstanceContext * as it's argument.
      • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

    Features:

    • Supported LLVM 14.
    • Supported the WASM tail-call proposal.
      • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
      • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
    • Supported the WASM extended-const proposal.
      • Added the WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.
      • Users can use the --enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.
    • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
    • Supported the gas limit in AOT mode.
    • New supporting of the wasi-socket proposal.
      • Supported send_to.
      • Supported resv_from.
    • Plugin support
      • Add loadable plugin support.
      • Move wasmedge_process to a loadable plugin.

    Fixed issues:

    • Fixed wasi-socket proposal issues.
      • Fixed wasi-socket on MacOS.
      • Fixed error when calling poll_oneoff with the same fd twice.
      • Fixed error when calling fd_close on socket.
      • Forged zero-terminated string for ::getaddrinfo.
      • Checked the socket options enumeration for valid value.
    • Fixed the statistics enable/disable routine.
    • Fixed the output format by the file extension name detection on multiple platforms.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
      • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.

    Refactor:

    • Supported multi-thread execution.
      • Changed the StackManager in Executor as thread local to support the multi-thread.
      • Used atomic operations for cost measuring.
      • Supported multi-thread timer.
    • Refactored the enumerations.
      • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
      • Merged the both C and C++ enumeration definitions into the enum.inc file.
      • Updated the ErrCode enumeration for the newest spec tests.
    • Refactored the code architecture for supporting tail-call proposal.
      • Split the call_indirect execution routine in compiler into AOT and interpreter path.
      • Updated the pop frame mechanism in the StackManager.
      • Updated the enter function mechanism.
    • Refined the file manager in Loader.
      • Supported the offset seeking in file and buffer.
      • Skipped the instructions parsing in AOT mode for better loading performance.
    • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
      • Pre-calculated the stack offset for branch in the validation phase.
      • Removed the label stack in the StackManager and used the pre-calculated data for branch.
      • Removed the dummy frame mechanism in the StackManager.
    • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
      • Removed the address mechanism for instances in the StoreManager.
      • Added the unsafe getter functions for the instances.
    • Refactored the StoreManager, ModuleInstance, and Executor.
      • Used the ModuleInstance-based resource management instead of StoreManager-based.
      • Moved the ownership of instances from the StoreManager into the ModuleInstance.
      • Merged the ImportObject into the ModuleInstance.
      • Invoking functions by FunctionInstance rather than the function name in Executor.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220504.
    • Added the spec tests for the tail-call proposal.
    • Added the spec tests for the extended-const proposal.
    • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
    • Added the thread-safe and multi-thread execution tests.
    • Added wasi-socket tests for poll_oneoff, send_to, and recv_from.

    Thank all the contributors that made this release possible!

    朱亚光, Abhinandan Udupa, Ang Lee, Binbin Zhang, Chin Zhi Wei, DarumaDocker, Elon Cheng, FlyingOnion, Hanged Fish, Herschel Wang, JIAN ZHONG, JcJinChen, Jeremy, JessesChou, JieDing, Kodalien, Kunshuai Zhu, LFsWang, LaingKe, MediosZ, Michael Yuan, Nicholas Zhan, 华德禹, O3Ol, Rui Li, Shen-Ta Hsieh, Shreyas Atre, Sylveon, TheLightRunner, Vaniot, Vinson, 罗泽轩, Xin Liu, Yi Huang, YiYing He, YoungLH, abhinandanudupa, border1px, dm4, eat4toast, hydai, jerbmarx, luckyJ-nj, meoww-bot, mydreamer4134, situ2001, tpmccallum, treeplus, wangyuan249, yale, 王琦

    If you want to build from source, please use WasmEdge-0.10.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.10.0-1.fc37.src.rpm(4.89 MB)
    WasmEdge-0.10.0-android_aarch64.tar.gz(1.50 MB)
    WasmEdge-0.10.0-darwin_arm64.tar.gz(1.57 MB)
    WasmEdge-0.10.0-darwin_x86_64.tar.gz(1.80 MB)
    WasmEdge-0.10.0-manylinux1_x86_64.rpm(38.42 MB)
    WasmEdge-0.10.0-manylinux1_x86_64.tar.gz(38.60 MB)
    WasmEdge-0.10.0-manylinux1_x86_64.tar.xz(27.26 MB)
    WasmEdge-0.10.0-manylinux2010_x86_64.rpm(31.97 MB)
    WasmEdge-0.10.0-manylinux2010_x86_64.tar.gz(38.45 MB)
    WasmEdge-0.10.0-manylinux2010_x86_64.tar.xz(27.15 MB)
    WasmEdge-0.10.0-manylinux2014_aarch64.rpm(27.44 MB)
    WasmEdge-0.10.0-manylinux2014_aarch64.tar.gz(36.76 MB)
    WasmEdge-0.10.0-manylinux2014_aarch64.tar.xz(23.97 MB)
    WasmEdge-0.10.0-manylinux2014_x86_64.rpm(30.98 MB)
    WasmEdge-0.10.0-manylinux2014_x86_64.tar.gz(38.41 MB)
    WasmEdge-0.10.0-manylinux2014_x86_64.tar.xz(27.12 MB)
    WasmEdge-0.10.0-src.tar.gz(4.89 MB)
    WasmEdge-0.10.0-windows.msi(30.30 MB)
    WasmEdge-0.10.0-windows.zip(30.59 MB)
    wasmedge.spec(2.04 KB)
  • 0.10.0-rc.1(May 23, 2022)

    0.10.0-rc.1 (2022-05-24)

    Breaking changes:

    • WasmEdge C API changes.
      • Merged the WasmEdge_ImportObjectContext into the WasmEdge_ModuleInstanceContext.
        • WasmEdge_ImportObjectCreate() is changed to WasmEdge_ModuleInstanceCreate().
        • WasmEdge_ImportObjectDelete() is changed to WasmEdge_ModuleInstanceDelete().
        • WasmEdge_ImportObjectAddFunction() is changed to WasmEdge_ModuleInstanceAddFunction().
        • WasmEdge_ImportObjectAddTable() is changed to WasmEdge_ModuleInstanceAddTable().
        • WasmEdge_ImportObjectAddMemory() is changed to WasmEdge_ModuleInstanceAddMemory().
        • WasmEdge_ImportObjectAddGlobal() is changed to WasmEdge_ModuleInstanceAddGlobal().
        • WasmEdge_ImportObjectCreateWASI() is changed to WasmEdge_ModuleInstanceCreateWASI().
        • WasmEdge_ImportObjectCreateWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceCreateWasmEdgeProcess().
        • WasmEdge_ImportObjectInitWASI() is changed to WasmEdge_ModuleInstanceInitWASI().
        • WasmEdge_ImportObjectInitWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceInitWasmEdgeProcess().
      • Used the pointer to WasmEdge_FunctionInstanceContext instead of the index in the FuncRef value type.
        • WasmEdge_ValueGenFuncRef() is changed to use the const WasmEdge_FunctionInstanceContext * as it's argument.
        • WasmEdge_ValueGetFuncRef() is changed to return the const WasmEdge_FunctionInstanceContext *.
      • Moved the functions of WasmEdge_StoreContext to the WasmEdge_ModuleInstanceContext.
        • WasmEdge_StoreListFunctionLength() and WasmEdge_StoreListFunctionRegisteredLength() is replaced by WasmEdge_ModuleInstanceListFunctionLength().
        • WasmEdge_StoreListTableLength() and WasmEdge_StoreListTableRegisteredLength() is replaced by WasmEdge_ModuleInstanceListTableLength().
        • WasmEdge_StoreListMemoryLength() and WasmEdge_StoreListMemoryRegisteredLength() is replaced by WasmEdge_ModuleInstanceListMemoryLength().
        • WasmEdge_StoreListGlobalLength() and WasmEdge_StoreListGlobalRegisteredLength() is replaced by WasmEdge_ModuleInstanceListGlobalLength().
        • WasmEdge_StoreListFunction() and WasmEdge_StoreListFunctionRegistered() is replaced by WasmEdge_ModuleInstanceListFunction().
        • WasmEdge_StoreListTable() and WasmEdge_StoreListTableRegistered() is replaced by WasmEdge_ModuleInstanceListTable().
        • WasmEdge_StoreListMemory() and WasmEdge_StoreListMemoryRegistered() is replaced by WasmEdge_ModuleInstanceListMemory().
        • WasmEdge_StoreListGlobal() and WasmEdge_StoreListGlobalRegistered() is replaced by WasmEdge_ModuleInstanceListGlobal().
        • WasmEdge_StoreFindFunction() and WasmEdge_StoreFindFunctionRegistered() is replaced by WasmEdge_ModuleInstanceFindFunction().
        • WasmEdge_StoreFindTable() and WasmEdge_StoreFindTableRegistered() is replaced by WasmEdge_ModuleInstanceFindTable().
        • WasmEdge_StoreFindMemory() and WasmEdge_StoreFindMemoryRegistered() is replaced by WasmEdge_ModuleInstanceFindMemory().
        • WasmEdge_StoreFindGlobal() and WasmEdge_StoreFindGlobalRegistered() is replaced by WasmEdge_ModuleInstanceFindGlobal().
      • Updated the WasmEdge_VMContext APIs.
        • Added the WasmEdge_VMGetActiveModule().
        • WasmEdge_VMGetImportModuleContext() is changed to return the WasmEdge_FunctionInstanceContext *.
        • WasmEdge_VMRegisterModuleFromImport() is changed to use the const WasmEdge_ModuleInstanceContext * as it's argument.
      • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

    Features:

    • Supported LLVM 14.
    • Supported the WASM tail-call proposal.
      • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
      • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
    • Supported the WASM extended-const proposal.
      • Added the WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.
      • Users can use the --enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.
    • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
    • Supported the gas limit in AOT mode.
    • New supporting of the wasi-socket proposal.
      • Supported send_to.
      • Supported resv_from.
    • Plugin support
      • Add loadable plugin support.
      • Move wasmedge_process to a loadable plugin.

    Fixed issues:

    • Fixed wasi-socket proposal issues.
      • Fixed wasi-socket on MacOS.
      • Fixed error when calling poll_oneoff with the same fd twice.
      • Fixed error when calling fd_close on socket.
      • Forged zero-terminated string for ::getaddrinfo.
      • Checked the socket options enumeration for valid value.
    • Fixed the statistics enable/disable routine.
    • Fixed the output format by the file extension name detection on multiple platforms.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
      • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.

    Refactor:

    • Supported multi-thread execution.
      • Changed the StackManager in Executor as thread local to support the multi-thread.
      • Used atomic operations for cost measuring.
      • Supported multi-thread timer.
    • Refactored the enumerations.
      • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
      • Merged the both C and C++ enumeration definitions into the enum.inc file.
      • Updated the ErrCode enumeration for the newest spec tests.
    • Refactored the code architecture for supporting tail-call proposal.
      • Split the call_indirect execution routine in compiler into AOT and interpreter path.
      • Updated the pop frame mechanism in the StackManager.
      • Updated the enter function mechanism.
    • Refined the file manager in Loader.
      • Supported the offset seeking in file and buffer.
      • Skipped the instructions parsing in AOT mode for better loading performance.
    • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
      • Pre-calculated the stack offset for branch in the validation phase.
      • Removed the label stack in the StackManager and used the pre-calculated data for branch.
      • Removed the dummy frame mechanism in the StackManager.
    • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
      • Removed the address mechanism for instances in the StoreManager.
      • Added the unsafe getter functions for the instances.
    • Refactored the StoreManager, ModuleInstance, and Executor.
      • Used the ModuleInstance-based resource management instead of StoreManager-based.
      • Moved the ownership of instances from the StoreManager into the ModuleInstance.
      • Merged the ImportObject into the ModuleInstance.
      • Invoking functions by FunctionInstance rather than the function name in Executor.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220504.
    • Added the spec tests for the tail-call proposal.
    • Added the spec tests for the extended-const proposal.
    • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
    • Added the thread-safe and multi-thread execution tests.
    • Added wasi-socket tests for poll_oneoff, send_to, and recv_from.

    Thank all the contributors that made this release possible!

    朱亚光, Abhinandan Udupa, Ang Lee, Binbin Zhang, Chin Zhi Wei, DarumaDocker, Elon Cheng, FlyingOnion, Hanged Fish, Herschel Wang, JIAN ZHONG, JcJinChen, Jeremy, JessesChou, JieDing, Kodalien, Kunshuai Zhu, LFsWang, LaingKe, Michael Yuan, Nicholas Zhan, 华德禹, O3Ol, Rui Li, Shen-Ta Hsieh, Shreyas Atre, Sylveon, TheLightRunner, Vaniot, Vinson, 罗泽轩, Xin Liu, Yi Huang, YiYing He, YoungLH, abhinandanudupa, border1px, eat4toast, hydai, jerbmarx, luckyJ-nj, meoww-bot, mydreamer4134, situ2001, tpmccallum, treeplus, wangyuan249, yale, 王琦

    If you want to build from source, please use WasmEdge-0.10.0-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.0-rc.1-android_aarch64.tar.gz(1.50 MB)
    WasmEdge-0.10.0-rc.1-darwin_x86_64.tar.gz(1.92 MB)
    WasmEdge-0.10.0-rc.1-manylinux1_x86_64.rpm(38.42 MB)
    WasmEdge-0.10.0-rc.1-manylinux1_x86_64.tar.gz(38.60 MB)
    WasmEdge-0.10.0-rc.1-manylinux1_x86_64.tar.xz(27.26 MB)
    WasmEdge-0.10.0-rc.1-manylinux2010_x86_64.rpm(31.97 MB)
    WasmEdge-0.10.0-rc.1-manylinux2010_x86_64.tar.gz(38.45 MB)
    WasmEdge-0.10.0-rc.1-manylinux2010_x86_64.tar.xz(27.14 MB)
    WasmEdge-0.10.0-rc.1-manylinux2014_aarch64.rpm(27.44 MB)
    WasmEdge-0.10.0-rc.1-manylinux2014_aarch64.tar.gz(36.76 MB)
    WasmEdge-0.10.0-rc.1-manylinux2014_aarch64.tar.xz(23.97 MB)
    WasmEdge-0.10.0-rc.1-manylinux2014_x86_64.rpm(30.98 MB)
    WasmEdge-0.10.0-rc.1-manylinux2014_x86_64.tar.gz(38.41 MB)
    WasmEdge-0.10.0-rc.1-manylinux2014_x86_64.tar.xz(27.13 MB)
    WasmEdge-0.10.0-rc.1-src.tar.gz(4.88 MB)
    WasmEdge-0.10.0-rc.1-windows.msi(30.30 MB)
    WasmEdge-0.10.0-rc.1-windows.zip(30.59 MB)
  • 0.10.0-alpha.2(May 19, 2022)

    0.10.0-alpha.2 (2022-05-20)

    Breaking changes:

    • WasmEdge C API changes.
      • Merged the WasmEdge_ImportObjectContext into the WasmEdge_ModuleInstanceContext.
        • WasmEdge_ImportObjectCreate() is changed to WasmEdge_ModuleInstanceCreate().
        • WasmEdge_ImportObjectDelete() is changed to WasmEdge_ModuleInstanceDelete().
        • WasmEdge_ImportObjectAddFunction() is changed to WasmEdge_ModuleInstanceAddFunction().
        • WasmEdge_ImportObjectAddTable() is changed to WasmEdge_ModuleInstanceAddTable().
        • WasmEdge_ImportObjectAddMemory() is changed to WasmEdge_ModuleInstanceAddMemory().
        • WasmEdge_ImportObjectAddGlobal() is changed to WasmEdge_ModuleInstanceAddGlobal().
        • WasmEdge_ImportObjectCreateWASI() is changed to WasmEdge_ModuleInstanceCreateWASI().
        • WasmEdge_ImportObjectCreateWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceCreateWasmEdgeProcess().
        • WasmEdge_ImportObjectInitWASI() is changed to WasmEdge_ModuleInstanceInitWASI().
        • WasmEdge_ImportObjectInitWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceInitWasmEdgeProcess().
      • Used the pointer to WasmEdge_FunctionInstanceContext instead of the index in the FuncRef value type.
        • WasmEdge_ValueGenFuncRef() is changed to use the const WasmEdge_FunctionInstanceContext * as it's argument.
        • WasmEdge_ValueGetFuncRef() is changed to return the const WasmEdge_FunctionInstanceContext *.
      • Moved the functions of WasmEdge_StoreContext to the WasmEdge_ModuleInstanceContext.
        • WasmEdge_StoreListFunctionLength() and WasmEdge_StoreListFunctionRegisteredLength() is replaced by WasmEdge_ModuleInstanceListFunctionLength().
        • WasmEdge_StoreListTableLength() and WasmEdge_StoreListTableRegisteredLength() is replaced by WasmEdge_ModuleInstanceListTableLength().
        • WasmEdge_StoreListMemoryLength() and WasmEdge_StoreListMemoryRegisteredLength() is replaced by WasmEdge_ModuleInstanceListMemoryLength().
        • WasmEdge_StoreListGlobalLength() and WasmEdge_StoreListGlobalRegisteredLength() is replaced by WasmEdge_ModuleInstanceListGlobalLength().
        • WasmEdge_StoreListFunction() and WasmEdge_StoreListFunctionRegistered() is replaced by WasmEdge_ModuleInstanceListFunction().
        • WasmEdge_StoreListTable() and WasmEdge_StoreListTableRegistered() is replaced by WasmEdge_ModuleInstanceListTable().
        • WasmEdge_StoreListMemory() and WasmEdge_StoreListMemoryRegistered() is replaced by WasmEdge_ModuleInstanceListMemory().
        • WasmEdge_StoreListGlobal() and WasmEdge_StoreListGlobalRegistered() is replaced by WasmEdge_ModuleInstanceListGlobal().
        • WasmEdge_StoreFindFunction() and WasmEdge_StoreFindFunctionRegistered() is replaced by WasmEdge_ModuleInstanceFindFunction().
        • WasmEdge_StoreFindTable() and WasmEdge_StoreFindTableRegistered() is replaced by WasmEdge_ModuleInstanceFindTable().
        • WasmEdge_StoreFindMemory() and WasmEdge_StoreFindMemoryRegistered() is replaced by WasmEdge_ModuleInstanceFindMemory().
        • WasmEdge_StoreFindGlobal() and WasmEdge_StoreFindGlobalRegistered() is replaced by WasmEdge_ModuleInstanceFindGlobal().
      • Updated the WasmEdge_VMContext APIs.
        • Added the WasmEdge_VMGetActiveModule().
        • WasmEdge_VMGetImportModuleContext() is changed to return the WasmEdge_FunctionInstanceContext *.
        • WasmEdge_VMRegisterModuleFromImport() is changed to use the const WasmEdge_ModuleInstanceContext * as it's argument.
      • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

    Features:

    • Supported the WASM tail-call proposal.
      • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
      • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
    • Supported the WASM extended-const proposal.
      • Added the WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.
      • Users can use the --enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.
    • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
    • Supported the gas limit in AOT mode.
    • New supporting of the wasi-socket proposal.
      • Supported send_to.
      • Supported resv_from.
    • Plugin support
      • Add loadable plugin support.
      • Move wasmedge_process to a loadable plugin.

    Fixed issues:

    • Fixed wasi-socket proposal issues.
      • Fixed wasi-socket on MacOS.
      • Fixed error when calling poll_oneoff with the same fd twice.
      • Fixed error when calling fd_close on socket.
      • Forged zero-terminated string for ::getaddrinfo.
      • Checked the socket options enumeration for valid value.
    • Fixed the statistics enable/disable routine.
    • Fixed the output format by the file extension name detection on multiple platforms.

    Known issues:

    • Universal WASM format failed on MacOS platforms.
      • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
      • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
      • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.

    Refactor:

    • Supported multi-thread execution.
      • Changed the StackManager in Executor as thread local to support the multi-thread.
      • Used atomic operations for cost measuring.
      • Supported multi-thread timer.
    • Refactored the enumerations.
      • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
      • Merged the both C and C++ enumeration definitions into the enum.inc file.
      • Updated the ErrCode enumeration for the newest spec tests.
    • Refactored the code architecture for supporting tail-call proposal.
      • Split the call_indirect execution routine in compiler into AOT and interpreter path.
      • Updated the pop frame mechanism in the StackManager.
      • Updated the enter function mechanism.
    • Refined the file manager in Loader.
      • Supported the offset seeking in file and buffer.
      • Skipped the instructions parsing in AOT mode for better loading performance.
    • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
      • Pre-calculated the stack offset for branch in the validation phase.
      • Removed the label stack in the StackManager and used the pre-calculated data for branch.
      • Removed the dummy frame mechanism in the StackManager.
    • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
      • Removed the address mechanism for instances in the StoreManager.
      • Added the unsafe getter functions for the instances.
    • Refactored the StoreManager, ModuleInstance, and Executor.
      • Used the ModuleInstance-based resource management instead of StoreManager-based.
      • Moved the ownership of instances from the StoreManager into the ModuleInstance.
      • Merged the ImportObject into the ModuleInstance.
      • Invoking functions by FunctionInstance rather than the function name in Executor.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220504.
    • Added the spec tests for the tail-call proposal.
    • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
    • Added the thread-safe and multi-thread execution tests.
    • Added wasi-socket tests for poll_oneoff, send_to, and recv_from.

    Thank all the contributors that made this release possible!

    朱亚光, Abhinandan Udupa, Ang Lee, Binbin Zhang, Chin Zhi Wei, DarumaDocker, Elon Cheng, FlyingOnion, Hanged Fish, Herschel Wang, JIAN ZHONG, JcJinChen, Jeremy, JessesChou, JieDing, Kodalien, Kunshuai Zhu, LFsWang, LaingKe, Michael Yuan, Nicholas Zhan, 华德禹, O3Ol, Rui Li, Shen-Ta Hsieh, Shreyas Atre, Sylveon, TheLightRunner, Vaniot, Vinson, 罗泽轩, Xin Liu, Yi Huang, YiYing He, YoungLH, abhinandanudupa, border1px, eat4toast, hydai, jerbmarx, luckyJ-nj, meoww-bot, mydreamer4134, situ2001, tpmccallum, treeplus, wangyuan249, 王琦

    If you want to build from source, please use WasmEdge-0.10.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.0-alpha.2-android_aarch64.tar.gz(1.50 MB)
    WasmEdge-0.10.0-alpha.2-darwin_x86_64.tar.gz(1.92 MB)
    WasmEdge-0.10.0-alpha.2-manylinux1_x86_64.rpm(38.42 MB)
    WasmEdge-0.10.0-alpha.2-manylinux1_x86_64.tar.gz(38.60 MB)
    WasmEdge-0.10.0-alpha.2-manylinux1_x86_64.tar.xz(27.27 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2010_x86_64.rpm(31.97 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2010_x86_64.tar.gz(38.45 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2010_x86_64.tar.xz(27.13 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2014_aarch64.rpm(27.44 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2014_aarch64.tar.gz(36.76 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2014_aarch64.tar.xz(23.97 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2014_x86_64.rpm(30.98 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2014_x86_64.tar.gz(38.41 MB)
    WasmEdge-0.10.0-alpha.2-manylinux2014_x86_64.tar.xz(27.12 MB)
    WasmEdge-0.10.0-alpha.2-src.tar.gz(4.84 MB)
    WasmEdge-0.10.0-alpha.2-windows.msi(30.30 MB)
    WasmEdge-0.10.0-alpha.2-windows.zip(30.59 MB)
  • 0.10.0-alpha.1(May 6, 2022)

    0.10.0-alpha.1 (2022-05-06)

    Breaking changes:

    • WasmEdge C API changes.
      • Merged the WasmEdge_ImportObjectContext into the WasmEdge_ModuleInstanceContext.
        • WasmEdge_ImportObjectCreate() is changed to WasmEdge_ModuleInstanceCreate().
        • WasmEdge_ImportObjectDelete() is changed to WasmEdge_ModuleInstanceDelete().
        • WasmEdge_ImportObjectAddFunction() is changed to WasmEdge_ModuleInstanceAddFunction().
        • WasmEdge_ImportObjectAddTable() is changed to WasmEdge_ModuleInstanceAddTable().
        • WasmEdge_ImportObjectAddMemory() is changed to WasmEdge_ModuleInstanceAddMemory().
        • WasmEdge_ImportObjectAddGlobal() is changed to WasmEdge_ModuleInstanceAddGlobal().
        • WasmEdge_ImportObjectCreateWASI() is changed to WasmEdge_ModuleInstanceCreateWASI().
        • WasmEdge_ImportObjectCreateWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceCreateWasmEdgeProcess().
        • WasmEdge_ImportObjectInitWASI() is changed to WasmEdge_ModuleInstanceInitWASI().
        • WasmEdge_ImportObjectInitWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceInitWasmEdgeProcess().
      • Used the pointer to WasmEdge_FunctionInstanceContext instead of the index in the FuncRef value type.
        • WasmEdge_ValueGenFuncRef() is changed to use the const WasmEdge_FunctionInstanceContext * as it's argument.
        • WasmEdge_ValueGetFuncRef() is changed to return the const WasmEdge_FunctionInstanceContext *.
      • Moved the functions of WasmEdge_StoreContext to the WasmEdge_ModuleInstanceContext.
        • WasmEdge_StoreListFunctionLength() and WasmEdge_StoreListFunctionRegisteredLength() is replaced by WasmEdge_ModuleInstanceListFunctionLength().
        • WasmEdge_StoreListTableLength() and WasmEdge_StoreListTableRegisteredLength() is replaced by WasmEdge_ModuleInstanceListTableLength().
        • WasmEdge_StoreListMemoryLength() and WasmEdge_StoreListMemoryRegisteredLength() is replaced by WasmEdge_ModuleInstanceListMemoryLength().
        • WasmEdge_StoreListGlobalLength() and WasmEdge_StoreListGlobalRegisteredLength() is replaced by WasmEdge_ModuleInstanceListGlobalLength().
        • WasmEdge_StoreListFunction() and WasmEdge_StoreListFunctionRegistered() is replaced by WasmEdge_ModuleInstanceListFunction().
        • WasmEdge_StoreListTable() and WasmEdge_StoreListTableRegistered() is replaced by WasmEdge_ModuleInstanceListTable().
        • WasmEdge_StoreListMemory() and WasmEdge_StoreListMemoryRegistered() is replaced by WasmEdge_ModuleInstanceListMemory().
        • WasmEdge_StoreListGlobal() and WasmEdge_StoreListGlobalRegistered() is replaced by WasmEdge_ModuleInstanceListGlobal().
        • WasmEdge_StoreFindFunction() and WasmEdge_StoreFindFunctionRegistered() is replaced by WasmEdge_ModuleInstanceFindFunction().
        • WasmEdge_StoreFindTable() and WasmEdge_StoreFindTableRegistered() is replaced by WasmEdge_ModuleInstanceFindTable().
        • WasmEdge_StoreFindMemory() and WasmEdge_StoreFindMemoryRegistered() is replaced by WasmEdge_ModuleInstanceFindMemory().
        • WasmEdge_StoreFindGlobal() and WasmEdge_StoreFindGlobalRegistered() is replaced by WasmEdge_ModuleInstanceFindGlobal().
      • Updated the WasmEdge_VMContext APIs.
        • Added the WasmEdge_VMGetActiveModule().
        • WasmEdge_VMGetImportModuleContext() is changed to return the WasmEdge_FunctionInstanceContext *.
        • WasmEdge_VMRegisterModuleFromImport() is changed to use the const WasmEdge_ModuleInstanceContext * as it's argument.
      • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

    Features:

    • Supported the WASM tail-call proposal.
      • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
      • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
    • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
    • Supported the gas limit in AOT mode.
    • New supporting of the wasi-socket proposal.
      • Supported send_to.
      • Supported resv_from.
    • Plugin support
      • Add loadable plugin support.
      • Move wasmedge_process to a loadable plugin.

    Fixed issues:

    • Fixed wasi-socket proposal issues.
      • Fixed wasi-socket on MacOS.
      • Fixed error when calling poll_oneoff with the same fd twice.
      • Fixed error when calling fd_close on socket.
      • Forged zero-terminated string for ::getaddrinfo.
      • Checked the socket options enumeration for valid value.
    • Fixed the statistics enable/disable routine.

    Refactor:

    • Supported multi-thread execution.
      • Changed the StackManager in Executor as thread local to support the multi-thread.
      • Used atomic operations for cost measuring.
      • Supported multi-thread timer.
    • Refactored the enumerations.
      • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
      • Merged the both C and C++ enumeration definitions into the enum.inc file.
      • Updated the ErrCode enumeration for the newest spec tests.
    • Refactored the code architecture for supporting tail-call proposal.
      • Split the call_indirect execution routine in compiler into AOT and interpreter path.
      • Updated the pop frame mechanism in the StackManager.
      • Updated the enter function mechanism.
    • Refined the file manager in Loader.
      • Supported the offset seeking in file and buffer.
      • Skipped the instructions parsing in AOT mode for better loading performance.
    • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
      • Pre-calculated the stack offset for branch in the validation phase.
      • Removed the label stack in the StackManager and used the pre-calculated data for branch.
      • Removed the dummy frame mechanism in the StackManager.
    • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
      • Removed the address mechanism for instances in the StoreManager.
      • Added the unsafe getter functions for the instances.
    • Refactored the StoreManager, ModuleInstance, and Executor.
      • Used the ModuleInstance-based resource management instead of StoreManager-based.
      • Moved the ownership of instances from the StoreManager into the ModuleInstance.
      • Merged the ImportObject into the ModuleInstance.
      • Invoking functions by FunctionInstance rather than the function name in Executor.

    Documentations:

    Tests:

    • Updated the spec tests to the date 20220504.
    • Added the spec tests for the tail-call proposal.
    • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
    • Added the thread-safe and multi-thread execution tests.
    • Added wasi-socket tests for poll_oneoff, send_to, and recv_from.

    Thank all the contributors that made this release possible!

    朱亚光, Abhinandan Udupa, Ang Lee, Binbin Zhang, DarumaDocker, Elon Cheng, FlyingOnion, Herschel Wang, JIAN ZHONG, JcJinChen, Jeremy, JessesChou, JieDing, Kodalien, Kunshuai Zhu, LFsWang, LaingKe, Michael Yuan, Nicholas Zhan, 华德禹, O3Ol, Rui Li, Shen-Ta Hsieh, Shreyas Atre, Sylveon, TheLightRunner, Vaniot, Vinson, 罗泽轩, Xin Liu, YiYing He, YoungLH, abhinandanudupa, border1px, eat4toast, hydai, jerbmarx, luckyJ-nj, meoww-bot, mydreamer4134, situ2001, tpmccallum, treeplus, wangyuan249, 王琦

    If you want to build from source, please use WasmEdge-0.10.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.10.0-alpha.1-android_aarch64.tar.gz(1.50 MB)
    WasmEdge-0.10.0-alpha.1-darwin_x86_64.tar.gz(1.92 MB)
    WasmEdge-0.10.0-alpha.1-manylinux1_x86_64.rpm(38.42 MB)
    WasmEdge-0.10.0-alpha.1-manylinux1_x86_64.tar.gz(38.60 MB)
    WasmEdge-0.10.0-alpha.1-manylinux1_x86_64.tar.xz(27.32 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2010_x86_64.rpm(31.97 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2010_x86_64.tar.gz(38.45 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2010_x86_64.tar.xz(27.19 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2014_aarch64.rpm(27.44 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2014_aarch64.tar.gz(36.76 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2014_aarch64.tar.xz(23.97 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2014_x86_64.rpm(30.98 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2014_x86_64.tar.gz(38.42 MB)
    WasmEdge-0.10.0-alpha.1-manylinux2014_x86_64.tar.xz(27.18 MB)
    WasmEdge-0.10.0-alpha.1-src.tar.gz(4.81 MB)
    WasmEdge-0.10.0-alpha.1-ubuntu20.04_amd64.deb(1.46 MB)
    WasmEdge-0.10.0-alpha.1-ubuntu20.04_amd64.rpm(2.86 MB)
    WasmEdge-0.10.0-alpha.1-ubuntu20.04_amd64.tar.gz(2.87 MB)
    WasmEdge-0.10.0-alpha.1-windows.msi(30.28 MB)
    WasmEdge-0.10.0-alpha.1-windows.zip(30.58 MB)
  • 0.9.1(Feb 10, 2022)

    0.9.1 (2022-02-10)

    Features:

    • WASI
      • Added the sock_getsockopt, sock_setsockopt, sock_getlocaladdr, sock_getpeeraddr, and sock_getaddrinfo host functions for the WASI socket proposal.
    • Supported the interruptible execution.
      • Added the WasmEdge_Async struct in WasmEdge C API for the asynchronous execution.
        • Added the WasmEdge_AsyncWait API for waiting an asynchronous execution.
        • Added the WasmEdge_AsyncWaitFor API for waiting an asynchronous execution with timeout.
        • Added the WasmEdge_AsyncCancel API for canceling an asynchronous execution.
        • Added the WasmEdge_AsyncGetReturnsLength API for waiting and getting the return value length of asynchronous execution.
        • Added the WasmEdge_AsyncGet API for waiting and getting the asynchronous execution results.
        • Added the WasmEdge_AsyncDelete API for destroying the WasmEdge_Async object.
      • Added the asynchronous mode execution APIs.
        • Added the WasmEdge_VMAsyncRunWasmFromFile API for executing WASM from a file asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromBuffer API for executing WASM from a buffer asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromASTModule API for executing WASM from an WasmEdge_ASTModuleContext asynchronously.
        • Added the WasmEdge_VMAsyncExecute API for invoking a WASM function asynchronously.
        • Added the WasmEdge_VMAsyncExecuteRegistered API for invoking a registered WASM function asynchronously.
      • Added the option for timeout settings of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerSetInterruptible API for setting the interruptibility of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerIsInterruptible API for getting the interruptibility of the AOT compiler.
    • Supported the WASM multi-memories proposal.
      • Added the WasmEdge_Proposal_MultiMemories for the configuration in WasmEdge C API.
      • Users can use the --enable-multi-memory to enable the proposal in wasmedge and wasmedgec tools.
    • Enabled the gas limitation of the wasmedge CLI.
      • Users can use the --gas-limit to assign the limitation of costs.
    • Beautified and colorized the WasmEdge CLI help information.

    Fixed issues:

    • Fixed the memory leak in function instances.
    • Reduced the memory usage of the instruction class.
    • Fixed the return value of the fread and fwrite WASI functions on Windows.

    Refactor:

    • Used assumingUnreachable instead of __builtin_unreachable to help the compiler to generate better codes.
    • Updated the order of the members in the proposal enumeration.
    • Refactored the instruction class for reducing the memory usage.
      • Refactored the WasmEdge::BlockType into a struct.
      • Categorized the members of the instruction class into a union.

    Documentations:

    Tests:

    • Handled the tests for the 32-bit platforms.
    • Added the spec tests for the multi-memories proposal.
    • Added the test cases for getaddrinfo host function.
    • Added the interruptible execution tests.
    • Added the unit tests of async APIs.

    Misc:

    • Updated the blake3 library to 1.2.0.
    • Added the copyright text.
    • Fixed the coding style of the comments.
    • Added the Windows installer release CI.
    • Added the aarch64 Android support based on r23b.
    • Added the Android example for WasmEdge C API.

    Thank all the contributors that made this release possible!

    2021, Antonio Yang, AvengerMoJo, Hanged Fish, Harinath Nampally, KernelErr, Michael Yuan, MileyFu, O3Ol, Saksham Sharma, Shen-Ta Hsieh(BestSteve), Shreyas Atre, SonOfMagic, Stephan Renatus, Sven Pfennig, Vaughn Dice, Xin Liu, Yi, Yi-Ying He, Yukang Chen, ZefengYu, ZhengX, alabulei1, alittlehorse, baiyutang, 董哲, hydai, javadoors, majinghe, meoww-bot, pasico, peterbi, villanel, wangshishuo, wangyuan249, wby, wolfishLamb, 王琦

    If you want to build from source, please use WasmEdge-0.9.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.9.1-1.fc35.src.rpm(4.59 MB)
    WasmEdge-0.9.1-android_aarch64.tar.gz(2.41 MB)
    WasmEdge-0.9.1-darwin_arm64.tar.gz(3.23 MB)
    WasmEdge-0.9.1-darwin_x86_64.tar.gz(3.13 MB)
    WasmEdge-0.9.1-manylinux1_x86_64.rpm(39.00 MB)
    WasmEdge-0.9.1-manylinux1_x86_64.tar.gz(39.18 MB)
    WasmEdge-0.9.1-manylinux1_x86_64.tar.xz(27.66 MB)
    WasmEdge-0.9.1-manylinux2010_x86_64.rpm(32.21 MB)
    WasmEdge-0.9.1-manylinux2010_x86_64.tar.gz(39.01 MB)
    WasmEdge-0.9.1-manylinux2010_x86_64.tar.xz(27.54 MB)
    WasmEdge-0.9.1-manylinux2014_aarch64.rpm(27.43 MB)
    WasmEdge-0.9.1-manylinux2014_aarch64.tar.gz(37.03 MB)
    WasmEdge-0.9.1-manylinux2014_aarch64.tar.xz(24.04 MB)
    WasmEdge-0.9.1-manylinux2014_x86_64.rpm(31.25 MB)
    WasmEdge-0.9.1-manylinux2014_x86_64.tar.gz(38.98 MB)
    WasmEdge-0.9.1-manylinux2014_x86_64.tar.xz(27.52 MB)
    WasmEdge-0.9.1-src.tar.gz(4.59 MB)
    WasmEdge-0.9.1-windows.msi(31.44 MB)
    WasmEdge-0.9.1-windows.zip(31.48 MB)
  • 0.9.1-rc.1(Feb 9, 2022)

    0.9.1 (unreleased)

    Features:

    • WASI
      • Added the sock_getsockopt, sock_setsockopt, sock_getlocaladdr, sock_getpeeraddr, and sock_getaddrinfo host functions for the WASI socket proposal.
    • Supported the interruptible execution.
      • Added the WasmEdge_Async struct in WasmEdge C API for the asynchronous execution.
        • Added the WasmEdge_AsyncWait API for waiting an asynchronous execution.
        • Added the WasmEdge_AsyncWaitFor API for waiting an asynchronous execution with timeout.
        • Added the WasmEdge_AsyncCancel API for canceling an asynchronous execution.
        • Added the WasmEdge_AsyncGetReturnsLength API for waiting and getting the return value length of asynchronous execution.
        • Added the WasmEdge_AsyncGet API for waiting and getting the asynchronous execution results.
        • Added the WasmEdge_AsyncDelete API for destroying the WasmEdge_Async object.
      • Added the asynchronous mode execution APIs.
        • Added the WasmEdge_VMAsyncRunWasmFromFile API for executing WASM from a file asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromBuffer API for executing WASM from a buffer asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromASTModule API for executing WASM from an WasmEdge_ASTModuleContext asynchronously.
        • Added the WasmEdge_VMAsyncExecute API for invoking a WASM function asynchronously.
        • Added the WasmEdge_VMAsyncExecuteRegistered API for invoking a registered WASM function asynchronously.
      • Added the option for timeout settings of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerSetInterruptible API for setting the interruptibility of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerIsInterruptible API for getting the interruptibility of the AOT compiler.
    • Supported the WASM multi-memories proposal.
      • Added the WasmEdge_Proposal_MultiMemories for the configuration in WasmEdge C API.
      • Users can use the --enable-multi-memory to enable the proposal in wasmedge and wasmedgec tools.
    • Enabled the gas limitation of the wasmedge CLI.
      • Users can use the --gas-limit to assign the limitation of costs.
    • Beautified and colorized the WasmEdge CLI help information.

    Fixed issues:

    • Fixed the memory leak in function instances.
    • Reduced the memory usage of the instruction class.
    • Fixed the return value of the fread and fwrite WASI functions on Windows.

    Refactor:

    • Used assumingUnreachable instead of __builtin_unreachable to help the compiler to generate better codes.
    • Updated the order of the members in the proposal enumeration.
    • Refactored the instruction class for reducing the memory usage.
      • Refactored the WasmEdge::BlockType into a struct.
      • Categorized the members of the instruction class into a union.

    Documentations:

    Tests:

    • Handled the tests for the 32-bit platforms.
    • Added the spec tests for the multi-memories proposal.
    • Added the test cases for getaddrinfo host function.
    • Added the interruptible execution tests.
    • Added the unit tests of async APIs.

    Misc:

    • Updated the blake3 library to 1.2.0.
    • Added the copyright text.
    • Fixed the coding style of the comments.
    • Added the Windows installer release CI.
    • Added the aarch64 Android support based on r23b.
    • Added the Android example for WasmEdge C API.

    Thank all the contributors that made this release possible!

    2021, Antonio Yang, AvengerMoJo, Hanged Fish, Harinath Nampally, KernelErr, Michael Yuan, MileyFu, O3Ol, Saksham Sharma, Shen-Ta Hsieh(BestSteve), Shreyas Atre, SonOfMagic, Stephan Renatus, Sven Pfennig, Vaughn Dice, Xin Liu, Yi, Yi-Ying He, Yukang Chen,ZefengYu, ZhengX, alabulei1, alittlehorse, 董哲, hydai, pasico, peterbi, villanel, wangshishuo, wangyuan249, wolfishLamb

    If you want to build from source, please use WasmEdge-0.9.1-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.1-rc.1-android_aarch64.tar.gz(2.41 MB)
    WasmEdge-0.9.1-rc.1-darwin_x86_64.tar.gz(3.13 MB)
    WasmEdge-0.9.1-rc.1-manylinux1_x86_64.rpm(38.99 MB)
    WasmEdge-0.9.1-rc.1-manylinux1_x86_64.tar.gz(39.16 MB)
    WasmEdge-0.9.1-rc.1-manylinux1_x86_64.tar.xz(27.68 MB)
    WasmEdge-0.9.1-rc.1-manylinux2010_x86_64.rpm(32.21 MB)
    WasmEdge-0.9.1-rc.1-manylinux2010_x86_64.tar.gz(39.00 MB)
    WasmEdge-0.9.1-rc.1-manylinux2010_x86_64.tar.xz(27.53 MB)
    WasmEdge-0.9.1-rc.1-manylinux2014_aarch64.rpm(27.43 MB)
    WasmEdge-0.9.1-rc.1-manylinux2014_aarch64.tar.gz(37.04 MB)
    WasmEdge-0.9.1-rc.1-manylinux2014_aarch64.tar.xz(24.04 MB)
    WasmEdge-0.9.1-rc.1-manylinux2014_x86_64.rpm(31.24 MB)
    WasmEdge-0.9.1-rc.1-manylinux2014_x86_64.tar.gz(38.97 MB)
    WasmEdge-0.9.1-rc.1-manylinux2014_x86_64.tar.xz(27.52 MB)
    WasmEdge-0.9.1-rc.1-src.tar.gz(4.57 MB)
    WasmEdge-0.9.1-rc.1-ubuntu20.04_amd64.deb(1.71 MB)
    WasmEdge-0.9.1-rc.1-ubuntu20.04_amd64.rpm(3.42 MB)
    WasmEdge-0.9.1-rc.1-ubuntu20.04_amd64.tar.gz(3.41 MB)
    WasmEdge-0.9.1-rc.1-windows.msi(31.44 MB)
    WasmEdge-0.9.1-rc.1-windows.zip(31.48 MB)
  • 0.9.1-beta.2(Jan 28, 2022)

    0.9.1 (unreleased)

    Features:

    • WASI
      • Added the sock_getsockopt, sock_setsockopt, sock_getlocaladdr, sock_getpeeraddr, and sock_getaddrinfo host functions for the WASI socket proposal.
    • Supported the interruptible execution.
      • Added the WasmEdge_Async struct in WasmEdge C API for the asynchronous execution.
        • Added the WasmEdge_AsyncWait API for waiting an asynchronous execution.
        • Added the WasmEdge_AsyncWaitFor API for waiting an asynchronous execution with timeout.
        • Added the WasmEdge_AsyncCancel API for canceling an asynchronous execution.
        • Added the WasmEdge_AsyncGetReturnsLength API for waiting and getting the return value length of asynchronous execution.
        • Added the WasmEdge_AsyncGet API for waiting and getting the asynchronous execution results.
        • Added the WasmEdge_AsyncDelete API for destroying the WasmEdge_Async object.
      • Added the asynchronous mode execution APIs.
        • Added the WasmEdge_VMAsyncRunWasmFromFile API for executing WASM from a file asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromBuffer API for executing WASM from a buffer asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromASTModule API for executing WASM from an WasmEdge_ASTModuleContext asynchronously.
        • Added the WasmEdge_VMAsyncExecute API for invoking a WASM function asynchronously.
        • Added the WasmEdge_VMAsyncExecuteRegistered API for invoking a registered WASM function asynchronously.
      • Added the option for timeout settings of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerSetInterruptible API for setting the interruptibility of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerIsInterruptible API for getting the interruptibility of the AOT compiler.
    • Supported the WASM multi-memories proposal.
      • Added the WasmEdge_Proposal_MultiMemories for the configuration in WasmEdge C API.
      • Users can use the --enable-multi-memory to enable the proposal in wasmedge and wasmedgec tools.
    • Enabled the gas limitation of the wasmedge CLI.
      • Users can use the --gas-limit to assign the limitation of costs.
    • Beautified and colorized the WasmEdge CLI help information.

    Fixed issues:

    • Fixed the memory leak in function instances.
    • Reduced the memory usage of the instruction class.
    • Fixed the return value of the fread and fwrite WASI functions on Windows.

    Refactor:

    • Used assumingUnreachable instead of __builtin_unreachable to help the compiler to generate better codes.
    • Updated the order of the members in the proposal enumeration.
    • Refactored the instruction class for reducing the memory usage.
      • Refactored the WasmEdge::BlockType into a struct.
      • Categorized the members of the instruction class into a union.

    Documentations:

    Tests:

    • Handled the tests for the 32-bit platforms.
    • Added the spec tests for the multi-memories proposal.
    • Added the test cases for getaddrinfo host function.
    • Added the interruptible execution tests.
    • Added the unit tests of async APIs.

    Misc:

    • Updated the blake3 library to 1.2.0.
    • Added the copyright text.
    • Fixed the coding style of the comments.
    • Added the Windows installer release CI.
    • Added the aarch64 Android support based on r23b.

    Thank all the contributors that made this release possible!

    2021, alabulei1, alittlehorse, Antonio Yang, AvengerMoJo, Hanged Fish, Harinath Nampally, hydai, KernelErr, Michael Yuan, O3Ol, Shen-Ta Hsieh, Shen-Ta Hsieh(BestSteve), Shreyas Atre, SonOfMagic, Stephan Renatus, Sven Pfennig, Vaughn Dice, wangshishuo, wolfishLamb, Xin Liu, Yi, Yi-Ying He, YiYing He, Yukang Chen

    If you want to build from source, please use WasmEdge-0.9.1-beta.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.1-beta.2-android_aarch64.tar.gz(2.41 MB)
    WasmEdge-0.9.1-beta.2-darwin_x86_64.tar.gz(3.13 MB)
    WasmEdge-0.9.1-beta.2-manylinux1_x86_64.rpm(38.99 MB)
    WasmEdge-0.9.1-beta.2-manylinux1_x86_64.tar.gz(39.17 MB)
    WasmEdge-0.9.1-beta.2-manylinux1_x86_64.tar.xz(27.67 MB)
    WasmEdge-0.9.1-beta.2-manylinux2010_x86_64.rpm(32.21 MB)
    WasmEdge-0.9.1-beta.2-manylinux2010_x86_64.tar.gz(39.00 MB)
    WasmEdge-0.9.1-beta.2-manylinux2010_x86_64.tar.xz(27.53 MB)
    WasmEdge-0.9.1-beta.2-manylinux2014_aarch64.rpm(27.43 MB)
    WasmEdge-0.9.1-beta.2-manylinux2014_aarch64.tar.gz(37.04 MB)
    WasmEdge-0.9.1-beta.2-manylinux2014_aarch64.tar.xz(24.04 MB)
    WasmEdge-0.9.1-beta.2-manylinux2014_x86_64.rpm(31.24 MB)
    WasmEdge-0.9.1-beta.2-manylinux2014_x86_64.tar.gz(38.97 MB)
    WasmEdge-0.9.1-beta.2-manylinux2014_x86_64.tar.xz(27.51 MB)
    WasmEdge-0.9.1-beta.2-src.tar.gz(4.46 MB)
    WasmEdge-0.9.1-beta.2-ubuntu20.04_amd64.deb(1.72 MB)
    WasmEdge-0.9.1-beta.2-ubuntu20.04_amd64.rpm(3.42 MB)
    WasmEdge-0.9.1-beta.2-ubuntu20.04_amd64.tar.gz(3.41 MB)
    WasmEdge-0.9.1-beta.2-windows.msi(31.44 MB)
    WasmEdge-0.9.1-beta.2-windows.zip(31.48 MB)
  • 0.9.1-beta.1(Jan 21, 2022)

    0.9.1 (unreleased)

    Features:

    • WASI
      • Added the sock_getsockopt, sock_setsockopt, sock_getlocaladdr, sock_getpeeraddr, and sock_getaddrinfo host functions for the WASI socket proposal.
    • Supported the interruptible execution.
      • Added the WasmEdge_Async struct in WasmEdge C API for the asynchronous execution.
        • Added the WasmEdge_AsyncWait API for waiting an asynchronous execution.
        • Added the WasmEdge_AsyncWaitFor API for waiting an asynchronous execution with timeout.
        • Added the WasmEdge_AsyncCancel API for canceling an asynchronous execution.
        • Added the WasmEdge_AsyncGetReturnsLength API for waiting and getting the return value length of asynchronous execution.
        • Added the WasmEdge_AsyncGet API for waiting and getting the asynchronous execution results.
        • Added the WasmEdge_AsyncDelete API for destroying the WasmEdge_Async object.
      • Added the asynchronous mode execution APIs.
        • Added the WasmEdge_VMAsyncRunWasmFromFile API for executing WASM from a file asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromBuffer API for executing WASM from a buffer asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromASTModule API for executing WASM from an WasmEdge_ASTModuleContext asynchronously.
        • Added the WasmEdge_VMAsyncExecute API for invoking a WASM function asynchronously.
        • Added the WasmEdge_VMAsyncExecuteRegistered API for invoking a registered WASM function asynchronously.
      • Added the option for timeout settings of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerSetInterruptible API for setting the interruptibility of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerIsInterruptible API for getting the interruptibility of the AOT compiler.
    • Supported the WASM multi-memories proposal.
      • Added the WasmEdge_Proposal_MultiMemories for the configuration in WasmEdge C API.
      • Users can use the --enable-multi-memory to enable the proposal in wasmedge and wasmedgec tools.
    • Enabled the gas limitation of the wasmedge CLI.
      • Users can use the --gas-limit to assign the limitation of costs.
    • Beautified and colorized the WasmEdge CLI help information.

    Fixed issues:

    • Fixed the memory leak in function instances.
    • Reduced the memory usage of the instruction class.
    • Fixed the return value of the fread and fwrite WASI functions on Windows.

    Refactor:

    • Used assumingUnreachable instead of __builtin_unreachable to help the compiler to generate better codes.
    • Updated the order of the members in the proposal enumeration.
    • Refactored the instruction class for reducing the memory usage.
      • Refactored the WasmEdge::BlockType into a struct.
      • Categorized the members of the instruction class into a union.

    Documentations:

    Tests:

    • Handled the tests for the 32-bit platforms.
    • Added the spec tests for the multi-memories proposal.
    • Added the test cases for getaddrinfo host function.
    • Added the interruptible execution tests.
    • Added the unit tests of async APIs.

    Misc:

    • Updated the blake3 library to 1.2.0.
    • Added the copyright text.
    • Fixed the coding style of the comments.
    • Added the Windows installer release CI.

    Thank all the contributors that made this release possible!

    2021, Antonio Yang, AvengerMoJo, Harinath Nampally, KernelErr, Michael Yuan, O3Ol, Shen-Ta Hsieh, Shreyas Atre, SonOfMagic, Stephan Renatus, Sven Pfennig, Vaughn Dice, Xin Liu, YiYing He, Yukang Chen, alabulei1, alittlehorse, hydai, wangshishuo, wolfishLamb

    If you want to build from source, please use WasmEdge-0.9.1-beta.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.1-beta.1-manylinux1_x86_64.rpm(38.99 MB)
    WasmEdge-0.9.1-beta.1-manylinux1_x86_64.tar.gz(39.16 MB)
    WasmEdge-0.9.1-beta.1-manylinux1_x86_64.tar.xz(27.62 MB)
    WasmEdge-0.9.1-beta.1-manylinux2010_x86_64.rpm(32.21 MB)
    WasmEdge-0.9.1-beta.1-manylinux2010_x86_64.tar.gz(39.00 MB)
    WasmEdge-0.9.1-beta.1-manylinux2010_x86_64.tar.xz(27.49 MB)
    WasmEdge-0.9.1-beta.1-manylinux2014_aarch64.rpm(27.43 MB)
    WasmEdge-0.9.1-beta.1-manylinux2014_aarch64.tar.gz(37.04 MB)
    WasmEdge-0.9.1-beta.1-manylinux2014_aarch64.tar.xz(24.04 MB)
    WasmEdge-0.9.1-beta.1-manylinux2014_x86_64.rpm(31.24 MB)
    WasmEdge-0.9.1-beta.1-manylinux2014_x86_64.tar.gz(38.97 MB)
    WasmEdge-0.9.1-beta.1-manylinux2014_x86_64.tar.xz(27.47 MB)
    WasmEdge-0.9.1-beta.1-src.tar.gz(4.48 MB)
    WasmEdge-0.9.1-beta.1-ubuntu20.04_amd64.deb(1.72 MB)
    WasmEdge-0.9.1-beta.1-ubuntu20.04_amd64.rpm(3.42 MB)
    WasmEdge-0.9.1-beta.1-ubuntu20.04_amd64.tar.gz(3.41 MB)
    WasmEdge-0.9.1-beta.1-windows.zip(31.48 MB)
  • 0.9.1-alpha.1(Jan 13, 2022)

    0.9.1 (unreleased)

    Features:

    • WASI
      • Added the sock_getsockopt, sock_setsockopt, sock_getlocaladdr, sock_getpeeraddr, and sock_getaddrinfo host functions for the WASI socket proposal.
    • Supported the interruptible execution.
      • Added the WasmEdge_Async struct in WasmEdge C API for the asynchronous execution.
        • Added the WasmEdge_AsyncWait API for waiting an asynchronous execution.
        • Added the WasmEdge_AsyncWaitFor API for waiting an asynchronous execution with timeout.
        • Added the WasmEdge_AsyncCancel API for canceling an asynchronous execution.
        • Added the WasmEdge_AsyncGet API for getting the asynchronous execution results.
        • Added the WasmEdge_AsyncDelete API for destroying the WasmEdge_Async object.
      • Added the asynchronous mode execution APIs.
        • Added the WasmEdge_VMAsyncRunWasmFromFile API for executing WASM from a file asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromBuffer API for executing WASM from a buffer asynchronously.
        • Added the WasmEdge_VMAsyncRunWasmFromASTModule API for executing WASM from an WasmEdge_ASTModuleContext asynchronously.
        • Added the WasmEdge_VMAsyncExecute API for invoking a WASM function asynchronously.
        • Added the WasmEdge_VMAsyncExecuteRegistered API for invoking a registered WASM function asynchronously.
      • Added the option for timeout settings of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerSetInterruptible API for setting the interruptibility of the AOT compiler.
        • Added the WasmEdge_ConfigureCompilerIsInterruptible API for getting the interruptibility of the AOT compiler.
    • Supported the WASM multi-memories proposal.
      • Added the WasmEdge_Proposal_MultiMemories for the configuration in WasmEdge C API.
      • Users can use the --enable-multi-memory to enable the proposal in wasmedge and wasmedgec tools.
    • Enabled the gas limitation of the wasmedge CLI.
      • Users can use the --gas-limit to assign the limitation of costs.
    • Beautified and colorized the WasmEdge CLI help information.

    Fixed issues:

    • Fixed the memory leak in function instances.
    • Reduced the memory usage of the instruction class.
    • Fixed the return value of the fread and fwrite WASI functions on Windows.

    Refactor:

    • Used assumingUnreachable instead of __builtin_unreachable to help the compiler to generate better codes.
    • Updated the order of the members in the proposal enumeration.
    • Refactored the instruction class for reducing the memory usage.
      • Refactored the WasmEdge::BlockType into a struct.
      • Categorized the members of the instruction class into a union.

    Documentations:

    Tests:

    • Handled the tests for the 32-bit platforms.
    • Added the spec tests for the multi-memories proposal.
    • Added the test cases for getaddrinfo host function.
    • Added the interruptible execution tests.

    Misc:

    • Updated the blake3 library to 1.2.0.
    • Added the copyright text.
    • Fixed the coding style of the comments.
    • Added the Windows installer release CI.

    Thank all the contributors that made this release possible!

    2021, Antonio Yang, AvengerMoJo, Harinath Nampally, KernelErr, Michael Yuan, O3Ol, Shen-Ta Hsieh, Shreyas Atre, Stephan Renatus, Sven Pfennig, Vaughn Dice, Xin Liu, YiYing He, Yukang Chen, alabulei1, alittlehorse, hydai, wangshishuo, wolfishLamb

    If you want to build from source, please use WasmEdge-0.9.1-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.1-alpha.1-manylinux1_x86_64.rpm(38.99 MB)
    WasmEdge-0.9.1-alpha.1-manylinux1_x86_64.tar.gz(39.16 MB)
    WasmEdge-0.9.1-alpha.1-manylinux1_x86_64.tar.xz(27.60 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2010_x86_64.rpm(32.21 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2010_x86_64.tar.gz(39.00 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2010_x86_64.tar.xz(27.49 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2014_aarch64.rpm(27.43 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2014_aarch64.tar.gz(37.03 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2014_aarch64.tar.xz(24.04 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2014_x86_64.rpm(31.23 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2014_x86_64.tar.gz(38.97 MB)
    WasmEdge-0.9.1-alpha.1-manylinux2014_x86_64.tar.xz(27.44 MB)
    WasmEdge-0.9.1-alpha.1-src.tar.gz(4.47 MB)
    WasmEdge-0.9.1-alpha.1-ubuntu20.04_amd64.deb(1.72 MB)
    WasmEdge-0.9.1-alpha.1-ubuntu20.04_amd64.rpm(3.41 MB)
    WasmEdge-0.9.1-alpha.1-ubuntu20.04_amd64.tar.gz(3.41 MB)
    WasmEdge-0.9.1-alpha.1-windows.zip(31.48 MB)
  • 0.9.0(Dec 9, 2021)

    0.9.0 (2021-12-09)

    Breaking changes:

    • Turned on the SIMD proposal by default.
      • The WasmEdge_ConfigureContext will turn on the SIMD proposal automatically.
      • Users can use the --disable-simd to disable the SIMD proposal in wasmedge and wasmedgec.
    • For better performance, the Statistics module is disabled by default.
      • To enable instruction counting, please use --enable-instruction-count.
      • To enable gas measuring, please use --enable-gas-measuring.
      • To enable time measuring, please use --enable-time-measuring.
      • For the convinence, use --enable-all-statistics will enable all available statistics options.
    • wasmedgec AOT compiler tool behavior changes.
      • For the output file name with extension .so, wasmedgec will output the AOT compiled WASM in shared library format.
      • For the output file name with extension .wasm or other cases, wasmedgec will output the WASM file with adding the AOT compiled binary in custom sections. wasmedge runtime will run in AOT mode when it executes the output WASM file.
    • Modulized the API Headers.
      • Moved the API header into the wasmedge folder. Developers should include the wasmedge/wasmedge.h for using the WasmEdge shared library after installation.
      • Moved the enumeration definitions into enum_errcode.h, enum_types.h, and enum_configure.h in the wasmedge folder.
      • Added the 201402L C++ standard checking if developer includes the headers with a C++ compiler.
    • Adjusted the error code names.
    • Renamed the Interpreter into Executor.
      • Renamed the Interpreter namespace into Executor.
      • Moved the headers and sources in the Interpreter folder into Executor folder.
      • Renamed the Interpreter APIs and listed below.
    • WasmEdge C API changes.
      • Updated the host function related APIs.
        • Deleted the data object column in the creation function of ImportObject context.
        • Merged the HostFunctionContext into FunctionInstanceContext.
          • Deleted the WasmEdge_HostFunctionContext object. Please use the WasmEdge_FunctionInstanceContext object instead.
          • Deleted the WasmEdge_HostFunctionCreate function. Please use the WasmEdge_FunctionInstanceCreate function instead.
          • Deleted the WasmEdge_HostFunctionCreateBinding function. Please use the WasmEdge_FunctionInstanceCreateBinding function instead.
          • Deleted the WasmEdge_HostFunctionDelete function. Please use the WasmEdge_FunctionInstanceDelete function instead.
          • Deleted the WasmEdge_ImportObjectAddHostFunction function. Please use the WasmEdge_ImportObjectAddFunction function instead.
        • Added the data object column in the creation function of FunctionInstance context.
        • Instead of the unified data object of the host functions in the same import object before, the data objects are independent in every host function now.
      • Added the WASM types contexts.
        • Added the WasmEdge_TableTypeContext, which is used for table instances creation.
        • Added the WasmEdge_MemoryTypeContext, which is used for memory instances creation.
        • Added the WasmEdge_GlobalTypeContext, which is used for global instances creation.
        • Added the member getter functions of the above contexts.
      • Updated the instances creation APIs.
        • Used WasmEdge_TableTypeContext for table instances creation.
          • Removed WasmEdge_TableInstanceGetRefType API.
          • Developers can use the WasmEdge_TableInstanceGetTableType API to get the table type instead.
        • Used WasmEdge_MemoryTypeContext for memory instances creation.
          • Added WasmEdge_MemoryInstanceGetMemoryType API.
        • Used WasmEdge_GlobalTypeContext for global instances creation.
          • Removed WasmEdge_GlobalInstanceGetValType and WasmEdge_GlobalInstanceGetMutability API.
          • Developers can use the WasmEdge_GlobalInstanceGetGlobalType API to get the global type instead.
      • Refactored for the objects' life cycle to reduce copying.
        • Developers should NOT destroy the WasmEdge_FunctionTypeContext objects returned from WasmEdge_VMGetFunctionList, WasmEdge_VMGetFunctionType, and WasmEdge_VMGetFunctionTypeRegistered functions.
        • Developers should NOT destroy the WasmEdge_String objects returned from WasmEdge_StoreListFunction, WasmEdge_StoreListFunctionRegistered, WasmEdge_StoreListTable, WasmEdge_StoreListTableRegistered, WasmEdge_StoreListMemory, WasmEdge_StoreListMemoryRegistered, WasmEdge_StoreListGlobal, WasmEdge_StoreListGlobalRegistered, WasmEdge_StoreListModule, and WasmEdge_VMGetFunctionList functions.
      • Renamed the Interpreter related APIs.
        • Replaced WasmEdge_InterpreterContext struct with WasmEdge_ExecutorContext struct.
        • Replaced WasmEdge_InterpreterCreate function with WasmEdge_ExecutorCreate function.
        • Replaced WasmEdge_InterpreterInstantiate function with WasmEdge_ExecutorInstantiate function.
        • Replaced WasmEdge_InterpreterRegisterImport function with WasmEdge_ExecutorRegisterImport function.
        • Replaced WasmEdge_InterpreterRegisterModule function with WasmEdge_ExecutorRegisterModule function.
        • Replaced WasmEdge_InterpreterInvoke function with WasmEdge_ExecutorInvoke function.
        • Replaced WasmEdge_InterpreterInvokeRegistered function with WasmEdge_ExecutorInvokeRegistered function.
        • Replaced WasmEdge_InterpreterDelete function with WasmEdge_ExecutorDelete function.
      • Refactored for statistics options
        • Renamed WasmEdge_ConfigureCompilerSetInstructionCounting to WasmEdge_ConfigureStatisticsSetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerSetCostMeasuring to WasmEdge_ConfigureStatisticsSetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerSetTimeMeasuring to WasmEdge_ConfigureStatisticsSetTimeMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetInstructionCounting to WasmEdge_ConfigureStatisticsGetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerGetCostMeasuring to WasmEdge_ConfigureStatisticsGetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetTimeMeasuring to WasmEdge_ConfigureStatisticsGetTimeMeasuring.
      • Simplified the WASI creation and initialization APIs.
        • Removed the Dirs and DirLen parameters in the WasmEdge_ImportObjectCreateWASI.
        • Removed the Dirs and DirLen parameters in the WasmEdge_ImportObjectInitWASI.

    Features:

    • Applied the old WebAssembly proposals options (All turned on by default).
      • Developers can use the --disable-import-export-mut-globals to disable the Import/Export mutable globals proposal in wasmedge and wasmedgec.
      • Developers can use the --disable-non-trap-float-to-int to disable the Non-trapping float-to-int conversions proposal in wasmedge and wasmedgec.
      • Developers can use the --disable-sign-extension-operators to disable the Sign-extension operators proposal in wasmedge and wasmedgec.
      • Developers can use the --disable-multi-value to disable the Multi-value proposal in wasmedge and wasmedgec.
    • New WasmEdge C API for listing imports and exports from AST module contexts.
      • Developers can query the ImportTypeContext and ExportTypeContext from the ASTModuleContext.
      • New object WasmEdge_ImportTypeContext.
      • New object WasmEdge_ExportTypeContext.
      • New AST module context functions to query the import and export types.
        • WasmEdge_ASTModuleListImportsLength function can query the imports list length from an AST module context.
        • WasmEdge_ASTModuleListExportsLength function can query the exports list length from an AST module context.
        • WasmEdge_ASTModuleListImports function can list all import types of an AST module context.
        • WasmEdge_ASTModuleListExports function can list all export types of an AST module context.
      • New import type context functions to query data.
        • WasmEdge_ImportTypeGetExternalType function can get the external type of an import type context.
        • WasmEdge_ImportTypeGetModuleName function can get the import module name.
        • WasmEdge_ImportTypeGetExternalName function can get the import external name.
        • WasmEdge_ImportTypeGetFunctionType function can get the function type of an import type context.
        • WasmEdge_ImportTypeGetTableType function can get the table type of an import type context.
        • WasmEdge_ImportTypeGetMemoryType function can get the memory type of an import type context.
        • WasmEdge_ImportTypeGetGlobalType function can get the global type of an import type context.
      • New export type context functions to query data.
        • WasmEdge_ExportTypeGetExternalType function can get the external type of an export type context.
        • WasmEdge_ExportTypeGetExternalName function can get the export external name.
        • WasmEdge_ExportTypeGetFunctionType function can get the function type of an export type context.
        • WasmEdge_ExportTypeGetTableType function can get the table type of an export type context.
        • WasmEdge_ExportTypeGetMemoryType function can get the memory type of an export type context.
        • WasmEdge_ExportTypeGetGlobalType function can get the global type of an export type context.
      • For more details of the usages of imports and exports, please refer to the C API documentation.
    • Exported the WasmEdge C API for getting exit code from WASI.
      • WasmEdge_ImportObjectWASIGetExitCode function can get the exit code from WASI after execution.
    • Exported the WasmEdge C API for AOT compiler related configurations.
      • WasmEdge_ConfigureCompilerSetOutputFormat function can set the AOT compiler output format.
      • WasmEdge_ConfigureCompilerGetOutputFormat function can get the AOT compiler output format.
      • WasmEdge_ConfigureCompilerSetGenericBinary function can set the option of AOT compiler generic binary output.
      • WasmEdge_ConfigureCompilerIsGenericBinary function can get the option of AOT compiler generic binary output.
    • Provided install and uninstall script for installing/uninstalling WasmEdge on linux(amd64 and aarch64) and macos(amd64 and arm64).
    • Supported compiling WebAssembly into a new WebAssembly file with a packed binary section.
    • Supported the automatically pre-open mapping with the path name in WASI.

    Fixed issues:

    • Refined the WasmEdge C API behaviors.
      • Handle the edge cases of WasmEdge_String creation.
    • Fixed the instruction iteration exception in interpreter mode.
      • Forcely added the capacity of instruction vector to prevent from connection of instruction vectors in different function instances.
    • Fixed the loader of AOT mode WASM.
      • Checked the file header instead of file name extension when loading from file.
      • Showed the error message when loading AOT compiled WASM from buffer. For AOT mode, please use the universal WASM binary.
      • Fixed the zero address used in AOT mode in load manager.
      • Fixed the loading failed for the AOT compiled WASM without intrinsics table.
    • Fixed the VM creation issue.
      • Added the loss of intrinsics table setting when creating a VM instance.
    • Fixed wasi-socket issues.
      • Support wasi-socket on MacOS.
      • Remove the port parameter from sock_accept.

    Refactor:

    • Refined headers inclusion in all files.
    • Refactor the common headers.
      • Removed the unnecessary genNullRef().
      • Merged the building environment-related definitions into common.
      • Merged the common/values.h into common/types.h.
      • Separated all enumeration definitions.
    • Refactored the AST nodes.
      • Simplified the AST nodes definitions into header-only classes.
      • Moved the binary loading functions into loader.
      • Updated the validator, executor, runtime, api, and vm for the AST node changes.
    • Refactored the runtime objects.
      • Used AST::FunctionType, AST::TableType, AST::MemoryType, and AST::GlobalType for instance creation and member handling.
      • Removed Runtime::Instance::FType and used AST::FunctionType instead.
      • Added routines to push function instances into import objects.
      • Removed the exported map getter in StoreManager. Used the getter from ModuleInstance instead.
      • Added the module name mapping in StoreManager.
    • Refactored the VM class.
      • Returned the reference to function type instead of copying when getting the function list.
      • Returned the vector of return value and value type pair when execution.
    • Updated the include path for rust binding due to the API headers refactoring.

    Documentations:

    Bindings:

    • Move rust crate from root path to bindings/rust.

    Tests:

    • Updated the core test suite to the newest WASM spec.
    • Updated and fixed the value comarison in core tests.
    • Added ErrInfo unit tests.
    • Added instruction tests for turning on/off the old proposals.
    • Moved and updated the AST unit tests into loader.
    • Moved and updated the Interpreter tests into Executor folder.
    • Added the unit tests for new APIs.
    • Applied the WasmEdge C API in the ExternRef tests.

    Misc:

    • Enabled GitHub CodeSpaces
    • Added assuming for assert checking to help compiler to generate better codes.

    Thank all the contributors that made this release possible!

    2021, actly, alabulei1, Alex, Antonio Yang, Ashutosh Sharma, Avinal Kumar, blackanger, Chojan Shang, dm4, eee4017, fossabot, hydai, Jayita Pramanik, Kenvi Zhu, luishsu, LuisHsu, MaazKhan711635, Michael Yuan, MileyFu, Nick Hynes, O3Ol, Peter Chang, robnanarivo, Shen-Ta Hsieh, Shreyas Atre, slidoooor, Sylveon, Timothy McCallum, Vikas S Shetty, vincent, Xin Liu, Yi Huang, yiying, YiYing He, Yona, Yukang, 牟展佑

    If you want to build from source, please use WasmEdge-0.9.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.

    Source code(tar.gz)
    Source code(zip)
    wasmedge-0.9.0-1.fc35.src.rpm(3.65 MB)
    WasmEdge-0.9.0-darwin_arm64.tar.gz(2.78 MB)
    WasmEdge-0.9.0-darwin_x86_64.tar.gz(3.07 MB)
    WasmEdge-0.9.0-manylinux1_x86_64.rpm(38.96 MB)
    WasmEdge-0.9.0-manylinux1_x86_64.tar.gz(39.14 MB)
    WasmEdge-0.9.0-manylinux1_x86_64.tar.xz(27.55 MB)
    WasmEdge-0.9.0-manylinux2010_x86_64.rpm(32.19 MB)
    WasmEdge-0.9.0-manylinux2010_x86_64.tar.gz(38.98 MB)
    WasmEdge-0.9.0-manylinux2010_x86_64.tar.xz(27.44 MB)
    WasmEdge-0.9.0-manylinux2014_aarch64.rpm(27.41 MB)
    WasmEdge-0.9.0-manylinux2014_aarch64.tar.gz(37.01 MB)
    WasmEdge-0.9.0-manylinux2014_aarch64.tar.xz(24.02 MB)
    WasmEdge-0.9.0-manylinux2014_x86_64.rpm(31.21 MB)
    WasmEdge-0.9.0-manylinux2014_x86_64.tar.gz(38.94 MB)
    WasmEdge-0.9.0-manylinux2014_x86_64.tar.xz(27.41 MB)
    WasmEdge-0.9.0-src.tar.gz(3.65 MB)
    WasmEdge-0.9.0-ubuntu20.04_amd64.deb(1.71 MB)
    WasmEdge-0.9.0-ubuntu20.04_amd64.rpm(3.38 MB)
    WasmEdge-0.9.0-ubuntu20.04_amd64.tar.gz(3.37 MB)
    WasmEdge-0.9.0-windows.zip(31.41 MB)
  • 0.9.0-rc.5(Nov 30, 2021)

    0.9.0 (unreleased)

    Breaking changes:

    • For better performance, the Statistics module is disabled by default.
      • To enable instruction counting, please use --enable-instruction-count.
      • To enable gas measuring, please use --enable-gas-measuring.
      • To enable time measuring, please use --enable-time-measuring.
      • For the convinence, use --enable-all-statistics will enable all available statistics options.
    • wasmedgec AOT compiler tool behavior changes.
      • For the output file name with extension .so, wasmedgec will output the AOT compiled WASM in shared library format.
      • For the output file name with extension .wasm or other cases, wasmedgec will output the WASM file with adding the AOT compiled binary in custom sections. wasmedge runtime will run in AOT mode when it executes the output WASM file.
    • Modulized the API Headers.
      • Moved the API header into the wasmedge folder. Developers should include the wasmedge/wasmedge.h for using the WasmEdge shared library after installation.
      • Moved the enumeration definitions into enum_errcode.h, enum_types.h, and enum_configure.h in the wasmedge folder.
      • Added the 201402L C++ standard checking if developer includes the headers with a C++ compiler.
    • Adjusted the error code names.
    • Renamed the Interpreter into Executor.
      • Renamed the Interpreter namespace into Executor.
      • Moved the headers and sources in the Interpreter folder into Executor folder.
      • Renamed the Interpreter APIs and listed below.
    • WasmEdge C API changes.
      • Updated the host function related APIs.
        • Deleted the data object column in the creation function of ImportObject context.
        • Merged the HostFunctionContext into FunctionInstanceContext.
          • Deleted the WasmEdge_HostFunctionContext object. Please use the WasmEdge_FunctionInstanceContext object instead.
          • Deleted the WasmEdge_HostFunctionCreate function. Please use the WasmEdge_FunctionInstanceCreate function instead.
          • Deleted the WasmEdge_HostFunctionCreateBinding function. Please use the WasmEdge_FunctionInstanceCreateBinding function instead.
          • Deleted the WasmEdge_HostFunctionDelete function. Please use the WasmEdge_FunctionInstanceDelete function instead.
          • Deleted the WasmEdge_ImportObjectAddHostFunction function. Please use the WasmEdge_ImportObjectAddFunction function instead.
        • Added the data object column in the creation function of FunctionInstance context.
        • Instead of the unified data object of the host functions in the same import object before, the data objects are independent in every host function now.
      • Added the WASM types contexts.
        • Added the WasmEdge_TableTypeContext, which is used for table instances creation.
        • Added the WasmEdge_MemoryTypeContext, which is used for memory instances creation.
        • Added the WasmEdge_GlobalTypeContext, which is used for global instances creation.
        • Added the member getter functions of the above contexts.
      • Updated the instances creation APIs.
        • Used WasmEdge_TableTypeContext for table instances creation.
          • Removed WasmEdge_TableInstanceGetRefType API.
          • Developers can use the WasmEdge_TableInstanceGetTableType API to get the table type instead.
        • Used WasmEdge_MemoryTypeContext for memory instances creation.
          • Added WasmEdge_MemoryInstanceGetMemoryType API.
        • Used WasmEdge_GlobalTypeContext for global instances creation.
          • Removed WasmEdge_GlobalInstanceGetValType and WasmEdge_GlobalInstanceGetMutability API.
          • Developers can use the WasmEdge_GlobalInstanceGetGlobalType API to get the global type instead.
      • Refactored for the objects' life cycle to reduce copying.
        • Developers should NOT destroy the WasmEdge_FunctionTypeContext objects returned from WasmEdge_VMGetFunctionList, WasmEdge_VMGetFunctionType, and WasmEdge_VMGetFunctionTypeRegistered functions.
        • Developers should NOT destroy the WasmEdge_String objects returned from WasmEdge_StoreListFunction, WasmEdge_StoreListFunctionRegistered, WasmEdge_StoreListTable, WasmEdge_StoreListTableRegistered, WasmEdge_StoreListMemory, WasmEdge_StoreListMemoryRegistered, WasmEdge_StoreListGlobal, WasmEdge_StoreListGlobalRegistered, WasmEdge_StoreListModule, and WasmEdge_VMGetFunctionList functions.
      • Renamed the Interpreter related APIs.
        • Replaced WasmEdge_InterpreterContext struct with WasmEdge_ExecutorContext struct.
        • Replaced WasmEdge_InterpreterCreate function with WasmEdge_ExecutorCreate function.
        • Replaced WasmEdge_InterpreterInstantiate function with WasmEdge_ExecutorInstantiate function.
        • Replaced WasmEdge_InterpreterRegisterImport function with WasmEdge_ExecutorRegisterImport function.
        • Replaced WasmEdge_InterpreterRegisterModule function with WasmEdge_ExecutorRegisterModule function.
        • Replaced WasmEdge_InterpreterInvoke function with WasmEdge_ExecutorInvoke function.
        • Replaced WasmEdge_InterpreterInvokeRegistered function with WasmEdge_ExecutorInvokeRegistered function.
        • Replaced WasmEdge_InterpreterDelete function with WasmEdge_ExecutorDelete function.
      • Refactored for statistics options
        • Renamed WasmEdge_ConfigureCompilerSetInstructionCounting to WasmEdge_ConfigureStatisticsSetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerSetCostMeasuring to WasmEdge_ConfigureStatisticsSetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerSetTimeMeasuring to WasmEdge_ConfigureStatisticsSetTimeMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetInstructionCounting to WasmEdge_ConfigureStatisticsGetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerGetCostMeasuring to WasmEdge_ConfigureStatisticsGetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetTimeMeasuring to WasmEdge_ConfigureStatisticsGetTimeMeasuring.
      • Simplified the WASI creation and initialization APIs.
        • Removed the Dirs and DirLen parameters in the WasmEdge_ImportObjectCreateWASI.
        • Removed the Dirs and DirLen parameters in the WasmEdge_ImportObjectInitWASI.

    Features:

    • Applied the old WebAssembly proposals options (All turned on by default).
      • Developers can use the disable-import-export-mut-globals to disable the Import/Export mutable globals proposal in wasmedge and wasmedgec.
      • Developers can use the disable-non-trap-float-to-int to disable the Non-trapping float-to-int conversions proposal in wasmedge and wasmedgec.
      • Developers can use the disable-sign-extension-operators to disable the Sign-extension operators proposal in wasmedge and wasmedgec.
      • Developers can use the disable-multi-value to disable the Multi-value proposal in wasmedge and wasmedgec.
    • New WasmEdge C API for listing imports and exports from AST module contexts.
      • Developers can query the ImportTypeContext and ExportTypeContext from the ASTModuleContext.
      • New object WasmEdge_ImportTypeContext.
      • New object WasmEdge_ExportTypeContext.
      • New AST module context functions to query the import and export types.
        • WasmEdge_ASTModuleListImportsLength function can query the imports list length from an AST module context.
        • WasmEdge_ASTModuleListExportsLength function can query the exports list length from an AST module context.
        • WasmEdge_ASTModuleListImports function can list all import types of an AST module context.
        • WasmEdge_ASTModuleListExports function can list all export types of an AST module context.
      • New import type context functions to query data.
        • WasmEdge_ImportTypeGetExternalType function can get the external type of an import type context.
        • WasmEdge_ImportTypeGetModuleName function can get the import module name.
        • WasmEdge_ImportTypeGetExternalName function can get the import external name.
        • WasmEdge_ImportTypeGetFunctionType function can get the function type of an import type context.
        • WasmEdge_ImportTypeGetTableType function can get the table type of an import type context.
        • WasmEdge_ImportTypeGetMemoryType function can get the memory type of an import type context.
        • WasmEdge_ImportTypeGetGlobalType function can get the global type of an import type context.
      • New export type context functions to query data.
        • WasmEdge_ExportTypeGetExternalType function can get the external type of an export type context.
        • WasmEdge_ExportTypeGetExternalName function can get the export external name.
        • WasmEdge_ExportTypeGetFunctionType function can get the function type of an export type context.
        • WasmEdge_ExportTypeGetTableType function can get the table type of an export type context.
        • WasmEdge_ExportTypeGetMemoryType function can get the memory type of an export type context.
        • WasmEdge_ExportTypeGetGlobalType function can get the global type of an export type context.
      • For more details of the usages of imports and exports, please refer to the C API documentation.
    • Exported the WasmEdge C API for getting exit code from WASI.
      • WasmEdge_ImportObjectWASIGetExitCode function can get the exit code from WASI after execution.
    • Exported the WasmEdge C API for AOT compiler related configurations.
      • WasmEdge_ConfigureCompilerSetOutputFormat function can set the AOT compiler output format.
      • WasmEdge_ConfigureCompilerGetOutputFormat function can get the AOT compiler output format.
      • WasmEdge_ConfigureCompilerSetGenericBinary function can set the option of AOT compiler generic binary output.
      • WasmEdge_ConfigureCompilerIsGenericBinary function can get the option of AOT compiler generic binary output.
    • Provided install and uninstall script for installing/uninstalling WasmEdge on linux(amd64 and aarch64) and macos(amd64 and arm64).
    • Supported compiling WebAssembly into a new WebAssembly file with a packed binary section.
    • Supported the automatically pre-open mapping with the path name in WASI.

    Fixed issues:

    • Refined the WasmEdge C API behaviors.
      • Handle the edge cases of WasmEdge_String creation.
    • Fixed the instruction iteration exception in interpreter mode.
      • Forcely added the capacity of instruction vector to prevent from connection of instruction vectors in different function instances.
    • Fixed the loader of AOT mode WASM.
      • Checked the file header instead of file name extension when loading from file.
      • Showed the error message when loading AOT compiled WASM from buffer. For AOT mode, please use the universal WASM binary.
      • Fixed the zero address used in AOT mode in load manager.
      • Fixed the loading failed for the AOT compiled WASM without intrinsics table.
    • Fixed the VM creation issue.
      • Added the loss of intrinsics table setting when creating a VM instance.
    • Fixed wasi-socket issues.
      • Support wasi-socket on MacOS.
      • Remove the port parameter from sock_accept.

    Refactor:

    • Refined headers inclusion in all files.
    • Refactor the common headers.
      • Removed the unnecessary genNullRef().
      • Merged the building environment-related definitions into common.
      • Merged the common/values.h into common/types.h.
      • Separated all enumeration definitions.
    • Refactored the AST nodes.
      • Simplified the AST nodes definitions into header-only classes.
      • Moved the binary loading functions into loader.
      • Updated the validator, executor, runtime, api, and vm for the AST node changes.
    • Refactored the runtime objects.
      • Used AST::FunctionType, AST::TableType, AST::MemoryType, and AST::GlobalType for instance creation and member handling.
      • Removed Runtime::Instance::FType and used AST::FunctionType instead.
      • Added routines to push function instances into import objects.
      • Removed the exported map getter in StoreManager. Used the getter from ModuleInstance instead.
      • Added the module name mapping in StoreManager.
    • Refactored the VM class.
      • Returned the reference to function type instead of copying when getting the function list.
      • Returned the vector of return value and value type pair when execution.
    • Updated the include path for rust binding due to the API headers refactoring.

    Documentations:

    Bindings:

    • Move rust crate from root path to bindings/rust.

    Tests:

    • Updated and fixed the value comarison in core tests.
    • Added ErrInfo unit tests.
    • Added instruction tests for turning on/off the old proposals.
    • Moved and updated the AST unit tests into loader.
    • Moved and updated the Interpreter tests into Executor folder.
    • Added the unit tests for new APIs.
    • Applied the WasmEdge C API in the ExternRef tests.

    Misc:

    • Enabled GitHub CodeSpaces
    • Added assuming for assert checking to help compiler to generate better codes.
    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.0-rc.5-darwin_arm64.tar.gz(2.78 MB)
    WasmEdge-0.9.0-rc.5-darwin_x86_64.tar.gz(3.06 MB)
    WasmEdge-0.9.0-rc.5-manylinux1_x86_64.rpm(38.97 MB)
    WasmEdge-0.9.0-rc.5-manylinux1_x86_64.tar.gz(39.13 MB)
    WasmEdge-0.9.0-rc.5-manylinux1_x86_64.tar.xz(27.63 MB)
    WasmEdge-0.9.0-rc.5-manylinux2010_x86_64.rpm(32.19 MB)
    WasmEdge-0.9.0-rc.5-manylinux2010_x86_64.tar.gz(38.98 MB)
    WasmEdge-0.9.0-rc.5-manylinux2010_x86_64.tar.xz(27.51 MB)
    WasmEdge-0.9.0-rc.5-manylinux2014_aarch64.rpm(27.41 MB)
    WasmEdge-0.9.0-rc.5-manylinux2014_aarch64.tar.gz(37.01 MB)
    WasmEdge-0.9.0-rc.5-manylinux2014_aarch64.tar.xz(24.03 MB)
    WasmEdge-0.9.0-rc.5-manylinux2014_x86_64.rpm(31.21 MB)
    WasmEdge-0.9.0-rc.5-manylinux2014_x86_64.tar.gz(38.95 MB)
    WasmEdge-0.9.0-rc.5-manylinux2014_x86_64.tar.xz(27.49 MB)
    WasmEdge-0.9.0-rc.5-ubuntu20.04_amd64.deb(1.69 MB)
    WasmEdge-0.9.0-rc.5-ubuntu20.04_amd64.rpm(3.38 MB)
    WasmEdge-0.9.0-rc.5-ubuntu20.04_amd64.tar.gz(3.37 MB)
  • 0.9.0-rc.4(Nov 23, 2021)

    0.9.0 (unreleased)

    Breaking changes:

    • For better performance, the Statistics module is disabled by default.
      • To enable instruction counting, please use --enable-instruction-count.
      • To enable gas measuring, please use --enable-gas-measuring.
      • To enable time measuring, please use --enable-time-measuring.
      • For the convinence, use --enable-all-statistics will enable all available statistics options.
    • wasmedgec AOT compiler tool behavior changes.
      • For the output file name with extension .so, wasmedgec will output the AOT compiled WASM in shared library format.
      • For the output file name with extension .wasm or other cases, wasmedgec will output the WASM file with adding the AOT compiled binary in custom sections. wasmedge runtime will run in AOT mode when it executes the output WASM file.
    • Modulized the API Headers.
      • Moved the API header into the wasmedge folder. Developers should include the wasmedge/wasmedge.h for using the WasmEdge shared library after installation.
      • Moved the enumeration definitions into enum_errcode.h, enum_types.h, and enum_configure.h in the wasmedge folder.
      • Added the 201402L C++ standard checking if developer includes the headers with a C++ compiler.
    • Adjusted the error code names.
    • Renamed the Interpreter into Executor.
      • Renamed the Interpreter namespace into Executor.
      • Moved the headers and sources in the Interpreter folder into Executor folder.
      • Renamed the Interpreter APIs and listed below.
    • WasmEdge C API changes.
      • Updated the host function related APIs.
        • Deleted the data object column in the creation function of ImportObject context.
        • Merged the HostFunctionContext into FunctionInstanceContext.
          • Deleted the WasmEdge_HostFunctionContext object. Please use the WasmEdge_FunctionInstanceContext object instead.
          • Deleted the WasmEdge_HostFunctionCreate function. Please use the WasmEdge_FunctionInstanceCreate function instead.
          • Deleted the WasmEdge_HostFunctionCreateBinding function. Please use the WasmEdge_FunctionInstanceCreateBinding function instead.
          • Deleted the WasmEdge_HostFunctionDelete function. Please use the WasmEdge_FunctionInstanceDelete function instead.
          • Deleted the WasmEdge_ImportObjectAddHostFunction function. Please use the WasmEdge_ImportObjectAddFunction function instead.
        • Added the data object column in the creation function of FunctionInstance context.
        • Instead of the unified data object of the host functions in the same import object before, the data objects are independent in every host function now.
      • Added the WASM types contexts.
        • Added the WasmEdge_TableTypeContext, which is used for table instances creation.
        • Added the WasmEdge_MemoryTypeContext, which is used for memory instances creation.
        • Added the WasmEdge_GlobalTypeContext, which is used for global instances creation.
        • Added the member getter functions of the above contexts.
      • Updated the instances creation APIs.
        • Used WasmEdge_TableTypeContext for table instances creation.
          • Removed WasmEdge_TableInstanceGetRefType API.
          • Developers can use the WasmEdge_TableInstanceGetTableType API to get the table type instead.
        • Used WasmEdge_MemoryTypeContext for memory instances creation.
          • Added WasmEdge_MemoryInstanceGetMemoryType API.
        • Used WasmEdge_GlobalTypeContext for global instances creation.
          • Removed WasmEdge_GlobalInstanceGetValType and WasmEdge_GlobalInstanceGetMutability API.
          • Developers can use the WasmEdge_GlobalInstanceGetGlobalType API to get the global type instead.
      • Refactored for the objects' life cycle to reduce copying.
        • Developers should NOT destroy the WasmEdge_FunctionTypeContext objects returned from WasmEdge_VMGetFunctionList, WasmEdge_VMGetFunctionType, and WasmEdge_VMGetFunctionTypeRegistered functions.
        • Developers should NOT destroy the WasmEdge_String objects returned from WasmEdge_StoreListFunction, WasmEdge_StoreListFunctionRegistered, WasmEdge_StoreListTable, WasmEdge_StoreListTableRegistered, WasmEdge_StoreListMemory, WasmEdge_StoreListMemoryRegistered, WasmEdge_StoreListGlobal, WasmEdge_StoreListGlobalRegistered, WasmEdge_StoreListModule, and WasmEdge_VMGetFunctionList functions.
      • Renamed the Interpreter related APIs.
        • Replaced WasmEdge_InterpreterContext struct with WasmEdge_ExecutorContext struct.
        • Replaced WasmEdge_InterpreterCreate function with WasmEdge_ExecutorCreate function.
        • Replaced WasmEdge_InterpreterInstantiate function with WasmEdge_ExecutorInstantiate function.
        • Replaced WasmEdge_InterpreterRegisterImport function with WasmEdge_ExecutorRegisterImport function.
        • Replaced WasmEdge_InterpreterRegisterModule function with WasmEdge_ExecutorRegisterModule function.
        • Replaced WasmEdge_InterpreterInvoke function with WasmEdge_ExecutorInvoke function.
        • Replaced WasmEdge_InterpreterInvokeRegistered function with WasmEdge_ExecutorInvokeRegistered function.
        • Replaced WasmEdge_InterpreterDelete function with WasmEdge_ExecutorDelete function.
      • Refactored for statistics options
        • Renamed WasmEdge_ConfigureCompilerSetInstructionCounting to WasmEdge_ConfigureStatisticsSetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerSetCostMeasuring to WasmEdge_ConfigureStatisticsSetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerSetTimeMeasuring to WasmEdge_ConfigureStatisticsSetTimeMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetInstructionCounting to WasmEdge_ConfigureStatisticsGetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerGetCostMeasuring to WasmEdge_ConfigureStatisticsGetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetTimeMeasuring to WasmEdge_ConfigureStatisticsGetTimeMeasuring.

    Features:

    • Applied the old WebAssembly proposals options (All turned on by default).
      • Developers can use the disable-import-export-mut-globals to disable the Import/Export mutable globals proposal in wasmedge and wasmedgec.
      • Developers can use the disable-non-trap-float-to-int to disable the Non-trapping float-to-int conversions proposal in wasmedge and wasmedgec.
      • Developers can use the disable-sign-extension-operators to disable the Sign-extension operators proposal in wasmedge and wasmedgec.
      • Developers can use the disable-multi-value to disable the Multi-value proposal in wasmedge and wasmedgec.
    • New WasmEdge C API for listing imports and exports from AST module contexts.
      • Developers can query the ImportTypeContext and ExportTypeContext from the ASTModuleContext.
      • New object WasmEdge_ImportTypeContext.
      • New object WasmEdge_ExportTypeContext.
      • New AST module context functions to query the import and export types.
        • WasmEdge_ASTModuleListImportsLength function can query the imports list length from an AST module context.
        • WasmEdge_ASTModuleListExportsLength function can query the exports list length from an AST module context.
        • WasmEdge_ASTModuleListImports function can list all import types of an AST module context.
        • WasmEdge_ASTModuleListExports function can list all export types of an AST module context.
      • New import type context functions to query data.
        • WasmEdge_ImportTypeGetExternalType function can get the external type of an import type context.
        • WasmEdge_ImportTypeGetModuleName function can get the import module name.
        • WasmEdge_ImportTypeGetExternalName function can get the import external name.
        • WasmEdge_ImportTypeGetFunctionType function can get the function type of an import type context.
        • WasmEdge_ImportTypeGetTableType function can get the table type of an import type context.
        • WasmEdge_ImportTypeGetMemoryType function can get the memory type of an import type context.
        • WasmEdge_ImportTypeGetGlobalType function can get the global type of an import type context.
      • New export type context functions to query data.
        • WasmEdge_ExportTypeGetExternalType function can get the external type of an export type context.
        • WasmEdge_ExportTypeGetExternalName function can get the export external name.
        • WasmEdge_ExportTypeGetFunctionType function can get the function type of an export type context.
        • WasmEdge_ExportTypeGetTableType function can get the table type of an export type context.
        • WasmEdge_ExportTypeGetMemoryType function can get the memory type of an export type context.
        • WasmEdge_ExportTypeGetGlobalType function can get the global type of an export type context.
      • For more details of the usages of imports and exports, please refer to the C API documentation.
    • Exported the WasmEdge C API for AOT compiler related configurations.
      • WasmEdge_ConfigureCompilerSetOutputFormat function can set the AOT compiler output format.
      • WasmEdge_ConfigureCompilerGetOutputFormat function can get the AOT compiler output format.
      • WasmEdge_ConfigureCompilerSetGenericBinary function can set the option of AOT compiler generic binary output.
      • WasmEdge_ConfigureCompilerIsGenericBinary function can get the option of AOT compiler generic binary output.
    • Provided install and uninstall script for installing/uninstalling WasmEdge on linux(amd64 and aarch64) and macos(amd64 and arm64).
    • Supported compiling WebAssembly into a new WebAssembly file with a packed binary section.

    Fixed issues:

    • Refined the WasmEdge C API behaviors.
      • Handle the edge cases of WasmEdge_String creation.
    • Fixed the instruction iteration exception in interpreter mode.
      • Forcely added the capacity of instruction vector to prevent from connection of instruction vectors in different function instances.
    • Fixed the loader of AOT mode WASM.
      • Checked the file header instead of file name extension when loading from file.
      • Showed the error message when loading AOT compiled WASM from buffer. For AOT mode, please use the universal WASM binary.
      • Fixed the zero address used in AOT mode in load manager.
      • Fixed the loading failed for the AOT compiled WASM without intrinsics table.
    • Fixed the VM creation issue.
      • Added the loss of intrinsics table setting when creating a VM instance.
    • Fixed wasi-socket issues.
      • Support wasi-socket on MacOS.
      • Remove the port parameter from sock_accept.

    Refactor:

    • Refined headers inclusion in all files.
    • Refactor the common headers.
      • Removed the unnecessary genNullRef().
      • Merged the building environment-related definitions into common.
      • Merged the common/values.h into common/types.h.
      • Separated all enumeration definitions.
    • Refactored the AST nodes.
      • Simplified the AST nodes definitions into header-only classes.
      • Moved the binary loading functions into loader.
      • Updated the validator, executor, runtime, api, and vm for the AST node changes.
    • Refactored the runtime objects.
      • Used AST::FunctionType, AST::TableType, AST::MemoryType, and AST::GlobalType for instance creation and member handling.
      • Removed Runtime::Instance::FType and used AST::FunctionType instead.
      • Added routines to push function instances into import objects.
      • Removed the exported map getter in StoreManager. Used the getter from ModuleInstance instead.
      • Added the module name mapping in StoreManager.
    • Refactored the VM class.
      • Returned the reference to function type instead of copying when getting the function list.
      • Returned the vector of return value and value type pair when execution.
    • Updated the include path for rust binding due to the API headers refactoring.

    Documentations:

    Bindings:

    • Move rust crate from root path to bindings/rust.

    Tests:

    • Updated and fixed the value comarison in core tests.
    • Added ErrInfo unit tests.
    • Added instruction tests for turning on/off the old proposals.
    • Moved and updated the AST unit tests into loader.
    • Moved and updated the Interpreter tests into Executor folder.
    • Added the unit tests for new APIs.

    Misc:

    • Enabled GitHub CodeSpaces
    • Added assuming for assert checking to help compiler to generate better codes.
    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.0-rc.4-darwin_arm64.tar.gz(2.78 MB)
    WasmEdge-0.9.0-rc.4-darwin_x86_64.tar.gz(2.99 MB)
    WasmEdge-0.9.0-rc.4-manylinux1_x86_64.rpm(38.97 MB)
    WasmEdge-0.9.0-rc.4-manylinux1_x86_64.tar.gz(39.13 MB)
    WasmEdge-0.9.0-rc.4-manylinux1_x86_64.tar.xz(27.63 MB)
    WasmEdge-0.9.0-rc.4-manylinux2010_x86_64.rpm(32.19 MB)
    WasmEdge-0.9.0-rc.4-manylinux2010_x86_64.tar.gz(38.98 MB)
    WasmEdge-0.9.0-rc.4-manylinux2010_x86_64.tar.xz(27.52 MB)
    WasmEdge-0.9.0-rc.4-manylinux2014_aarch64.rpm(27.41 MB)
    WasmEdge-0.9.0-rc.4-manylinux2014_aarch64.tar.gz(37.01 MB)
    WasmEdge-0.9.0-rc.4-manylinux2014_aarch64.tar.xz(24.03 MB)
    WasmEdge-0.9.0-rc.4-manylinux2014_x86_64.rpm(31.21 MB)
    WasmEdge-0.9.0-rc.4-manylinux2014_x86_64.tar.gz(38.95 MB)
    WasmEdge-0.9.0-rc.4-manylinux2014_x86_64.tar.xz(27.50 MB)
    WasmEdge-0.9.0-rc.4-ubuntu20.04_amd64.deb(1.69 MB)
    WasmEdge-0.9.0-rc.4-ubuntu20.04_amd64.rpm(3.38 MB)
    WasmEdge-0.9.0-rc.4-ubuntu20.04_amd64.tar.gz(3.38 MB)
  • 0.9.0-rc.3(Nov 15, 2021)

    0.9.0 (unreleased)

    Breaking changes:

    • For better performance, the Statistics module is disabled by default.
      • To enable instruction counting, please use --enable-instruction-count.
      • To enable gas measuring, please use --enable-gas-measuring.
      • To enable time measuring, please use --enable-time-measuring.
      • For the convinence, use --enable-all-statistics will enable all available statistics options.
    • wasmedgec AOT compiler tool behavior changes.
      • For the output file name with extension .so, wasmedgec will output the AOT compiled WASM in shared library format.
      • For the output file name with extension .wasm or other cases, wasmedgec will output the WASM file with adding the AOT compiled binary in custom sections. wasmedge runtime will run in AOT mode when it executes the output WASM file.
    • Modulized the API Headers.
      • Moved the API header into the wasmedge folder. Developers should include the wasmedge/wasmedge.h for using the WasmEdge shared library after installation.
      • Moved the enumeration definitions into enum_errcode.h, enum_types.h, and enum_configure.h in the wasmedge folder.
      • Added the 201402L C++ standard checking if developer includes the headers with a C++ compiler.
    • Adjusted the error code names.
    • Renamed the Interpreter into Executor.
      • Renamed the Interpreter namespace into Executor.
      • Moved the headers and sources in the Interpreter folder into Executor folder.
      • Renamed the Interpreter APIs and listed below.
    • WasmEdge C API changes.
      • Updated the host function related APIs.
        • Deleted the data object column in the creation function of ImportObject context.
        • Merged the HostFunctionContext into FunctionInstanceContext.
          • Deleted the WasmEdge_HostFunctionContext object. Please use the WasmEdge_FunctionInstanceContext object instead.
          • Deleted the WasmEdge_HostFunctionCreate function. Please use the WasmEdge_FunctionInstanceCreate function instead.
          • Deleted the WasmEdge_HostFunctionCreateBinding function. Please use the WasmEdge_FunctionInstanceCreateBinding function instead.
          • Deleted the WasmEdge_HostFunctionDelete function. Please use the WasmEdge_FunctionInstanceDelete function instead.
          • Deleted the WasmEdge_ImportObjectAddHostFunction function. Please use the WasmEdge_ImportObjectAddFunction function instead.
        • Added the data object column in the creation function of FunctionInstance context.
        • Instead of the unified data object of the host functions in the same import object before, the data objects are independent in every host function now.
      • Added the WASM types contexts.
        • Added the WasmEdge_TableTypeContext, which is used for table instances creation.
        • Added the WasmEdge_MemoryTypeContext, which is used for memory instances creation.
        • Added the WasmEdge_GlobalTypeContext, which is used for global instances creation.
        • Added the member getter functions of the above contexts.
      • Updated the instances creation APIs.
        • Used WasmEdge_TableTypeContext for table instances creation.
          • Removed WasmEdge_TableInstanceGetRefType API.
          • Developers can use the WasmEdge_TableInstanceGetTableType API to get the table type instead.
        • Used WasmEdge_MemoryTypeContext for memory instances creation.
          • Added WasmEdge_MemoryInstanceGetMemoryType API.
        • Used WasmEdge_GlobalTypeContext for global instances creation.
          • Removed WasmEdge_GlobalInstanceGetValType and WasmEdge_GlobalInstanceGetMutability API.
          • Developers can use the WasmEdge_GlobalInstanceGetGlobalType API to get the global type instead.
      • Refactored for the objects' life cycle to reduce copying.
        • Developers should NOT destroy the WasmEdge_FunctionTypeContext objects returned from WasmEdge_VMGetFunctionList, WasmEdge_VMGetFunctionType, and WasmEdge_VMGetFunctionTypeRegistered functions.
        • Developers should NOT destroy the WasmEdge_String objects returned from WasmEdge_StoreListFunction, WasmEdge_StoreListFunctionRegistered, WasmEdge_StoreListTable, WasmEdge_StoreListTableRegistered, WasmEdge_StoreListMemory, WasmEdge_StoreListMemoryRegistered, WasmEdge_StoreListGlobal, WasmEdge_StoreListGlobalRegistered, WasmEdge_StoreListModule, and WasmEdge_VMGetFunctionList functions.
      • Renamed the Interpreter related APIs.
        • Replaced WasmEdge_InterpreterContext struct with WasmEdge_ExecutorContext struct.
        • Replaced WasmEdge_InterpreterCreate function with WasmEdge_ExecutorCreate function.
        • Replaced WasmEdge_InterpreterInstantiate function with WasmEdge_ExecutorInstantiate function.
        • Replaced WasmEdge_InterpreterRegisterImport function with WasmEdge_ExecutorRegisterImport function.
        • Replaced WasmEdge_InterpreterRegisterModule function with WasmEdge_ExecutorRegisterModule function.
        • Replaced WasmEdge_InterpreterInvoke function with WasmEdge_ExecutorInvoke function.
        • Replaced WasmEdge_InterpreterInvokeRegistered function with WasmEdge_ExecutorInvokeRegistered function.
        • Replaced WasmEdge_InterpreterDelete function with WasmEdge_ExecutorDelete function.
      • Refactored for statistics options
        • Renamed WasmEdge_ConfigureCompilerSetInstructionCounting to WasmEdge_ConfigureStatisticsSetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerSetCostMeasuring to WasmEdge_ConfigureStatisticsSetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerSetTimeMeasuring to WasmEdge_ConfigureStatisticsSetTimeMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetInstructionCounting to WasmEdge_ConfigureStatisticsGetInstructionCounting.
        • Renamed WasmEdge_ConfigureCompilerGetCostMeasuring to WasmEdge_ConfigureStatisticsGetCostMeasuring.
        • Renamed WasmEdge_ConfigureCompilerGetTimeMeasuring to WasmEdge_ConfigureStatisticsGetTimeMeasuring.

    Features:

    • Applied the old WebAssembly proposals options (All turned on by default).
      • Developers can use the disable-import-export-mut-globals to disable the Import/Export mutable globals proposal in wasmedge and wasmedgec.
      • Developers can use the disable-non-trap-float-to-int to disable the Non-trapping float-to-int conversions proposal in wasmedge and wasmedgec.
      • Developers can use the disable-sign-extension-operators to disable the Sign-extension operators proposal in wasmedge and wasmedgec.
      • Developers can use the disable-multi-value to disable the Multi-value proposal in wasmedge and wasmedgec.
    • New WasmEdge C API for listing imports and exports from AST module contexts.
      • Developers can query the ImportTypeContext and ExportTypeContext from the ASTModuleContext.
      • New object WasmEdge_ImportTypeContext.
      • New object WasmEdge_ExportTypeContext.
      • New AST module context functions to query the import and export types.
        • WasmEdge_ASTModuleListImportsLength function can query the imports list length from an AST module context.
        • WasmEdge_ASTModuleListExportsLength function can query the exports list length from an AST module context.
        • WasmEdge_ASTModuleListImports function can list all import types of an AST module context.
        • WasmEdge_ASTModuleListExports function can list all export types of an AST module context.
      • New import type context functions to query data.
        • WasmEdge_ImportTypeGetExternalType function can get the external type of an import type context.
        • WasmEdge_ImportTypeGetModuleName function can get the import module name.
        • WasmEdge_ImportTypeGetExternalName function can get the import external name.
        • WasmEdge_ImportTypeGetFunctionType function can get the function type of an import type context.
        • WasmEdge_ImportTypeGetTableType function can get the table type of an import type context.
        • WasmEdge_ImportTypeGetMemoryType function can get the memory type of an import type context.
        • WasmEdge_ImportTypeGetGlobalType function can get the global type of an import type context.
      • New export type context functions to query data.
        • WasmEdge_ExportTypeGetExternalType function can get the external type of an export type context.
        • WasmEdge_ExportTypeGetExternalName function can get the export external name.
        • WasmEdge_ExportTypeGetFunctionType function can get the function type of an export type context.
        • WasmEdge_ExportTypeGetTableType function can get the table type of an export type context.
        • WasmEdge_ExportTypeGetMemoryType function can get the memory type of an export type context.
        • WasmEdge_ExportTypeGetGlobalType function can get the global type of an export type context.
      • For more details of the usages of imports and exports, please refer to the C API documentation.
    • Exported the WasmEdge C API for AOT compiler related configurations.
      • WasmEdge_ConfigureCompilerSetOutputFormat function can set the AOT compiler output format.
      • WasmEdge_ConfigureCompilerGetOutputFormat function can get the AOT compiler output format.
      • WasmEdge_ConfigureCompilerSetGenericBinary function can set the option of AOT compiler generic binary output.
      • WasmEdge_ConfigureCompilerIsGenericBinary function can get the option of AOT compiler generic binary output.
    • Provided install and uninstall script for installing/uninstalling WasmEdge on linux(amd64 and aarch64) and macos(amd64 and arm64).
    • Supported compiling WebAssembly into a new WebAssembly file with a packed binary section.

    Fixed issues:

    • Refined the WasmEdge C API behaviors.
      • Handle the edge cases of WasmEdge_String creation.
    • Fixed the instruction iteration exception in interpreter mode.
      • Forcely added the capacity of instruction vector to prevent from connection of instruction vectors in different function instances.
    • Fixed the loader of AOT mode WASM.
      • Checked the file header instead of file name extension when loading from file.
      • Showed the error message when loading AOT compiled WASM from buffer. For AOT mode, please use the universal WASM binary.
      • Fixed the zero address used in AOT mode in load manager.
      • Fixed the loading failed for the AOT compiled WASM without intrinsics table.
    • Fixed the VM creation issue.
      • Added the loss of intrinsics table setting when creating a VM instance.
    • Fixed wasi-socket support on macos.

    Refactor:

    • Refined headers inclusion in all files.
    • Refactor the common headers.
      • Removed the unnecessary genNullRef().
      • Merged the building environment-related definitions into common.
      • Merged the common/values.h into common/types.h.
      • Separated all enumeration definitions.
    • Refactored the AST nodes.
      • Simplified the AST nodes definitions into header-only classes.
      • Moved the binary loading functions into loader.
      • Updated the validator, executor, runtime, api, and vm for the AST node changes.
    • Refactored the runtime objects.
      • Used AST::FunctionType, AST::TableType, AST::MemoryType, and AST::GlobalType for instance creation and member handling.
      • Removed Runtime::Instance::FType and used AST::FunctionType instead.
      • Added routines to push function instances into import objects.
      • Removed the exported map getter in StoreManager. Used the getter from ModuleInstance instead.
      • Added the module name mapping in StoreManager.
    • Refactored the VM class.
      • Returned the reference to function type instead of copying when getting the function list.
      • Returned the vector of return value and value type pair when execution.
    • Updated the include path for rust binding due to the API headers refactoring.

    Documentations:

    Bindings:

    • Move rust crate from root path to bindings/rust.

    Tests:

    • Updated and fixed the value comarison in core tests.
    • Added ErrInfo unit tests.
    • Added instruction tests for turning on/off the old proposals.
    • Moved and updated the AST unit tests into loader.
    • Moved and updated the Interpreter tests into Executor folder.
    • Added the unit tests for new APIs.

    Misc:

    • Enabled GitHub CodeSpaces
    • Added assuming for assert checking to help compiler to generate better codes.
    Source code(tar.gz)
    Source code(zip)
    WasmEdge-0.9.0-rc.3-darwin_arm64.tar.gz(2.78 MB)
    WasmEdge-0.9.0-rc.3-darwin_x86_64.tar.gz(2.99 MB)
    WasmEdge-0.9.0-rc.3-manylinux1_x86_64.rpm(38.97 MB)
    WasmEdge-0.9.0-rc.3-manylinux1_x86_64.tar.gz(39.13 MB)
    WasmEdge-0.9.0-rc.3-manylinux1_x86_64.tar.xz(27.65 MB)
    WasmEdge-0.9.0-rc.3-manylinux2010_x86_64.rpm(32.19 MB)
    WasmEdge-0.9.0-rc.3-manylinux2010_x86_64.tar.gz(38.98 MB)
    WasmEdge-0.9.0-rc.3-manylinux2010_x86_64.tar.xz(27.51 MB)
    WasmEdge-0.9.0-rc.3-manylinux2014_aarch64.rpm(27.41 MB)
    WasmEdge-0.9.0-rc.3-manylinux2014_aarch64.tar.gz(37.01 MB)
    WasmEdge-0.9.0-rc.3-manylinux2014_aarch64.tar.xz(24.03 MB)
    WasmEdge-0.9.0-rc.3-manylinux2014_x86_64.rpm(31.21 MB)
    WasmEdge-0.9.0-rc.3-manylinux2014_x86_64.tar.gz(38.95 MB)
    WasmEdge-0.9.0-rc.3-manylinux2014_x86_64.tar.xz(27.50 MB)
    WasmEdge-0.9.0-rc.3-ubuntu20.04_amd64.deb(1.70 MB)
    WasmEdge-0.9.0-rc.3-ubuntu20.04_amd64.rpm(3.38 MB)
    WasmEdge-0.9.0-rc.3-ubuntu20.04_amd64.tar.gz(3.37 MB)
Provide building blocks (software, hardware and algorithms) for implementing SLAM using small sensors

RemoteSLAM The purpose of this repo is to provide the building blocks (software drivers, hardware and algorithms) for implementing SLAM systems using

Autonomous Drones Lab, Tel Aviv University 38 Jan 20, 2022
Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes.

The Algorithms - C # {#mainpage} Overview The repository is a collection of open-source implementation of a variety of algorithms implemented in C and

The Algorithms 15.3k Jan 5, 2023
C++ fundamentals and questions for beginners and intermediates. Welcoming developers, content writers, and programming enthusiasts.

Rules To Contribute To This Repo You can write solutions only in C++ for Data Structure and Algorithms (if you dont know C++ you can submit only algor

Sushree Satarupa 210 Dec 11, 2022
Collection of algorithms and data structures in C++ and Java

Collection of algorithms and data structures in C++ and Java

Andrei Navumenka 1.7k Jan 2, 2023
Organic Maps is a better fork of MAPS.ME, an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MAPS.ME founders.

?? Organic Maps is a better fork of MAPS.ME, an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MAPS.ME founders. No ads, no tracking, no data collection, no crapware.

Organic Maps 4.4k Jan 2, 2023
A library of common data structures and algorithms written in C.

C Algorithms The C programming language includes a very limited standard library in comparison to other modern programming languages. This is a coll

Simon Howard 2.9k Jan 9, 2023
Several algorithms and data structures implemented in C++ by me (credited to others where necessary).

Algorithms This repository contains my implementations of several algorithms and data structures in C++ (credited to others where necessary). It has i

Petar Veličković 589 Dec 19, 2022
C++ implementations of well-known (and some rare) algorithms, while following good software development practices

ProAlgos: C++ This project is focused on implementing algorithms and data structures in C++, while following good software engineering practices, such

ProAlgos 485 Dec 7, 2022
Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.

Xournal++ is a hand note taking software written in C++ with the target of flexibility, functionality and speed. Stroke recognizer and other parts are based on Xournal Code

Xournalpp 7.9k Jan 7, 2023
Rufus is a utility that helps format and create bootable USB flash drives.

Rufus is a utility that helps format and create bootable USB flash drives.

Pete Batard 21.3k Jan 9, 2023
Pseudofermion functional renormalization group solver for (frustrated) quantum magnets in two and three spatial dimensions.

SpinParser SpinParser ("Spin Pseudofermion Algorithms for Research on Spin Ensembles via Renormalization") is a software platform to perform pseudofer

Finn Lasse Buessen 19 Sep 5, 2022
Fundamentals of Data structures and algorithms in c++

Data Structures & Algorithms About the repository: Contains theories and programming questions related to fundamentals of data structures and algorith

fifu 46 Dec 1, 2022
CXXGraph is a Header-Only C++ Library for Graph Representation and Algorithms

CXXGraph is a small library, header only, that manages the Graph and it's algorithms in C++. In other words a "Comprehensive C++ Graph Library".

ZigRazor 186 Dec 29, 2022
Official ACM CSS PEC repository for resources and all things Open source

Contributing Guidelines Ahoy there! Welcome to the PEC-ACM Open Source Repository. We request you to read the whole guidelines before making any pull

PEC CSS 78 Dec 25, 2022
Header-only C++ library for robotics, control, and path planning algorithms.

Header-only C++ library for robotics, control, and path planning algorithms.

null 360 Dec 13, 2022
c++ library including few algorithms and datastructures

c++ library including few algorithms and datastructures

null 2 Dec 25, 2021
A simple single header C/C++ Library for AABB Collision detection and resolution.

A simple single header C/C++ Library for AABB Collision detection and resolution

Siddharth Roy 8 Dec 31, 2022
My attempt at implementing the fast voxel traversal algorithm by Amanatides and Woo using OpenGL

Attempt at implementing the fast voxel traversal algorithm Works on both Linux and Windows. Recommended software: Linux: Visual Studio Code / Windows:

Niklas Mäckle 2 Sep 24, 2021
Quick sort is a highly efficient sorting algorithm and is based on partitioning of array of data into smaller arrays.

Quick sort is a highly efficient sorting algorithm and is based on partitioning of array of data into smaller arrays. A large array is partitioned into two arrays one of which holds values smaller than the specified value, say pivot, based on which the partition is made and another array holds values greater than the pivot value.

Lakshan Sandanayaka 4 Jan 2, 2023