proposal: design Wasm ABI for tracing providers
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 437
Description
*Title*: design `Wasm` ABI for tracers
*Context*:
* after `Envoy` moved to `libc++`, `dynamic_ot`-based tracers got broken because they were relying on `C++` ABI
* following that, a potential new tracing provider expressed its interest in `C` ABI instead
* so, it seems that tracing providers could benefit from having their own `Wasm` ABI
*Proposal*:
* Let's try to design `Wasm` ABI for tracers
* Along the way, let's expand on ideas that came out of reviews for `Wasm` upstreaming PRs, namely:
* ABI should be modular and complementary to [proxy-wasm/spec](https://github.com/proxy-wasm/spec)
* ABI should use versioning scheme similar to regular Envoy extensions, e.g. `envoy.tracers.v1alpha0`
* ABI should support usage model consistent with regular Envoy extensions, e.g. it should be possible to have N instances of the same extension type each with a different configuration
* ABI should be optimized for data passing from Envoy to the Wasm extension in just 1 function call
Contributor guide
Assessment
This issue has not been assessed yet.