WAGI是开始编写WebAssembly微服务和Web应用程序的最简单方法。
警告:这是实验代码。它不被其开发人员视为生产级,它也不是“支持”的软件。
Deislabs现在正在尝试许多WASM技术。这是旨在测试WebAssembly作为基于云的运行时限制的众多项目之一(包括Krustlet)之一。
WAGI允许您作为HTTP处理程序运行WebAssembly Wasi二进制文件。编写一个打印一些标头的“命令行”应用程序,然后将其编译到WASM32-WASI 。将条目添加到modules.toml匹配的URL到WASM模块。就是这样。
您可以使用任何可以编译为WASM32-WASI编程语言。
这是尝试WAGI的最快方法。有关详细信息,请查看文档。
tar -zxf wagi-VERSION-OS.tar.gzwagi --help命令如果您想尝试一些简单的配置,我们建议将此存储库克隆,然后使用examples目录:
$ wagi -c examples/modules.toml
No log_dir specified, using temporary directory /var/folders/hk/l1mlxz1x01x9yl33ll9vh9980000gp/T/.tmpx55XkJ for logs这将在http://localhost:3000上启动WAGI。使用浏览器或像curl这样的工具测试:
$ curl -v http://localhost:3000/hello/world
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /hello/world HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
< content-type: text/html; charset=UTF-8
< content-length: 12
< date: Wed, 14 Oct 2020 22:00:59 GMT
<
hello world
* Connection #0 to host localhost left intact
* Closing connection 0
要添加您自己的模块,请将代码编译到wasm32-wasi格式中,然后将它们添加到modules.toml文件中。查看我们的YO-WASM项目,以快速地使用各种语言构建WASM模块。
WAGI是用于WebAssembly的CGI的实现。这意味着编写WAGI模块就像将正确格式的内容发送到标准输出一样容易。如果您想了解详细信息,请阅读通用网关接口1.1规范。
查看WAGI示例存储库中的各种语言示例。
对于“生产等级”(对预发行项目意味着什么)模块,请查看Wagi Fileserver:用谷物写的文件服务器,编译给WASM,并准备在Wagi运行。
想聊天吗?我们在Kubernetes Slack的#Krustlet频道中闲逛。
瓦吉(Wagi)是实验性的,我们欢迎为改进项目做出贡献。实际上,我们很高兴您甚至阅读了文档的这部分!
用于错误修复:
用于重构和测试:
用于功能:
由于这是一个实验存储库,因此我们的回答可能有点慢。
该项目采用了Microsoft开源的行为代码。
有关更多信息,请参见《行为守则常见问题守则》或与其他问题或评论联系[email protected]。