higress icon indicating copy to clipboard operation
higress copied to clipboard

Support some APISIX plugins through Higress wasm-go

Open WeixinX opened this issue 2 years ago • 1 comments

1. Support some plugins of APISIX

APISIX has a lot of great plugins implemented through Lua. And we wanted to overlay some of APISIX's plugin capabilities with the Golang Wasm plugins in Higress. In implementation, however, we need not replicate APISIX exactly, but instead should focus on the actual user needs behind the plugins, combined with the specific circumstances of Higress, to re-abstract configuration fields and corresponding capabilities. We can draw lessons from others, but we should not copy them exactly. Currently we want to support the following plugins:

APISIX Plugin Status Task issue
proxy-cache doing #679
opa done #680
csrf doing #681
request-validation done #682
limit-count doing #683
body-transformer doing #684

If you need to get a task, please go to the corresponding "Task issue" to comment. If you think there are more APISIX plugin capabilities to support, please discuss them in this issue or the Higress WASM SIG ~ ❤️

2. Related Information

APISIX Plugins: https://github.com/apache/apisix/tree/master/apisix/plugins Higress Go Wasm Plugins: https://github.com/alibaba/higress/tree/main/plugins/wasm-go/extensions Higress Wasm Go SDK: https://github.com/alibaba/higress/tree/main/plugins/wasm-go Implement a WASM plugin with Golang: https://higress.io/zh-cn/docs/user/wasm-go/

3. Higress WASM SIG

If you have any questions, please join the wasm sig for discussion ~

7501702118364_ pic

WeixinX avatar Dec 10 '23 04:12 WeixinX

APISIX is an excellent API gateway worth learning, with its capabilities realized through plugins, whereas Higress relies more on the built-in capabilities of Envoy to fulfill similar functions. The plugins mentioned here indeed represent functionalities that Envoy does not have, which we can implement using WASM plugins.

johnlanni avatar Dec 10 '23 06:12 johnlanni