WebAssembly 一周一报0819

原创
2020/08/19 20:55
阅读数 110
入群请至文末,扫描二维码,查看文中所有链接,请点击阅读原文
编者按:本周最大的新闻是 Mozilla 的裁员新闻。Mozilla 团队是 WebAssembly 和 Rust 的创造者,是 WASM 与 Rust 社区的主要贡献者之一。不幸的是, Mozilla 本周解雇了250名员工,其中包括开发 Rust 和 WebAssembly 的备受尊敬的工程师。这将如何影响我们的社区呢?令人欣慰的是,这些有才华的前 Mozilla 员工极有可能把 Rust 与 WebAssembly 带到新的地方。

WebAssembly

一窥 Rust 函数即服务和可编程 Web

这篇新文章介绍了如何在 WebAssembly 虚拟机中部署 Rust 函数即服务(FaaS)。这是开源项目 Joey 的预览。高性能、有状态(stateful)、安全和通过 callbacks 可编程。欢迎来到可编程 Web!

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 函数


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 的书

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

教程

  • 使用 Emscripten debug 内存泄露

  • .NET 开发者:使用 SQLite 与 WebAssembly

  • 视频: 为什么你应该在下一个前端项目考虑 WebAssembly

Rusty 新闻

Rust 写的跨平台应用

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 搭建的实时图表工具

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

  • 如何从头开始构建 Rust Web API

  • 如何只用 Rust 写一个网站

Serverless

The state of serverless art

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

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

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

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

入群请加


本文分享自微信公众号 - WebAssembly 中文社区(webassemblywasm)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部