## Wasm 插件

目前 Higress 提供了 c++ 和 golang 两种 Wasm 插件开发框架，支持 Wasm 插件路由&域名级匹配生效。

同时提供了多个内置插件，用户可以基于 Higress 提供的官方镜像仓库直接使用这些插件：

[basic-auth](./wasm-cpp/basic_auth)：Basic Auth 认证鉴权

[key-auth](./wasm-cpp/key_auth)：Key 认证鉴权

[hmac-auth](./wasm-cpp/hmac_auth)：Hmac 认证鉴权

[jwt-auth](./wasm-cpp/jwt_auth)： JWT 认证鉴权

[bot-detect](./wasm-cpp/bot_detect)：防互联网爬虫

[custom-response](./wasm-cpp/custom_response)：自定义应答

[key-rate-limit](./wasm-cpp/key_rate_limit)：针对参数的限流

[request-block](./wasm-cpp/request_block)：自定义请求屏蔽

使用方式具体可以参考此[文档](./wasm-go/README.md) 中相关说明。

所有内置插件都已上传至 Higress 的官方镜像仓库：higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins

例如用如下配置使用 request-block 插件 的 1.0.0 版本：

```yaml
apiVersion: extensions.istio.io/v1alpha1
kind: WasmPlugin
metadata:
  name: request-block
  namespace: higress-system
spec:
  selector:
    matchLabels:
      higress: higress-system-higress-gateway
  pluginConfig:
    block_urls:
    - "swagger.html"
  url: oci://higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/request-block:1.0.0
```

## 贡献 Wasm 插件

如果您想要为 Higress 贡献插件请参考下述说明。

根据你选择的开发语言，将插件代码放到 [wasm-cpp/extensions](./wasm-cpp/extensions) ，或者 [go-cpp/extensions](./wasm-go/extensions) 目录下。

除了代码以外，需要额外提供一个 README.md 文件说明插件配置方式，以及 VERSION 文件用于记录插件版本，用作推送镜像时的 tag。

提交 PR 后，我们将评估插件的通用性，并对代码逻辑进行审查，确认无误后，会将插件镜像推送到官方仓库，后面将出现在社区的插件市场中。
