Earlier than I dive into the “how”, let me first describe a little bit of context surrounding the Rust integration in Apache APISIX. I imagine it’s story as a result of it highlights the facility of Open Supply.
It begins with the Envoy proxy.
Envoy is an open supply edge and repair proxy, designed for cloud-native purposes
— https://www.envoyproxy.io/
Round 2019, Envoy’s builders realized a easy reality. Since Envoy is a statically compiled binary, integrators who want to increase it should compile it from the modified supply as an alternative of utilizing the official binary model. Points vary from provide chains extra susceptible to assaults to an extended drift when a brand new model is launched. For end-users, whose core enterprise is far additional, it means having to rent specialised abilities because of this solely.
The staff thought of to resolve the problem with C extensions, however discarded this method as neither <abbr title=”Utility Programmer Interface”>API</abbr>s nor <abbr title=”Utility Binary Interface”>ABI</abbr>++s had been secure. As an alternative, they selected to supply a secure WebAssembly-based ABI. If you happen to’re serious about a extra detailed background, you may learn the entire piece on GitHub.
The specification is out there on GitHub.
- Builders can create SDK for his or her tech stack
- Proxy and API Gateway suppliers can combine
proxy-wasm
of their product