最新消息:关注人工智能 AI赋能新媒体运营

WebAssembly 执行环境 Wasmer 7.0 推进 Python 生态系统支持,原生扩展模块兼容性提升

科技资讯 admin 浏览

WebAssembly 执行环境 Wasmer 发布 7.0 版,更新重点之一是提升 Python 的可用性。开发团队在其主导的 WASI 扩展 WASIX 中加入完整动态链接支持,目标是让更多依赖原生扩展模块的 Python 包能够在 Wasmer 上运行。新版还推出实验性异步 API,并更新 Cranelift 与 Singlepass 等编译后端能力。

Wasmer 用于在浏览器之外执行 WebAssembly 程序,为了让 WebAssembly 程序能够以更一致的方式访问文件、网络等系统资源,社区推动了 WebAssembly 系统接口 WASI。WASIX 是 Wasmer 团队主导的扩展方向,补充了 WASI 中不足的系统调用能力。

动态链接是 Wasmer 7.0 与 Python 生态系统最直接相关的更新。官方指出,过去 Python 在 Wasmer 上的支持大多仅限于核心解释器,像 numpy 或 pydantic 这类依赖原生扩展模块的包,常因缺乏合适的动态链接机制而受限。Wasmer 7.0 在 WASIX 中引入完整动态链接支持后,运行时即可加载所需模块,从而扩大可运行的 Python 包和原生模块范围。

其他更新包括实验性异步 API。官方表示,这套一级异步函数支持能让 Python 在 Wasmer 上补齐完整的异步能力,并解锁此前难以运行的生态系统包,例如 SQLAlchemy 等。在编译器方面,Wasmer 升级了 Cranelift 并加入 WebAssembly 异常处理支持,同时整合系统标准的 libunwind 堆栈展开函数库,以完善端到端的异常处理流程。Singlepass 则新增了对 RISC-V 和多返回值的支持,填补了此前的空白。

Wasmer 的稳定性与开发体验也进行了优化。官方表示,7.0 版本合并了超过 200 个拉取请求,其中约 80 项针对缺陷或长期限制,并升级了大量依赖包,包括 LLVM 21。在工具方面,首次使用 LLVM 编译器构建模块时新增了编译进度条。此外,针对 Python 或 PHP 等大型包的构建流程,Wasmer 会对超大型函数选择性降低优化强度,以缩短编译时间,例如 Python 的构建时间从约 90 秒降至约 10 秒。