WebAssembly(简称WASM)

WASM

一.WASM简介

1.1 WASM定义

​ WebAssembly(简称wasm)是一个虚拟指令集体系架构(virtual ISA),整体架构包括核心的ISA定义、二进制编码、程序语义的定义与执行,以及面向不同的嵌入环境(如Web)的应用编程接口(WebAssembly API)。是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和Rust等低级源语言提供一个高效的编译目标。 对于我们爬虫来说,就是用JS调用其他语言做计算,再返回来给JS用.

1.2 WASM特点

快速、高效、可移植——通过利用常见的硬件能力,WebAssembly 代码在不同平台上能够以接近本地速度运行。
可读、可调试——WebAssembly 是一门低阶语言,但是它有确实有一种人类可读的文本格式(其标准即将得到最终版本),这允许通过手工来写代码,看代码以及调试代码。
保持安全——WebAssembly被限制运行在一个安全的沙箱执行环境中。像其他网络代码一样,它遵循浏览器的同源策略和授权策略。
不破坏网络——WebAssembly的设计原则是与其他网络技术和谐共处并保持向后兼容。

1.3 资料参考

https://github.com/Evian-Zhang/wasm-tutorial

二 WASM使用

2.1 工具安装

Ubuntu安装homebrew指令:

rm Homebrew.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh ; bash Homebrew.sh

homebrew安装wabt指令:

brew install wabt

期间可能会遇到很多依赖问题,不好配置的话,直接使用课件中提供的虚拟机.

  • wat2wasm
    .wat的文本格式WASM转换为.wasm的二进制格式WASM
  • wasm2wat
    .wasm的二进制格式WASM转换为.wat的文本格式WASM
  • wasm-objdump
    查看.wasm的二进制格式WASM中的信息。

2.2 基本语法

​ 先看一段代码:

(module
    (func $add (param $left i32) (param $right i32) (result i32)
        local.get $left
        local.get $right
        i32.add
        i32.const 16
        i32.add
    )
    (export "add" (func $add))
)
;; 这是一段注释

使用pycharm创建一个flask项目

from flask import Flask
from flask.templating import render_template

app = Flask(__name__, static_url_path='/static')

@app.route('/')
def hello_world():  # put application's code here
    return render_template('demo.html')


if __name__ == '__main__':
    app.run(debug=True)
-static
	-demo1.wasm
-templates
	-demo.html
-app.py
<!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逐梦舞者

你的打赏是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值