如果 WASM 支持的语言都有自己的标准库,为什么还要使用 WASI?

问题描述 投票:0回答:1

我可能对 WASM 有一个根本性的误解,尝试用 google 搜索并阅读一些文档,但我还不清楚。

据我了解,WASI 是一种与语言无关的 API,具有支持 WASM 编译的语言标准库中存在的许多功能(具有文件系统访问功能、手动内存分配等)。

但是,在 WASI 之前,针对 WASM 的语言已经可以充分利用其标准库功能。这是正确的吗?

我担心情况并非如此,如果我的语言也不支持 WASI,我在使用 WASM 时会遇到障碍和限制。

我正在开发一个网络浏览器应用程序。在我的研究中,我发现您需要一个运行时(如 Wasmer)来原生运行 WASM 字节码,所以我在这里没问题。但是,在这方面没有发现 WASI 的任何内容。

webassembly wasi
1个回答
0
投票

为了实现许多标准库函数(例如文件系统),语言需要针对某种系统API。 WASI 是一组标准 API,可以由语言运行时使用,也可以直接由用户代码使用。

WASI API 有点类似于操作系统中的系统调用层。 如果没有 WASI,您将需要设计自己的系统调用层,然后以某种方式在您关心的所有运行时中实现它。 这在技术上可能是可行的,但与使用 WASI 等标准相比,它有很多缺点。

© www.soinside.com 2019 - 2024. All rights reserved.