Envoy, Filters and WebAssembly for Everyone!
summary
Envoy can load WebAssembly TCP filter modules built with the Rust SDK to inspect and modify RabbitMQ traffic without rebuilding Envoy. The demo shows a Rust-based WASM filter that parses part of the RabbitMQ binary protocol to drop version 1 clients and emit metrics, noting long native compile time (~4.5 hours) and that some SDK features are missing or experimental and parsing is partial.
AI-written summary · about
chapters (23)
- 0:00Welcome
- 1:19Thanks to organizers
- 2:21About the speaker
- 3:51What is Envoy
- 5:42Envoy filters
- 7:32Research limits
- 8:17TCP filter mechanics
- 10:01Native vs WebAssembly SDKs
- 12:31Filter chain integration
- 13:13Demo: RabbitMQ with Envoy
- 15:45TCP filter in Rust
- 17:10Loading and testing
- 18:34Binary protocol limits
- 20:19Client version filtering
- 21:24Monitoring rate limiting security
- 23:53Protocol validation
- 24:36WebAssembly filters future
- 26:22Current limits roadmap
- 27:49Conclusion
- 28:52Q&A: filter state
- 30:17Q&A: TCP codec
- 31:39HTTP response manipulation
- 32:44Closing
related talks
26mTaking Envoy Beyond C++ with WebAssembly
37mExtending Envoy with WebAssembly
33mDeveloping & Debugging WebAssembly Filters for Envoy
05mExtending Envoy With WebAssembly
32mExtending Envoy Using WebAssembly (Wasm)
30mUsing Wasm to develop Envoy Filters for supporting Yahoo Headers
26mBeyond Wasm: How Dynamic Modules Let You Extend Envoy Proxy in Go, Rust, or…
30mTaking Service Mesh a Step Further with WebAssembly
