何もわからんから始めるWebAssembly
WebAssembly自体は、Javascriptで実行できる低レイヤの言語だと。
C++とかRustとかTinyGoとかでコンパイルできると。
サーバからバイナリ落として利用するってものだからTinyGoなのね。
WebAssembly の概要
istio/envoyとのつながりはこの辺がよくまとまっている。
envoyの拡張を書くのに、WebAssemblyが使えるらしい。
これでEnvoyの拡張を動的に行えるようになったと。
xDSってEnvoyが問い合わせるAPIみたいなのを作れて、そこ経由でバイナリを配布するような事ができるそう。
wasm filterを書くには、wasmiを使うのがよいと。
supportしているistioのversion 1.9.xまでか。
この辺をみたら動かす事はできた。が、全体の構造はちょっと見えない。k8s雰囲気で使ってる勢だからな。
GKE Gatewayあたりとなんか関連してる話題あるかなと思ったが、そんなに見当たらんかった。
WASMをブラウザ以外で動かすために、WebAssembly System Interface(WASI)やProxy-Wasmがあるらしいな。wasm filterのその一例と。
というか、ブラウザがWasmの実行環境を提供している(WasmのVMを実装している)という
理解のほうがただしいか。
net/httpをTinyGoでサポートされてないの?
と思ったが、いまはサポートされてるのかな。
wasm filterで、社内の認可サーバが発行するトークンの検証とかしようとするとき
絶対必要になるよな?TinyGoでgRPC Clientかけるのかな。
WASM、ゼロ知識証明に使えたりしないかなと、この辺みてて思った。
RPが検証したい内容を書いてWASMでOPに対して送りつける。
OPでではユーザの情報を送られたロジック通して変換した上でID Tokenとかに入れてRPに返す的な。
OP側でどんなロジック実行されるかわからんから辛いかな。