编者按:本周最大的新闻是 Mozilla 的裁员新闻。Mozilla 团队是 WebAssembly 和 Rust 的创造者,是 WASM 与 Rust 社区的主要贡献者之一。不幸的是, Mozilla 本周解雇了250名员工,其中包括开发 Rust 和 WebAssembly 的备受尊敬的工程师。这将如何影响我们的社区呢?令人欣慰的是,这些有才华的前 Mozilla 员工极有可能把 Rust 与 WebAssembly 带到新的地方。

WebAssembly

Mozilla 裁员极其对 Rust 和 WebAssembly 社区的影响

Mozilla 宣布裁员250人(约占员工总数的四分之一) ,并重新聚焦在开发技术和产品上。因为 Mozilla 是 Rust 和 WebAssembly 的发明者,所以裁员的消息引起了 Rust 与 WebAssembly 社区的热烈讨论。我们注意到,一些优秀的 Rust 和 WebAssembly 技术专家被解雇了。特别是,下面几个团队受到了影响:

  • Servo 浏览器引擎团队,正是这个项目孕育了 Rust 语言。
  • WebAssembly 团队,包括 Cranelift 和 WASI 开发者。
  • MDN 文档团队。
  • 火狐开发者工具团队。

从积极的方面来看,Mozilla 确实表示,这次重组的部分目标是重新关注新的技术,比如服务器端的 WebAssembly。

Mozilla 的 250位杰出的技术专家很快就能找到新的工作,这一点毫无疑问。我们希望他们的新工作仍然允许他们能够贡献 Rust 和WebAssembly 。祝他们好运!Mozilla 救生艇网站( Mozilla lifeboat web site)对于每个受此影响的人来说都是一个很好的资源。

进一步的信息

  • 开发者Matthew MacDonald 写了一篇文章,介绍了 Mozilla 对现代软件技术的贡献以及最近削减开支的影响。Rust 和 WebAssembly 是 Mozilla 传奇技术皇冠上的明珠。我们有充分的理由相信,这两个社区将继续蓬勃发展。
  • 裁员之后,Mozilla 宣布 已经与谷歌签订了一个协议,Mozilla 在未来5年的每一年都将从谷歌得到 4 亿美金。 这使得裁员的举动更加令人费解。在裁员之前,Mozilla 每年花费大约3亿美元。所以肯定钱是够花的。

浏览器之外的 WebAssembly

WebAssembly 再次在浏览器之外发力!开发者 Alexandru Ene 写了一系列WebAssembly 在浏览器之外的 host 和前端 UI 应用教程。

他列举了一些能在浏览器之外的 WebAssembly 中受益的用例场景:

  • 需要用户级定制的视频游戏或类似应用脚本语言。
  • 以最小的开销运行一些代码,比如 Fastly/Cloudflare 处理边缘计算的场景。
  • 在物联网设备上安全地运行一些易于更新的代码,并且运行时开销最小。
  • 在无法执行 JIT 的环境中执行极其快速的程序。

你怎么认为呢?

Stateful WebAssembly 函数

image
WebAssembly 定义一个虚拟的 “CPU”, 但这不是长久的存储 (“硬盘”)。 因此 WebAssembly 函数和程序本质上是 transactional 的,是无状态的。但这种情况一去不复返了! Second State WebAssembly 虚拟机 提供了一个类 WASI 的扩展来访问外部的数据库和 object stores。如果有兴趣的话,可以体验这个demo

用最小的 WebAssembly 虚拟DOM 建立 C++ SPA

asm-dom 项目能够让你在 C++ 中编写整个 SPA (单页应用程序) ,并使用 Emscripten 将其编译为 WebAssembly (或是 asm.js 作为 fallback)。这将产生以本地速度执行的 web 应用程序,并且利用了通用硬件的优势!

asm-dom 还支持服务器端渲染。你可以用 C++ 编写一个服务器端的应用程序,然后用 WebAssembly 在 Node.js 运行这个程序。

一本新的关于 WebAssembly 的书

image

WebAssembly in Action 介绍了 WebAssembly 堆栈并在书中展示了如何一步步编写和运行基于浏览器的应用程序。本文作者,也是开发者 Gerard Gallant 从基本概念开始,然后讨论了包含模块系统、 HTML 和 CSS、 JavaScript Promises 和 WebAssembly JavaScript API 在内的实用主题。

教程

Rusty 新闻

Rust 写的跨平台应用

image

Pro 应用程序的开发者 AstroPad 正在从 Objective-C 迁移到 Rust,这样他的产品就可以在 Mac、 iPad 和现在的 Windows 上跨平台工作。

从 Hello World 分析不同语言

这是一篇很赞的关于语言设计的文章。无论是什么编程语言,设计者必须在易用性和控制性之间取得平衡。在 Rust 的例子中,编译器工具链将看似简单的 hello world 示例转换成了对初学者来说很难理解的复杂的 Rust 语句集。其他语言也是如此。本文深入技术,讨论了后台的机制,以及如何为初学者和专家创建更好的编程语言!

Clap: 用小悬赏奖励达成快速开发

Clap 团队宣布了一个赏金计划。任何为 Clap 提出 PR 的人将获得 5美金或10美金作为奖励。Clap 是一个功能全面、速度快的命令行参数解析器。

probe-run, 运行嵌入式 Rust 应用,达到了与运行本地 apps 一样的体验

ferrous 系统团队发布了用于嵌入式开发的自定义 Cargo runner probe-run。有了它,你可以轻松运行嵌入式Rust程序。

特性

  • 作为 Cargo runner,集成到 cargo run里面。
  • 通过 RTT 显示设备的程序输出流。
  • 退出 firmware 并在断点上打印堆栈回溯。

用 Rust 与 iced 搭建的实时图表工具

image

CryptoWatch 是个用Rust、 iced、glow、wgpu、lyon和 tokio写的实时图表平台,即实时 K 线图。

按照开发团队的测试,CryptoWatch 在一台典型的服务器上运行的 CPU 占用率约为8%-10% ,而在同一台机器上,大多数同类型 web 应用的 CPU 占用率都超过了50% 。

Kosmonaut: 从头用Rust写 Web 浏览器

Kosmonaut 是一个网页浏览器引擎。它使用 Rust 来构建,通过 gl-rs 使用 OpenGL 绑定,使用 Glutin 来进行进行窗口管理,使用 OpenGL 创建上下文,Servo的 html5ever 和 cssparser 来进行 HTML 和 CSS 解析,以及其它各种辅助库。然而,Mozilla Servo 团队最近的动向可能会使这个项目处于危险之中。

Blog

Serverless

The state of serverless art

伯克利大学的 Joe Hellerstein 在本文中介绍了 Cloudburst,一个用于无服务计算的有状态框架。

正如我们之前讨论的,WebAssembly 虚拟机也支持有状态的函数(stateful functions)。

Micronaut 2.0 提升工具配套,增强对无服务和GravvIVM的支持

OCI 最近正式发布了 Micronaut 2.0,一个全栈的基于 JVM 框架的主要发行版,该框架使用 Java、 Groovy 和 Kotlin 等语言,帮助创建基于微服务、云原生、无服务的应用程序。

入群请加
image


WASM中文社区
169 声望162 粉丝