Open5
proxy-wasm を Rust で試す
実装したサンプル
環境
$ rustup check
stable-x86_64-apple-darwin - Up to date : 1.55.0 (c8dfcfe04 2021-09-06)
rustup - Up to date : 1.24.3
参考資料
準備
proxy-wasm-rust-sdk をつかって proxy-wasm をビルドするには、--target=wasm32-unknown-unknown
が必要なため、target に追加します。
$ rustup target add wasm32-unknown-unknown
info: downloading component 'rust-std' for 'wasm32-unknown-unknown'
info: installing component 'rust-std' for 'wasm32-unknown-unknown'
13.5 MiB / 13.5 MiB (100 %) 13.4 MiB/s in 1s ETA: 0s
実装とビルド
今回は、proxy-wasm-rust-sdk の examples/http_headers.rs
を、ほとんどそのままコピーしてビルドしました。
$ cargo build -p proxy-wasm-sample --target=wasm32-unknown-unknown --release
Compiling cfg-if v1.0.0
Compiling ahash v0.7.4
Compiling log v0.4.14
Compiling hashbrown v0.11.2
Compiling proxy-wasm v0.1.4
Compiling proxy-wasm-sample v0.1.0 (/Users/path/to/sandbox-rust/proxy-wasm-sample)
Finished release [optimized] target(s) in 4.47s
proxy-wasm-rust-sdk としては、
-
#[no_mangle]
な_start
関数が始点となる -
RootContext
と、そこから生成されるHttpContext
の Trait を実装する -
RootContext
,HttpContext
に用意されているメソッドを、オーバーライドして任意のタイミングでの hook 処理をおこなう
というような事が、ぼんやりとわかりました。
ビルドした proxy-wasm を test 実行する
proxy-wasm/test-framework という、proxy-wasm をテスト実行できるツールがあったので、これをつかって先程のビルドされた proxy-wasm を実行してみます。
// TODO
proxy-wasm-go-host で実行する
// TODO