wasip1

为MoonBit语言提供WASI Preview 1接口实现

安装使用

复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:

帮我安装这个 AI Skill:wasip1。
它的用途是:为MoonBit语言提供WASI Preview 1接口实现
完整的 Skill 内容见:https://321skill.com/skills/wasip1/raw/index.md
请读取该页面内容,如果是 SKILL.md 格式直接安装,如果是 README 提炼核心 prompt 后安装。

提示词包含完整的 Skill 内容链接,AI 读取后即可完成安装。你也可以 查看完整内容 确认无误。

使用示例

“帮我在MoonBit项目中引入wasip1依赖,并写一段代码,使用WASI的`random_get`函数生成一些随机字节。”,它会指导你修改`moon.mod`文件添加依赖,并提供一个调用`wasi_random_get`函数的示例代码片段,演示如何填充字节数组。

介绍

这个Skill为MoonBit语言实现了WASI Preview 1标准接口,使得用MoonBit编写的Wasm模块能够在遵循WASI标准的运行时(如Wasmtime)中运行,访问文件系统、网络、环境变量等系统资源。它通过内联Wasm辅助函数处理MoonBit的数据结构(如字符串、字节数组)与WASI调用之间的数据传递,解决了MoonBit程序在Wasm环境中与操作系统交互的难题。

使用方式是将此包作为依赖添加到你的MoonBit项目中,然后在代码中调用其提供的WASI函数(如fd_write, random_get等)。项目提供了详细的测试脚本,开发者可以使用Deno和Wasmtime等工具进行验证。

它主要适合使用MoonBit语言开发WebAssembly应用,并需要其应用在WASI兼容的沙箱环境中运行的开发者。无论是构建服务端Wasm应用、CLI工具,还是需要系统级功能的Wasm模块,都可以通过此Skill获得标准化的系统接口支持。

需要注意的是,此包从0.17.0版本开始进行了完全重写,并更新了ABI布局,移除了数据指针的8字节偏移。务必使用具有更新后ABI布局的MoonBit工具链。如果与旧版工具链或生成的绑定混合使用,程序可能在运行时出现字符串/字节损坏或陷阱。此外,开发者应注意并非所有API都经过了完整测试。

核心特点

这是专为MoonBit语言量身定制的WASI实现,深度集成了MoonBit的ABI特性,并使用内联Wasm辅助函数高效处理MoonBit特有数据结构与WASI之间的转换,而非通用的多语言绑定。

注意事项

由于ABI不兼容,此Skill不能与使用旧版ABI布局的MoonBit工具链或旧版生成的绑定混合使用。

常见问题

使用这个包需要什么前提条件?

需要安装MoonBit工具链(支持新版ABI布局),以及用于测试的wasmtime和deno。

它支持Wasm-GC后端吗?

目前(根据README)仅支持Wasm后端,Wasm-GC后端尚未支持。

给 AI 助手的安装指引

如果你的 AI 编程助手(Claude Code、Cursor、TRAE 等)能看到这个页面,把下面这段发给它即可自动完成安装:

请访问 https://321skill.com/skills/wasip1/raw/index.md 读取 wasip1 的原始 Skill 定义(Markdown 格式),按其中说明在我的环境里完成安装和配置。