退出 WebAssembly 中文群,请至文末
编者按:本周的 WebAssembly 新闻多多!
WebAssembly
Serverless Rust + WebAssembly
本文通知你如何应用 Rust + WebAssembly 创立机器学习和数据可视化的 serverless 利用。
embed-wasm
embed-wasm crate 容许开发者用 Rust 写端到端的利用。后端被编译为本地 Web 服务器应用程序,前端被编译为 wasm 并从后端提供给浏览器(因而将前端“嵌入”在后端中)。
Wasmtime 中的 WebAssembly Reference 类型
WebAssembly reference 类型来啦!这篇博客文章解释了 WebAssembly reference 是什么,以及如何启用从非 JavaScript 主机调用 WebAssembly 函数。对于服务端的 WebAssembly 而言,这是十分重要的提高。
Motoko, 一个能间接用在互联网的编程语言
Motoko 由 Difinity 团队设计开发,专门针对 WebAssembly 设计。这篇发表在 Stackoverflow 上的博客文章解释了创造 Motoko 的起因。Motoko 是用于计算机互联网(基于 WebAssembly 的去中心化云计算平台)的最佳语言。
Ring 语言下次降级将专一 WebAssembly
Ring 是一个用于通用目标的编程语言。它反对命令式、步骤式、面向对象、函数式和申明式编程范例。Ring 打算在 9 月公布的 1.13 版本中反对 Qt WebAssembly。Qt WebAssembly 是一个 平台插件,用于创立可一集成到 web 页面中的 Qt 利用。
WebAssembly 问题
本系列文章探讨了 WebAssembly 问题和相应解决方案。
- Part 1: WebAssembly 不是一个堆栈机
- Part 2: 为什么咱们依然须要 Relooper 算法?
- Part 3:Alloca 如何?
- Part 4: Microwasm
请留神,这些文章是在 2019 年写的。并不是最新的,但许多问题和见解依然实用。
Lunatic: 一个基于 Actor 的后端 WebAssembly 运行时
Lunatic 是一个参考 Erlang 和 Go 而设计的 WASM 运行时,用 Rust 编写。
次要个性:
- Actors 示意为 WebAssembly 实例。
- 沙箱和运行时权限是基于每个角色授予和回绝的。
- 所有 blocking 代码将主动转换并异步执行。
Lunatic 的设计是能够平安无效地运行任何 WASM 字节码。
应用从 MATLAB 生成的 WebAssembly 进行手写数字辨认
这个我的项目将用于手写数字辨认的经典神经网络算法编译到 WebAssembly 中。咱们还看到了一个相似的用于辨认手写数字的我的项目,将算法放到了服务端的 Rust 和 WebAssembly。点击这里,能够具体理解他的代码。
《微软航行模拟器》编译成 WebAssembly,以在浏览器里运行
游戏《微软航行模拟器》在这次疫情中大受欢迎。有了 WebAssembly,能够在浏览器中玩这个游戏的复旧模式了!通过微软航行模拟器,你能够玩微软在 1982 年到 1989 年期间开发的前四个航行模拟器游戏。
模拟器是用 C 编写的,而后通过 LLVM 编译器编译为 WebAssembly。
Fastly – 为 Compute@Edge 评估新语言
Fastly 的 Compute@Edge 是由基于 WebAssembly 虚拟机的 Lucet 驱动的。除了最开始的 Rust 之外,Compute@Edge 将反对 AssemblyScript 和 Go。
Wasm-smith, 一个 WebAssembly 测试案例生成器
用 Rust 编写的 WebAssembly 测试用例生成器生成 WebAssembly 测试函数,以帮忙疾速发现 bug。通过 cargo fuzz
和 libfuzzer-sys
,wasm-smith 非常容易应用
视频:破解 Mesh:应用 WebAssembly 模块扩大 Istio
Istio, 一个大受欢迎的 Server Mesh 产品,反对了 WASM。该视频显示了如何通过构建用于 Istio 的代理 Envoy 的个性化过滤器来扩大 Istio 的性能。这些个性化过滤器能够用任何能编译成 wasm 的语言编写。
教程:
- WebAssembly 小试牛刀:上手基本操作。这是浏览器中 WebAssembly 的入门指南,文中列举了 C 或 Rust 代码示例。
- 代码依据标准生成 WebAssembly 6502 模拟器。本教程教您如何在 WebAssembly 中为旧硬件(如 Atari 计算机)创立模拟器。
Rust 新闻
Rust 1.46.0 公布
Rust 1.46.0 公布。有什么重大晋升?当初,您能够在 const fn 中搁置更多内容,从而在编译时,而不是运行时。执行更多计算。这样能够大大提高特定 Rust 利用的性能。
Trunk — 将您的 Rust WASM 利用构建,捆绑并交付到 Web
Trunk 是一个 Rust 写的 CLI 工具。它提供了一个简略的零配置工具,用于构建 Rust WebAssembly 应用程序,捆绑应用程序资产(sass、css、图像和 c)并将其全副发送到 Web。
GlueSQL: 齐全由 Rust 和 WebAssembly 反对编写的 SQL 数据库
GlueSQL 是用 Rust 编写的 SQL 数据库。它提供了一个 SQL 查问解析器 (sqlparser-rs),一个执行层和可选的贮存空间(sled)。GlueSQL 能够在 web 浏览器中运行,因为它反对 WebAssembly。
Rapier: 专一性能的 2D 和 3D 物理引擎
Rapier 是 nphysics 的继任者,专一于性能。正如 nphysics, 它分为两个 crate: rapier2d 和 rapier3d,别离对应 2D 和 3D 物理。它一开始就设计为多线程的。Rapier 须要较少的增量编译,节俭了构建工夫。Rapier 的运行速度比 nphysics 快 5 至 8 倍。
随着 Rust 一直成长,RustConf 提倡营造更容纳的社区
RustConf 2020 回顾。这一天的 Rust 会议吸引了来自寰球的 Rust 开发者和社区成员。讲座的内容从较强的技术性到游戏入门介绍,不一而足,也有儿童可参加的流动。
要害信息很明确—— Rust 已为支流的大规模利用做好了筹备。
Serverless
Red Hat 从新定义云原生治理
Red Hat 发表将为 Kubernetes 提供高级集群治理性能,这是 Red Hat 针对混合云设计的 IT 治理技术产品组合的最新成员。