KMamiz WASM Envoy filter plugin written in Go
- First, run the
build.sh
script then build KMamiz, theKMamizEnvoyFilter.wasm
file will be exposed on/wasm/KMamizEnvoyFilter.wasm
.
- (Optional) Install TinyGo
- Download the proxy-wasm-go-sdk
go mod edit -require=github.com/tetratelabs/proxy-wasm-go-sdk@main
go mod download github.com/tetratelabs/proxy-wasm-go-sdk
- Watch out for unimplemented functionalities
- To try out locally, run:
docker run -it --rm -v "$PWD"/envoy.yaml:/etc/envoy/envoy.yaml -v "$PWD"/KMamizEnvoyFilter.wasm:/etc/envoy/optimized.wasm -p 9901:9901 -p 10000:10000 envoyproxy/envoy:v1.17.0
- Poke the endpoint at
http://localhost:10000
to see actions in the terminal.
curl -X POST localhost:10000 -H 'Content-Type: application/json' --data '{"id": "xxx", "token": "xxx"}'
curl -X POST localhost:10000 -H 'Content-Type: application/json' --data '{"fruits":{"a":"apple","b":"banana"},"colors":["red","green"],"obj":{"enabled":true,"count":123},"objects":[{"name":"a","num":1},{"name":"b","num":2},{"name":"c","num":3}],"weird":{"b":null}}'