envoyproxy / envoyproxy/envoy

proposal: design Wasm ABI for tracing providers

Open
#10,563 3 comments 0 reactions 0 assignees View on GitHub
area/wasm design proposal help wanted
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.