WasmEdge 0.8.2 发布,增加 Networking 支持、Rust SDK、兼容性优化

栏目: 软件资讯 · 发布时间: 4年前

内容简介:WasmEdge 0.8.2 版本发布啦! 更好的跨平台兼容性。在 Mac OS X(Intel 和 M1)、Windows 10 以及配备 ARM 32 位芯片的 IoT 设备上运行 WasmEdge 应用程序。 Networking 支持。可以从 WasmEdge 应用程序发出网络请...

WasmEdge 0.8.2 版本发布啦!

  • 更好的跨平台兼容性。在 Mac OS X(Intel 和 M1)、Windows 10 以及配备 ARM 32 位芯片的 IoT 设备上运行 WasmEdge 应用程序。
  • Networking 支持。可以从 WasmEdge 应用程序发出网络请求并运行 HTTP 服务器。
  • 新的和改进的 API。在 CRust 和 Golang 应用程序中嵌入 WasmEdge 函数。
  • WasmEdge 的 AoT 编译器的通用二进制输出。在云原生平台可以利用 AOT 增进性能。
  • 支持 proxy-wasm 规范,WasmEdge 为服务网格带来了高性能 API 路由。

WasmEdge 0.8.2 发布,增加 Networking 支持、Rust SDK、兼容性优化

跨平台兼容性

借助 manylinux1 发布目标,WasmEdge Runtime ,包括其 AOT 编译器和本机扩展,可以在老旧至 2007 年的 Linux 版本上运行。现在,WasmEdge 也可以在基于ARM 32 位 CPU 老的设备和 SoC 板上运行,它们常常用于物联网应用程序。

除了 Linux,WasmEdge 还支持 Mac OS X,包括基于 Intel 和 M1 的 Mac 以及 Windows。这些设备得到了开发者和边缘应用程序的广泛使用。你可以在自己的笔记本电脑上尝试一下!

之后,团队正致力于在即将发布的 WasmEdge 版本中支持如 seL4 等实时操作系统。

Networking 支持

云原生应用通常需要建立网络连接。但是,标准 WebAssembly 规范不支持 networking。 WASI-socket 规范旨在将基于 socket 的网络支持添加到 WebAssembly 中,但社区仍然就此争论不休。

WasmEdge 团队决定在 WasmEdge 0.8.2 中实现 socket 支持。 WasmEdge 网络 socket 支持以当前的 WASI socket 提案为蓝本,并为开发者提供了一个 Rust crate 来编写具有网络功能的 WebAssembly 应用程序。

WasmEdge 的网络 socket API 支持 TcpStream、 TcpListenerUdpSocket 和 Shutdown。此版本包括用于 WebAssembly 的 HTTP 客户端和服务器端实现的 Rust demo 应用程序。

请注意,目前 WasmEdge socket API 仅适用于 Linux。

更多细节请查看 wasmedge_wasi_socket repohttps://github.com/second-state/wasmedge_wasi_socket

API 提升

WasmEdge 的一个关键应用场景是将其作为 serverless 函数 runtime 嵌入到云原生环境中。这要求开发者通过 API 从主机应用程序启动 WasmEdge。

WasmEdge C API 是从主机应用程序访问 WasmEdge 运行时的接口。它也是 WasmEdge 其他语言 API 的基础,例如 WasmEdge Go API。此版本为 WasmEdge C API 添加了一些功能点。

  • 添加了静态库 libwasmedge_c.a
  • 将 ErrCode 添加到 C 声明中。
  • 增加了 WasmEdge_String 转换为C 字符串的 API。
  • 添加了从 WasmEdge_MemoryInstanceContext 获取数据指针的 API。

此外,WasmEdge 0.8.2 还包含两个 用于 Rust API 的 Rust crate, wasmedge-sys 和 wasmege-rs。 wasmedge-sys crate 是从 WasmEdge C API 生成的低级 API。 wasmedge-rs 是一个惯用的 Rust API,封装了低级 wasmedge-sys ,使其更安全,对开发者更友好。完整的 wasmedge-rs crate 仍在积极开发中。欢迎任何反馈和贡献。

如果你想查看一个 API 的例子,请查看 dapr-wasm repo。它使用 WasmEdge Golang 和 Rust API 在云原生 service mesh 中实现 sidecar 应用程序。

WasmEdge的 AoT 编译器的通用二进制码

WasmEdge 0.8.2 添加了一个新的 AOT 编译器 flag --generic-binary。此标志用于生成通用二进制文件并禁用 CPU 特定优化。

因此,通用二进制文件可能会损失大约 20% 的原始性能,但在整个 CPU 类别中实现了更好的兼容性(例如,生成适用于所有 x86 CPU 的二进制文件)。

--generic-binary 的应用场景包括在 serverless 平台(例如 AWS Lambda腾讯云Vercel 和 Netlify)上运行 WasmEdge。为了将这些平台上的启动时间缩短至毫秒级,我们将 WasmEdge 配置为在部署环境预先(AOT)编译其应用程序。我们无法在 runtime (运行环境)预先确定 CPU 的确切代号和型号。通用二进制码选项平衡了 AOT 的性能和 WebAssembly 应用程序的可移植性。

支持 Proxy-wasm

Proxy-wasm 是一种在 API 代理中嵌入 WebAssembly Runtime 的规范。 它允许 WebAssembly 函数以编程方式发送服务网格网络中的 API 流量。 proxy-wasm 标准由 Envoy、Istio Proxy 和 MOSN 支持。 在 WasmEdge 0.8.2 中,提供了proxy-wasm 的主机实现。 WasmEdge 现在可以用作 Envoy 和 MOSN 的高性能扩展。

要想了解有关 WasmEdge 0.8.2 版本的更多信息,请查看我们的 changelog! WasmEdge 0.8.2 是朝着云原生 WebAssembly 生态迈出的重要一步。加入我们这场大变革!

最后,我们感谢来自社区的贡献 @actly、 @alabulei1、@CaptainVincent、@chenyukang、@hydai、@ibmibmibm @juntao、@kenvifire、@L-jasmine、@MaazKhan711635、 @MileyFu、@nhynes、 @q82419、@robnanarivo、 @yanganto 和 @Yonama。(排名不分先后,按照首字母进行排序)

最后的最后,WasmEdge 参加了今年秋季的 CNCF LFX Mentorship 项目。我们要感谢来自世界各地的 100多名我们项目的开发者,期待他们的贡献。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精益数据分析

精益数据分析

[加] 阿利斯泰尔·克罗尔、[加] 本杰明·尤科维奇 / 韩知白、王鹤达 / 人民邮电出版社 / 2014-12 / 79.00元

本书展示了如何验证自己的设想、找到真正的客户、打造能赚钱的产品,以及提升企业知名度。30多个案例分析,全球100多位知名企业家的真知灼见,为你呈现来之不易、经过实践检验的创业心得和宝贵经验,值得每位创业家和企业家一读。 深入理解精益创业、数据分析基础,和数据驱动的思维模式 如何将六个典型的商业模式应用到各种规模的新企业 找到你的第一关键指标 确定底线,找到出发点 在大......一起来看看 《精益数据分析》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具