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]。