WAVM

WebAssembly Virtual Machine

  • 所有者: WAVM/WAVM
  • 平台:
  • 許可證: BSD 3-Clause "New" or "Revised" License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

BSD license
GitHub repo
Discord
Travis Build Status
Azure Build Status

WAVM

Getting Started, Building WAVM from Source, Exploring the WAVM source

WAVM is a WebAssembly virtual machine, designed for use in non-web applications.

Fast

WAVM uses LLVM to compile WebAssembly code to machine code with close to
native performance. It can even beat native performance in some cases, thanks to the ability to
generate machine code tuned for the exact CPU that is running the code.

WAVM also leverages virtual memory and signal handlers to execute WebAssembly's bounds-checked
memory accesses at the same cost as a native, unchecked memory access.

Safe

WAVM prevents WebAssembly code from accessing state outside of WebAssembly virtual machine*, or
calling native code that you do not explicitly link with the WebAssembly module.

* WAVM is vulnerable to some side-channel attacks, such as Spectre variant 2. WAVM may
add further mitigations for specific side-channel attacks, but it's impractical to guard against
all such attacks. You should use another form of isolation, such as OS processes, to protect
sensitive data from untrusted WebAssembly code.

WebAssembly 1.0+

WAVM fully supports WebAssembly 1.0, plus many proposed extensions to it:

Portable

WAVM is written in portable C/C++, with a small amount of architecture-specific assembly and LLVM
IR generation code.

WAVM is tested on and fully supports X86-64 Windows, MacOS, and Linux. It is designed to run on any
POSIX-compatible system, but is not routinely tested on other systems.

Support for AArch64 is a work-in-progress.
WAVM mostly works on AArch64 Linux, but with some known bugs with handling WebAssembly stack
overflow and partially out-of-bounds stores.

WAVM's runtime requires a 64-bit virtual address space, and so is not portable to 32-bit hosts.
However, WAVM's assembler and disassembler work on 32-bit hosts.

Portability Matrix

主要指標

概覽
名稱與所有者WAVM/WAVM
主編程語言C++
編程語言C++ (語言數: 7)
平台
許可證BSD 3-Clause "New" or "Revised" License
所有者活动
創建於2015-08-21 11:14:30
推送於2024-02-14 18:05:44
最后一次提交2022-05-14 08:51:49
發布數110
最新版本名稱nightly/2022-05-14 (發布於 )
第一版名稱nightly-2019-08-28 (發布於 )
用户参与
星數2.7k
關注者數74
派生數232
提交數2.4k
已啟用問題?
問題數233
打開的問題數90
拉請求數130
打開的拉請求數5
關閉的拉請求數17
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?