Line在服务端 WASM的分享、用Rust和wasm实现 AI as a service-WebAssembly 周报0923

WASM中文社区

WebAssembly 周报 #19

入群请至文末

编者按: WebAssembly 继续蓬勃成长,有了更多语言支持、更多工具以及更多的应用案例。

WebAssembly Today

用 Node.js写的高性能且安全的人工智能即服务( AI as a Service) 👩

image

对于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 的第一个版本。
  • 停止了默认包含 mallocfree。如果您需要从 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) 👍

image

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 视频转码器 🌎

image
还记得我们过去写的视频转码器项目吗?该项目最近更名为 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 的门槛。本文提出了一些建议。

  1. 安装体验不错——还能提升吗?
  2. 文档还可以——还能更好吗?更容易被找到?例如,优秀的 Rust cookbook(教程)是否广为人知?它是否能够更新错误处理的最新建议 ?翻译成更多的语言?
  3. 教程和学习材料是好的——它们可以更好吗?是否有更多针对某一特定领域的视频教程或教程,比如嵌入式编程( embedded programming) ?
  4. 编译器报错还行——可以更好吗,就像最近的 PR 显示的那样?
  5. 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: 我已经不是宝宝啦 🦄

这篇文章内容丰富,我们将从这篇文章中对无服务器有一个全面的了解,它包含:

  • 无服务器的概念,
  • 如何对无服务器分类,
  • 无服务器相对于虚拟机的优势,
  • 无服务器容器和无服务器函数的区别,
  • 如何扩展无服务器函数。

image

阅读 1.6k

Wasm
随着WASM 在开发者社区中越来越流行,WASM 也正在从客户端迁移到服务端,成为服务端技术的新锐。
164 声望
140 粉丝
0 条评论
你知道吗?

164 声望
140 粉丝
文章目录
宣传栏