1
加入 WebAssembly 中文群,请至文末

编者按: 本周的 WebAssembly 新闻多多!

WebAssembly

Serverless Rust + WebAssembly

image

本文告诉你如何使用 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 问题和相应解决方案。

请注意,这些文章是在2019年写的。并不是最新的,但许多问题和见解仍然适用。

Lunatic: 一个基于Actor的后端WebAssembly运行时

Lunatic 是一个参考 Erlang 和 Go 而设计的 WASM 运行时,用 Rust 编写。

主要特性:

  • Actors 表示为 WebAssembly 实例。
  • 沙箱和运行时权限是基于每个角色授予和拒绝的。
  • 所有 blocking 代码将自动转换并异步执行。

Lunatic 的设计是可以安全有效地运行任何 WASM 字节码。

使用从MATLAB生成的 WebAssembly 进行手写数字识别

这个项目将用于手写数字识别的经典神经网络算法编译到 WebAssembly 中。我们还看到了一个类似的用于识别手写数字的项目,将算法放到了服务端的 Rust 和WebAssembly 。 点击这里,可以详细了解他的代码

《微软飞行模拟器》编译成 WebAssembly ,以在浏览器里运行

image

游戏《微软飞行模拟器》在这次疫情中大受欢迎。 有了 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 fuzzlibfuzzer-sys, wasm-smith 非常容易使用

视频:破解 Mesh:使用WebAssembly模块扩展Istio

Istio, 一个大受欢迎的Server Mesh产品,支持了 WASM。该视频显示了如何通过构建用于 Istio 的代理 Envoy 的个性化过滤器来扩展 Istio 的功能。这些个性化过滤器可以用任何能编译成 wasm 的语言编写。

教程:

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 物理引擎

image

Rapier 是 nphysics 的继任者,专注于性能。 正如 nphysics, 它分为两个 crate: rapier2d 和 rapier3d,分别对应 2D 和 3D 物理。它一开始就设计为多线程的。 Rapier 需要较少的增量编译,节省了构建时间。 Rapier 的运行速度比 nphysics 快5至8倍。

随着Rust不断成长,RustConf 倡导营造更包容的社区

image

RustConf 2020 回顾。这一天的 Rust 会议吸引了来自全球的 Rust 开发者和社区成员。 讲座的内容从较强的技术性到游戏入门介绍,不一而足,也有儿童可参与的活动。

关键信息很明确—— Rust 已为主流的大规模应用做好了准备。

Serverless

Red Hat 重新定义云原生管理

Red Hat 宣布将为 Kubernetes 提供高级集群管理功能,这是 Red Hat 针对混合云设计的 IT 管理技术产品组合的最新成员。

image


WASM中文社区
169 声望162 粉丝