WasmEdge 0.12.1 发布:新的 plugin 系统、用于 AI 的 Wasm API、高级 socket networking
WasmEdge 0.12.0 和 0.12.1 已经发布。这两个版本带来了大量新的特性、优化和错误修复,进一步提高了 WasmEdge 的性能、安全性和通用性。
主要特性:
- 新的 plugin 系统使社区可以轻松地向 WasmEdge 增加功能
- 通过 plugin 的新 Wasm API 用于 AI、可观测性和网络
- 高级 socket 网络
- 改进了 host SDK ,使 WasmEdge 能够实现更好地被嵌入
- 性能和兼容性的提升
新的 plugin 系统
WasmEdge 0.12.0 引入了 WasmEdge plugin C API。WasmEdge plugin C API 为社区提供了一种简单的方式,将 host 函数添加、管理和打包到运行时中。现在,所有 host 函数,包括 WASI 本身,都是 WasmEdge 中的 plugin 。这意味着,你甚至可以替换一个新的 WASI 实现(例如用于实时操作系统)。
现在,你可以用 C、C++ 和 Rust 编写 plugin !现在我们已经有 C++ 实现的 Tensorflow Lite plugin ,C++ 实现的 PyTorch plugin ,C++ 实现的 OpenVINO plugin ,C++ 实现的 eBPF plugin ,Rust 实现的 Rustls plugin 。
这些 plugin 将与之后的 component model 兼容,持续有效。
通过 plugin 实现了用于 AI、可观测性和网络的新 Wasm API
通过新的 WasmEdge plugin,你可以用新的 Wasm API 构建用于 AI、可观测性和网络的 Wasm 应用程序。
- WasmEdge 的 Tensorflow Lite plugin 使得 Tensorflow Lite 模型的轻量级(大小仅为 Linux 容器的1/10)且速度快(本机 GPU)AI 推理应用程序成为可能。请参见这里的文档。
- WasmEdge 的 PyTorch plugin ,让 PyTorch 模型的轻量级(大小仅为 Linux 容器的1/10)且速度快(本机 GPU)AI 推理应用程序成为可能。见这里的文档。
- WasmEdge 的 eBPF plugin 使得开发者可以在 Kubernetes 环境中创建安全和容器化的 eBPF 工具和控制器。请参见这里的文档。
- WasmEdge 的 Rustls plugin 便于在 WasmEdge 中创建和执行 HTTP 服务,实现与现有 Web 生态的无缝集成。按照教程在Rust 中创建 HTTP 服务。
这些 plugin 以及对 zlib、OpenCV、tesseract 和 FFMPEG 等其他库的支持,为开发者提供了一个全面的工具集,用于构建复杂的 WasmEdge 应用程序,包括涉及 AI 和多媒体处理的应用程序,例如在 WasmEdge 运行 Mediapipe。
高级 socket networking
WasmEdge socket API 在 0.12.1 版本中进行了重构,以兼容更受限的 WASI socket 提案。现在你可以在 WasmEdge 中运行 .net
程序了。WasmEdge socket 已经成为 WASI socket 的超集。
WasmEdge 网络 socket 在 0.12.1 版本中加入了新特性,如 DNS、网络设备绑定和 TLS。你可以创建需要高效 non-blocking 网络 socket 的复杂微服务。
以下是一些可以用 WasmEdge socket 实现的复杂网络应用示例。
- 使用 Rust 编写的数据驱动微服务
- WasmEdge 数据库客户端示例
- Rust Hyper 示例
WasmEdge 已经是最小、最高效的 Wasm 运行时之一。它能嵌入到 libsql(在服务器上使用 SQLite!)用于执行用户定义的函数,执行复杂数字任务,如 HTTPS Web 服务和 AI 推理 SQL 语句!
通过改进的 host SDK 实现更好的嵌入
WasmEdge C++ 和 Rust SDK 现在允许 host 应用程序异步嵌入 Wasm 函数。这对于许多应用程序至关重要,因为嵌入的 Wasm 函数根本不允许阻止 host 应用程序的执行。
异步 host SDK 比较复杂,还有很多工作要做。我们将继续与终端用户和合作伙伴社区共同努力改进。敬请期待!预览地址:https://github.com/L-jasmine/WasmEdge/tree/feat/async
性能和兼容性提升
WasmEdge 0.12.0 和 0.12.1 包括大量的错误修复和性能改进。值得注意的是,WasmEdge 0.12.1 引入了对 WebAssembly System Interface (WASI) 的提升,使 Wasm 应用程序能够以只读权限访问文件和文件夹。 [Image: Image.jpg]
未来可期
WasmEdge 团队致力于不断推陈出新,同时,为之后的版本制定了令人期待的路线图。一些即将推出的特性包括:
- 在我们的 Docker 和 k8s 集成中支持 plugin
- 为 Kotlin 和 Dart 等语言提供 Wasm GC 支持
- WASI 线程
- 协程(coroutines)的堆栈切换
- 组件模型(Component model )
- 支持开源 LLM 的推理
- 更好的 JS 和 Python 支持 AI
有关 WasmEdge 0.12.0 和 0.12.1 的更多信息,请在 GitHub 上查看 WasmEdge 源代码。我们非常重视你的反馈意见,同时真诚邀请你参与 WasmEdge 社区。加入我们继续推动 WebAssembly 的发展,用 WasmEdge 开启新的可能性。现在就开始使用 WasmEdge 吧!