WebAssembly 周报 #19
入群请至文末
编者按:WebAssembly 持续蓬勃成长,有了更多语言反对、更多工具以及更多的利用案例。
WebAssembly Today
用 Node.js 写的高性能且平安的人工智能即服务(AI as a Service)????
对于 1200 万 JavaScript 开发者来说,AI as a Service 意味着在 Node.js 中运行 Tensorflow 模型。做到这点的一种办法是用在 Node.js 里运行的 Rust 和 WebAssembly 替换 Python 本机模块。本文将教您如何应用 Rust、WebAssembly 和 Tensorflow 实现作为 web 服务的人脸检测。
Emscripten 2.0.4 公布,反对 Bazel ????
Emscripten 2.0.4 本周公布了。新性能:
- 是反对 Bazel 的第一个版本。
- 进行了默认蕴含
malloc
和free
。如果您须要从 JS 拜访它们,则必须应用-s EXPORTED_FUNCTIONS=['_malloc', ..]
手动导出。 - 进行在
-O1
中运行 Binaryen 优化。这使得-O1
构建得略微大一些,然而它们编译得更快,这在“有斗争的”构建(在-O0
和适宜公布构建的更高优化级别二者之间)中更有意义。 - 增加
ERROR_ON_WASM_CHANGES_AFTER_LINK
选项,如果连贯后咱们须要在wasm-emscripten-finalize
或者wasm-opt
中执行任何工作,则增加 ERROR on wasm changes after _ link 选项。这能够验证链接是达到最快速度,也不做 DWARF 重写。
Blazor 速度更快了 (即使没有 AOT) ????
Blazor 最近为.NET 5 公布了一个新的候选版本(RC)。依据性能 benchmark,.NET 5 的 Blazor WebAssembly 比以前快了 2 - 3 倍。性能的晋升在于外围框架库和对.NET IL 解释器的优化。值得一提的是,Blazor 在没有应用 AOT 优化的状况下实现了这样的性能。
Python WebAssembly Playground ????
应用 Python Playground 在浏览器中运行 Python 代码。你的 Python 代码将被编译成 WebAssembly 并在浏览器中运行。这个在线 IDE 还反对 JavaScript 和 Go。
WebAssembly 赋能的基于浏览器的 FFmpeg 视频转码器 ????
还记得咱们过来写的视频转码器我的项目吗?该我的项目最近更名为 modfy.video。它也达到了一个稳固的版本。它的新个性和改良包含以下内容。
- 大幅升高数据使用量(最高 25 MB)
- 反对任何格局的视频
- 用 CLUI 实现模组化设计
- 增加文档和 API reference
Decaton 减少来自 Line 团队的实验性的 WebAssembly 反对 ????
Line 团队最近分享了他们在服务端 WebAssembly 的教训。想法是反对用户以任何语言编写的 Decaton 处理器。WebAssembly 反对多种语言,并能使用户代码平安运行。
文章第一局部介绍了如何将 WebAssembly 运行时集成到 Java 应用程序中。第二局部探讨了如何扩大 WASI 的 API 和 Rust 的规范库来减少对 socket 的反对。
作者示意,“就 WebAssembly 在浏览器之外的利用而言,我认为它的前景十分光明。”
当咱们探讨 WebAssembly 的时候咱们在探讨什么?????
开发者 Peter Salomonsen 解释了为什么他想让 WebAssembly 专一于作为一个计算引擎,而不是提供对整个零碎(例如 UI)的拜访权限 —- WebAssembly 的价值定位是平安第一。在服务端应用 WebAssembly,他提出了一个很好的观点:WebAssembly 容许浏览器和服务器之间的代码复用。
用 emscripten 将一个 c + + 游戏引擎移植到 web 上 ????
Alex Dixon 探讨了他如何将一个游戏引擎移植到 web 服务器上,以在浏览器中运行 WebGL 游戏。
Low-Level Academy????????
Low-Level academy 将传授 Rust 和 WebAssembly 的零碎编程课程。它从网络编程开始。您将在第一节课里学习如何应用 UDP 和 TCP 互联网协议。
Web Assembly 所有的所有 ????
谷歌的 Martina Kraus 在 WebAssembly Live 会议上分享了一个演讲,对于如何优化 WebAssembly 字节码的大小和启动工夫。
WebAssembly in Action ✍️
WebAssembly in Action 当初能够收费看了。点击浏览,学习一下什么是 WebAssembly 以及它如何运行。
Rust 新闻
Rust 2021: 升高门槛 ????
为了让 Rust 成长,并减少在支流开发者对 Rust 的应用,咱们必须升高学习和应用 Rust 的门槛。本文提出了一些倡议。
- 装置体验不错——还能晋升吗?
- 文档还能够——还能更好吗?更容易被找到?例如,优良的 Rust cookbook(教程)是否广为人知?它是否可能更新错误处理的最新倡议?翻译成更多的语言?
- 教程和学习材料是好的——它们能够更好吗?是否有更多针对某一特定畛域的视频教程或教程,比方嵌入式编程(embedded programming)?
- 编译器报错还行——能够更好吗,就像最近的 PR 显示的那样?
- 5. 编译工夫 (Compile times) 和 IDE 体验曾经改良——还能持续改良吗?咱们是否失去一个疾速的调试后端(fast debug backend),以进一步提高生产力?
有什么理由不选 Rust ????
Go 和 Rust 语言之间的和平正在升温,好消息是 WebAssembly 全都反对!小孩子才做抉择!
Dropbox 将 protobuf codegen 开源 ????
Dropbox 开源了 pb-jelly
,一个为 Rust 开发的 protobuf 代码生成框架。目前 Dropbox 的几个模块都在应用这个软件,包含 Sync Engine 和 Magic Pocket。
Bevy 0.2 公布 ????
Bevy 0.2 公布了。咱们在之前曾经介绍过这个简略的数据驱动游戏引擎。
新个性:
- 异步工作零碎。CPU 占用率十分高。
- 应用 WebAssembly 反对初始 Web 平台。
- 并行查问
- 重写转换零碎
- 反对游戏手柄 / 游戏键盘
- 改善 Bevy ECS 的性能
迷信中的 Rust 和一直变动的要求 ????
从一直变动的需要中比拟 Rust 和 Python,包含可读性、可测试性、反馈和工具链。
Serverless
Serverless: 我曾经不是宝宝啦 ????
这篇文章内容丰盛,咱们将从这篇文章中对无服务器有一个全面的理解,它蕴含:
- 无服务器的概念,
- 如何对无服务器分类,
- 无服务器绝对于虚拟机的劣势,
- 无服务器容器和无服务器函数的区别,
- 如何扩大无服务器函数。