28 个版本 (2 个稳定版)

1.0.1 2024 年 8 月 22 日
0.3.3 2024 年 8 月 9 日
0.3.2 2024 年 7 月 26 日
0.1.14 2024 年 3 月 29 日
0.1.8 2023 年 10 月 5 日

#387命令行工具

Download history 191/week @ 2024-05-02 148/week @ 2024-05-09 134/week @ 2024-05-16 37/week @ 2024-05-23 138/week @ 2024-05-30 208/week @ 2024-06-06 308/week @ 2024-06-13 491/week @ 2024-06-20 175/week @ 2024-06-27 381/week @ 2024-07-04 516/week @ 2024-07-11 146/week @ 2024-07-18 636/week @ 2024-07-25 111/week @ 2024-08-01 670/week @ 2024-08-08 878/week @ 2024-08-15

每月 2,334 次下载
用于 2 crates

Apache-2.0

39KB
831

莱姆云示例模板

此存储库包含通过 golem new 命令可用的所有 示例

请参阅 莱姆 CLI 页面 上的示例模板部分。

结构

示例按照 客语言 组织到目录中。每个客语言目录包含一个 INSTRUCTIONS 文本文件,该文件本身也是一个模板,并在执行 golem new 命令时打印出来。

客语言的每个子目录都是一个模板,其中目录的名称成为模板的名称。

每个 示例 由任意数量的文件和子目录以及一个 metadata.json 文件组成。

golem new 命令将以下定义的 模板规则 应用到每个文件和目录的名称,以及每个文件的内容。

元数据文件包含所需信息,并允许启用一些额外的项目生成步骤。

元数据 JSON

以下字段是必需的

  • description 是示例的文本描述

以下字段是可选的

  • requiresAdapter 是布尔值,默认为 true。如果为 true,则将相应的 WASI Preview2 到 Preview1 适配器版本复制到生成的项目中(基于客语言)到 adapters 目录。
  • requiresGolemHostWIT 是布尔值,默认为 false。如果为 true,则将 Golem 特定的 WIT 接口复制到 wit/deps
  • requiresWASI 是布尔值,默认为 false。如果为 true,则将与莱姆云兼容的 WASI Preview2 WIT 接口复制到 wit/deps
  • exclude 是一个子路径列表,它作为一个简化的 .gitignore 文件工作。其主要目的是帮助开发循环,在示例上进行工作,在未来它可能被 .gitignore 文件所取代。

模板规则

Golem 示例目前很简单,不使用任何已知的模板语言,以便保持示例 可编译 - 这使得对现有示例进行工作以及添加新示例非常方便,因为您可以立即验证它是否可以编译成 Golem 模板

当调用 golem-new 时,用户指定一个 模板名称。提供的组件名称必须使用 PascalCasesnake_casekebab-case

有一个可选参数用于定义 包名,默认为 golem:component。它必须是 pack:name 格式。

以下占位符将被提供的组件名称替换,应用模板中使用的格式

  • component-name
  • ComponentName
  • component_name
  • pack::name
  • pack:name
  • pack_name
  • pack-name
  • pack/name
  • PackName

测试示例

可以使用测试 cli 应用 来测试示例生成和说明。该应用还接受一个过滤器参数,它将示例名称与正则表达式匹配,例如,要测试 go 示例,请使用

cargo run --bin golem-examples-test-cli -- -f go

或精确匹配示例名称

cargo run --bin golem-examples-test-cli -- -f '^go-default$'

期望特定语言的工具可用。

测试应用将实例化示例,然后执行说明(所有以 开头的行)。

示例生成在 /examples-test 目录中。

依赖项

~4–15MB
~147K SLoC