Wagiは、WebAssemblyマイクロサービスとWebアプリの作成を開始する最も簡単な方法です。
警告:これは実験コードです。開発者によって生産グレードとは見なされていません。また、ソフトウェアを「サポート」していません。
Deislabsは現在、多くのWASMテクノロジーを実験しています。これは、クラウドベースのランタイムとしてWebAssemblyの限界をテストするために設計された多数のプロジェクト(Krustletを含む)の1つです。
Wagiを使用すると、WebAssembly WasiバイナリをHTTPハンドラーとして実行できます。いくつかのヘッダーを印刷する「コマンドライン」アプリケーションを作成し、それをWASM32-WASIにコンパイルします。 modules.tomlにEnterを追加し、URLをWASMモジュールに一致させます。それでおしまい。
WASM32-WASIにコンパイルできるプログラミング言語を使用できます。
これがWagiを試すための最速の方法です。詳細については、ドキュメントをチェックアウトしてください。
tar -zxf wagi-VERSION-OS.tar.gzを解凍しますwagi --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ファイルに追加します。さまざまな言語でWASMモジュールを迅速に構築するためのYO-WASMプロジェクトをチェックしてください。
Wagiは、WebAssembly用のCGIの実装です。つまり、WAGIモジュールの書き込みは、適切にフォーマットされたコンテンツを標準出力に送信するのと同じくらい簡単です。詳細を理解したい場合は、Common Gateway Interface 1.1仕様をお読みください。
さまざまな言語の例については、Wagiの例リポジトリをご覧ください。
「プロダクショングレード」(それがプレリリースプロジェクトを意味するものは何でも)モジュールの場合、Wagi Fileserver:WASMに編集され、Wagiで実行される穀物で書かれたファイルサーバーをチェックアウトします。
チャットしたいですか? Kubernetes Slackの#Krustletチャンネルにたむろします。
Wagiは実験的であり、プロジェクトを改善するための貢献を歓迎します。実際、ドキュメントのこのセクションさえ読んでいることを嬉しく思います!
バグ修正の場合:
リファクタルとテストの場合:
機能について:
これは実験リポジトリであるため、答えるのは少し遅いかもしれません。
このプロジェクトは、Microsoftのオープンソース行動規範を採用しています。
詳細については、FAQのコードを参照するか、追加の質問やコメントについては[email protected]にお問い合わせください。