Description
Description
`Apache ShenYu` is a Java native API Gateway for service proxy, protocol conversion and API governance.
`WASM`(WebAssembly) bytecode is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to leverage the common hardware features available on various platforms to execute in browsers at machine code speed.
`WASI`(WebAssembly System Interface) allows WASM to run in non browser environments such as Linux.
This plugin should base on [WasmPlugin](https://github.com/apache/shenyu/issues/4612), whcih means other languages, as long as their code can be compiled into WASM bytecode (such as Rust/golang/C++), can be used to write ShenYu plugins.
[kitex](https://github.com/cloudwego/kitex) is a Go RPC framework with high-performance and strong-extensibility for building micro-services.
You can find useful information [here](https://github.com/cloudwego/kitex/issues/1237).
The usage documentation for WasmPlugin is [here](https://shenyu.apache.org/docs/next/developer/custom-plugin/).
Relevant Skills
Know the use of Apache ShenYu, especially the wasm plugin.
Familiar with Golang and Java.
Task List
- [ ] add `shenyu-client-kitex` to [shenyu-client-golang](https://github.com/apache/shenyu-client-golang);
- [ ] add `shenyu-plugin-kitex` module;
- [ ] add `shenyu-spring-boot-starter-plugin-kitex` module;
- [ ] add `shenyu-integrated-test-kitex` module;
- [ ] add doc to [shenyu-website](https://github.com/apache/shenyu-website) for `KitexPlugin`;
Links:
website: https://shenyu.apache.org/
issues: https://github.com/apache/shenyu/issues/5425
Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
zhangzicheng/mahaitao, mail: zhangzicheng@apache.org , mahaitao@apache.org
Project Devs, mail: dev@shenyu.apache.org