* chore(deps): bump to go1.24.0
* use proxy-wasm/proxy-wasm-go-sdk
* remove tinygo
* update docker image
* add missing env
* use go tool directive for mockgen
* chore: bump Kong/ngx_wasm_module to pre-release 0.6.0
Thanks to https://github.com/Kong/ngx_wasm_module/issues/682
* fix go mod
* set caddy to go1.23
* ci: fix pipelines
* fix(proxywasm): bump to go 1.23 and tinygo 0.33
* ci: move to sablierapp/sablier
* ci: replace sablierapp/whoami with acouvreur/whoami
This will use mimic later
* fix wrong whoami image
* update nginx docker image for proxywasm
When an instance does not exist yet and needs to be started, its status is not assumed to be starting anymore.
Instead, the statue will be retrieved from the provider. This changes one thing, it's that you may be able to start and access your services instantly because they'll be instantly seen as ready.
With this change, you might want to make sure that your containers have a proper healthcheck used to determine when the application is able to process incoming requests.
* refactor: add interface guards
* refactor(providers): remove instance.State as a return value from Stop and Start
* test(e2e): add healthcheck on nginx container
Because now the container check is so fast, we need to add a delay on which the container is considered started and healthy to have a proper waiting page.
* fix(tests): using acouvreur/whoami:v1.10.2 instead of containous/whoami:v1.5.0
This image simply retrieve the curl binary from curlimages/curl:8.8.0 to be able to add proper docker healthcheck commands.
Once this is merged with traefik/whoami, I'll update back to the original image.
See https://github.com/traefik/whoami/issues/33
This feature adds the capability to stop unregistered running instances upon startup.
Previously, you had to stop running instances manually or issue an initial request that will shut down instances afterwards.
With this change, all discovered instances will be shutdown. They need to be registered using labels. E.g.: sablier.enable=true
Fixes#153
* feat(plugin): add `proxywasm` plugin
The `proxywasm` plugin is a WASM Filter following the ProxyWasm ABI Specification using the proxywasm go sdk
This allows extensibility with any reverse proxy who implements the ProxyWasm ABI Specification.
The current WASM Filter was successfully tested with APISIX, Envoy, Nginx with ngx_wasm_module from Kong and Istio.
Fixes#145