rust语言编写wasm简单例子
rust的wasm使用wasm-pack来build,有很多选项和target用于不同的目的,本文描述一个最简单的示例,不使用webpack和npm,让你可以快速入门和了解。
全局安装 wasm-pack
cargo install wasm-pack --no-default-features # 忽略 OpenSSL
实例代码
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;#[wasm_bindgen]
extern {pub fn alert(s: &str);
}#[wasm_bindgen]
pub fn messagebox(name: &str) {alert(&format!("Hello, {}!", name));
}
编译打包,
wasm-pack build --target web
如果编译失败时,可以安装wasm-bindgen-cli试试
cargo install wasm-bindgen-cli
浏览器中js调用
import('./hello_wasm.js').then(async m => {await m.default()m.messagebox('hello')
})
cargo.toml参考
[package]
name = "wasmdem"
version = "0.1.0"
authors = ["nnsword <coolmoonf@163.com>"]
edition = "2018"[lib]
crate-type = ["cdylib", "rlib"][features]
default = ["console_error_panic_hook"][dependencies]
wasm-bindgen = "0.2.63"# The `console_error_panic_hook` crate provides better debugging of panics by
# logging them with `console.error`. This is great for development, but requires
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying.
console_error_panic_hook = { version = "0.1.6", optional = true }# `wee_alloc` is a tiny allocator for wasm that is only ~1K in code size
# compared to the default allocator's ~10K. It is slower than the default
# allocator, however.
#
# Unfortunately, `wee_alloc` requires nightly Rust when targeting wasm for now.
wee_alloc = { version = "0.4.5", optional = true }[dev-dependencies]
wasm-bindgen-test = "0.3.13"[profile.release]
# Tell `rustc` to optimize for small code size.
opt-level = "s"[package.metadata.wasm-pack.profile.dev]
wasm-opt = false[package.metadata.wasm-pack.profile.release]
wasm-opt = false
rust语言编写wasm简单例子相关推荐
- Bitcoin.com开发人员正创建一个用Rust语言编写的BCH全节点
近日,Bitcoin.com开发人员Gabriel Cardona在推特表示,自己正创建一个用Rust语言编写的BCH全节点,目的是为了改变完整节点的范式,让BCH代码库更加安全.编程人员技术贡献更加 ...
- c语言游戏总出bug,C语言 编写的简单移动游戏出现bug?_编程_游戏设计_C语言_天涯问答_天涯社区...
C语言 编写的简单移动游戏出现bug? 第一次按上下左右没什么问题,之后就会卡住..不知道出了什么错 源码如下:(用vc++的win32 console程序编写) #include #include ...
- Redox随笔(1)-用Rust语言编写的类UNIX操作系统
Redox是一个用Rust语言编写的类UNIX操作系统 , 它的目标是把Rust语言的创新带入到一个现代的微内核和全系列的应用程序. https://www.redox-os.org/zh/docs/ ...
- c语言编写一个简单的答题系统
利用c语言编写一个简单的答题系统. 思路是先设计好题目和答案,再输入自己的答案,利用输入的答案与正确答案对比,从而得出你回答的对错. (一)捆绑题目和答案 我们可以利用结构体对一个题目捆绑上一个答案. ...
- 【Rust日报】2021-10-05 Mimic: 一款用Rust语言编写的命令行Gameboy模拟器
Mimic: 一款用Rust语言编写的命令行Gameboy模拟器 Mimic: A Gameboy emulator written in Rust that can be played on the ...
- C语言编写一个简单的扫雷
C语言编写一个简单的扫雷 # include <stdio.h> # include <stdlib.h> # include <math.h> # include ...
- 2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目.k8s安装xiu,drone文件如何写? 答案2022-07-25: 云原生环境不可能完全一样,只能做参考. 我采用的是dron ...
- Redox随笔(2)-用Rust语言编写的类UNIX操作系统
与其他操作系统相比,Redox如何 我们与其他操作系统有很多共同之处. 由于 Redox syscall接口是Unix-y.例如,我们有open, pipe, pipe2, lseek, read, ...
- 用 C 语言编写一个简单的垃圾回收器
人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法.我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难 ...
最新文章
- 51nod 1092 回文字符串
- 雷锋网独家解读:阿里云原生应用的布局与策略
- 三年级人教版下学期计算机教案,人教版三年级下册信息技术教案
- ant4 多个form 验证_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...
- CSDN、博客园等6大技术博客平台的写作体验测评 1
- java线程池_Java 并发编程 线程池源码实战
- matplotlib之subplot和动态作图(笔记六)
- 辞职在家全职炒股需要什么条件?
- 增长是一切企业问题解决的入口
- Flutter之GridView简析
- Python入门教程!手把手教会你爬取网页数据
- 苹果手机键盘html代码大全,iPhone拨号键盘中的*和#有什么作用 iPhone特殊代码分享...
- boot版本是什么 cent os_CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
- Linux(CentOS7.x)学习笔记(三)磁盘及文件系统 1.LVM(Logical Volume Manager)逻辑滚动条管理员
- 平面四连杆运动方程分析with matlab
- 老程序员都去哪儿了?国内的大龄程序员都去哪了
- 《分析服务从入门到精通读书笔记》第一章、数据分析基础(1)
- C#实战项目~智能图书管理系统
- UI 设计师的盛宴:Web UI 设计资源大系
- c语言两个小数加减乘除,加减乘除英语 c语言计算两个数的加减乘除?