alibaba / higress

Cloud Native API Gateway | 云原生API网关
https://higress.io
Apache License 2.0
2.52k stars 415 forks source link

Support some APISIX plugins through Higress wasm-go #678

Open WeixinX opened 6 months ago

WeixinX commented 6 months ago

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

johnlanni commented 6 months ago

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.