使用 wash dev 启动 WebAssembly 开发循环

文摘   2024-12-05 09:58   中国香港  

作者:Eric Gregory

随着 wasmCloud 1.3 的推出,我们对 wash dev 子命令进行了重大的改进,为 WebAssembly 组件开发者提供了跨所有支持语言的热重载开发循环,并利用即插即用的能力使应用开发更加顺畅。

在这篇博客中,我们将解释如何在几分钟内开始使用 wash dev,并深入探讨一些强大的选项,以便自定义你的开发循环。

如何使用 wash dev

使用 wash dev 非常简单。只需导航到你的项目目录(或使用 wash new component 创建一个新目录)并运行以下命令:

wash dev

在终端中,wash 将会:

  • 启动一个 wasmCloud 环境,包括:
    • 一个 wasmCloud 主机[1]
    • wasmCloud 应用部署管理器[2]
    • NATS[3]
  • 将你的项目构建为一个组件
  • 使用合适的能力(capability)提供者满足常见的能力需求(如 HTTP 或键值存储)
  • 生成应用清单
  • 部署应用
  • 监控项目代码的变化

当你对代码进行修改时,wash dev 过程将自动重建组件并更新已部署的应用。

在很多方面,这就是你所期望的标准热重载体验。但值得一提的是 wash dev 如何处理能力[4],因为这是组件独特能力的体现。

使用能力的开发

在 wasmCloud 应用中,能力包括接口[5]提供者[6]。接口是定义实体关系的契约,而提供者根据契约提供功能。当使用如 wasi:keyvalue 的通用接口时,开发者无需考虑如何实现键值功能——提供者可以在运行时被分配(并替换)。

那么,开发者工具如何在你的开发循环中提供相同的功能呢?

组件在其二进制文件中编码了接口导入(需求)和导出(它们向其他实体暴露的功能)。这意味着 wash dev 这样的工具可以观察导入的接口。如果是像 wasi:keyvalue 这样的知名标准接口,wash dev 可以自动用已知的提供者来满足该需求。

开放标准和具有可读依赖关系的组件使工具能够自动推理和满足这些依赖关系。这些特性使组件在平台工程中极具吸引力,同时在构建开发者工具时也非常强大。

简单但灵活

对于大多数项目,你只需运行 wash dev 开始工作。但对于需要更精确调整的用户,还有很多灵活性可供利用。

你可以查看 CLI 参考[7]中的完整命令行标志,但这里有一些值得强调的参数:

  • --manifest-output-dir — 将生成的 WADM 清单写入指定文件夹(每次生成时)
  • --secrets-topic — 如果提供,则启用与秘密后端的接口,以通过给定主题前缀检索秘密
  • --policy-topic — 如果提供,则在启动操作和组件调用时启用策略检查
  • --host-log-path — 记录 wasmCloud 主机信息的路径
  • --enable-structured-logging — 启用来自 wasmCloud 主机的 JSON 结构化日志
  • --log-level — 控制来自 wasmCloud 主机的 JSON 结构化日志的详细程度(默认值为 info)
  • --wasmcloud-version--nats-version--wadm-version 设置 wasmCloud 环境中各部分的下载版本

加入社区

准备好了解更多关于构建和部署 WebAssembly 组件的内容,或者参与 wasmCloud 项目吗?欢迎参加 wasmCloud 社区会议[8],或在 wasmCloud Slack[9] 上与我们聊天!

参考资料
[1]

wasmCloud 主机: https://wasmcloud.com/docs/concepts/hosts

[2]

wasmCloud 应用部署管理器: https://wasmcloud.com/docs/ecosystem/wadm/

[3]

NATS: https://wasmcloud.com/docs/ecosystem/nats/

[4]

能力: https://wasmcloud.com/docs/concepts/capabilities

[5]

接口: https://wasmcloud.com/docs/concepts/interfaces

[6]

提供者: https://wasmcloud.com/docs/concepts/providers

[7]

CLI 参考: https://wasmcloud.com/docs/cli/wash#wash-dev

[8]

wasmCloud 社区会议: https://wasmcloud.com/community

[9]

wasmCloud Slack: https://slack.wasmcloud.com/


点击【阅读原文】阅读网站原文


CNCF概况(幻灯片)

扫描二维码联系我们!




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。

CNCF
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
 最新文章