24 个版本 (稳定版)
1.3.0 | 2024 年 6 月 25 日 |
---|---|
1.2.1 | 2024 年 5 月 29 日 |
1.1.0 | 2024 年 3 月 25 日 |
0.2.2 | 2023 年 12 月 6 日 |
0.2.1 | 2023 年 11 月 30 日 |
#242 in 命令行工具
每月 85 次下载
115KB
1.5K SLoC
wasmo
一个 MAIF 开源项目
Wasmo CLI 将 WASM 带到您的架构中
Wasmo CLI 可以与 Docker Wasmo 服务器镜像 的功能结合使用,以本地和远程构建 WASM 二进制文件。
安装
可以使用以下 Cargo 命令安装和编译此项目
$ cargo install wasmo
or
$ brew tap maif/wasmo
$ brew install wasmo
此外,还有在 CI 上构建的 预编译工件 可供下载。
可以使用以下命令确认安装
$ wasmo --version
可以使用以下命令探索子命令
$ wasmo help
核心命令
wasmo
CLI 内部包含多个子命令,用于处理 wasm 模块
工具 | 参数 | 描述 |
---|---|---|
wasmo config set |
path | server | clientId | clientSecret | 使用要存储配置文件的路径和构建期间要达到的服务器全局配置 CLI。这些参数是可选的,可以在运行构建命令时传递。 |
wasmo config get |
从配置的路径文件或从 $HOME/.wasmo |
|
wasmo config reset |
清除配置并重置为默认设置。默认文件路径配置将是 $HOME/.wasmo |
|
wasmo init |
language | product | product_template | template | name | path | 将 WASM 插件初始化到指定路径。您可以选择许多模板之一,包括javascript/typescript (js/ts),Open Policy Agent (opa),Rust 或 Golang (go)。 |
wasmo build |
path | host | server | clientId | clientSecret | 通过将内容发送到远程或本地 Wasmo 服务器来构建插件。一旦构建完成,WASM 二进制文件将下载并保存在插件文件夹中。 |
快速入门
wasmo init --name=my-first-plugin --template=js
wasmo build --host=OneShotDocker --path=my-first-plugin
然后打开您的 my-first-plugin
文件夹的内容。您应该会找到名为 my-first-plugin-1.0.0.wasm
的生成WASM二进制文件。
指定语言、产品和产品模板以创建插件
在新版本中,您应通过指定要使用的语言、目标产品和模板来创建插件。
wasmo init --name=my-first-plugin --language=js --product=otoroshi --product_template=ACCESS_CONTROL
产品模板参数接受多个值
- REQUEST_TRANSFORMER:使用wasm插件转换请求内容
- RESPONSE_TRANSFORMER:使用wasm插件转换响应内容
- ACCESS_CONTROL:将路由访问委托给wasm插件
- BACKEND:此插件可以用作后端使用wasm插件
- ROUTE_MATCHER:此插件可以用作路由匹配器使用wasm插件
- SINK:使用wasm插件处理未匹配的请求
- PRE_ROUTE:此插件可以用作在预路由阶段使用wasm插件
您还可以创建一个Izanami插件
wasmo init --name=my-first-plugin --language=js --product=izanami
目前,Izanami没有提供任何模板。
如果您想从头开始,不针对任何产品
wasmo init --name=my-first-plugin --language=js
或选择模板
现在,您可以选择通过在创建命令中添加 --template=[template-name]
来从模板启动一个新插件。
如果您不传递模板,Wasmo将列出可用的模板。它们按产品分类
- 空模板:
js
,ts
,opa
,go
和rust
- Otoroshi模板:
otoroshi_go
,otoroshi_rust
,otoroshi_opa
,otoroshi_ts
,otoroshi_js
- Izanami模板:
izanami_js
,izanami_go
,izanami_rust
,izanami_opa
,izanami_ts
wasmo init --name=my-first-plugin --template=[template-name] --path=[output-directory]
使用这些模板中的任何一个运行此命令将在指定的输出目录(或当前目录,如果省略)内创建一个名为 my-first-plugin
的目录。在该目录内,它将生成具有预填充插件名称的元数据文件的初始项目结构。
创建生产WASM二进制文件
wasmo build
开始构建您的插件WASM二进制文件的过程。在插件目录中将是您的WASM二进制文件和源代码。
您有两种方式来构建您的插件
- 本地使用Docker
- 通过部署 Wasmo服务器 远程
假设我们想在本地构建我们的 my-first-plugin
。输入 wasmo build --host=OneShotDocker --path=my-first-plugin
开始构建。
让我们解释这三个参数
path
参数明确用于表示要构建的插件host
指示使用的Wasmo服务器类型。实用的方法是使用Docker
或OneShotDocker
,因为它可以防止通过在你的本地Docker中部署一个新的Wasmo容器来安装Wasmo服务器。最后一个可能值是Remote
,并可以用来通过URI指定远程Wasmo服务器。
配置您的配置文件
wasmo config get
wasmo config reset
wasmo config set <key>=<value>
注意:此命令不了解工作区。
描述
wasmo从命令行、环境变量、.wasmo
文件以及在某些情况下直接从构建命令中获取其配置。
可以使用 wasmo config
命令来更新和编辑用户和全局 wasmo 文件的 内容。
子命令
set
wasmo config set <key>=<value>
将配置键设置为其提供的值。
如果省略了值,则将其设置为空字符串。
可用的键有
path
:配置 wasmo 配置将存储的路径server
:构建您的插件的 Wasmo 服务器(期望为 URL 格式值)clientId
:Basic 和 Otoroshi Auth 中使用的客户端 IDclientSecret
:Basic 和 Otoroshi Auth 中使用的客户端密钥
您还可以手动编辑配置文件。在这种情况下,以下值是
path
= WASMO_PATHserver
= WASMO_SERVER
get
wasmo config get
显示所有配置设置。
reset
wasmo config get
使用默认设置重置配置文件。自定义用户 .wasmo
文件将不会被删除。
许可协议
本项目采用 Apache 2.0 许可协议,附加 LLVM 异常。
贡献
除非您明确说明,否则您提交给本项目以供包含在内的任何贡献,根据 Apache-2.0 许可协议定义,应按照上述方式许可,不附加任何额外条款或条件。
依赖项
~14-27MB
~381K SLoC