Extending Envoy with WebAssembly
summary
Envoy gains a WebAssembly extension system that loads dynamic wasm modules per Envoy silo so filters run in single-threaded silos without locks; supported runtimes include WAVM, V8 and a null sandbox for native debugging. The API surface splits into low-level C calls, per-language high-level wrappers, and extension APIs for HTTP/log filters; a live demo changes a response header and reloads a new .wasm without restarting Envoy. Runtime hits ~60–70% native and V8 uses ~2.5MB per VM; XDS delivery and upstreaming are planned.
AI-written summary · about
chapters (31)
- 0:00Introduction
- 0:33Agenda
- 3:38Envoy Structure
- 6:17Envoy Extensions
- 7:29GitHub Repository
- 7:47Extension Structure
- 9:31Lua Limitations
- 10:40Override Headers
- 11:51Decoder Headers
- 12:52Project Overview
- 14:00Why WebAssembly
- 15:49Use case for WebAssembly
- 17:16VM API
- 17:38VM Configuration
- 18:31Silos
- 19:27Communication
- 20:56General API
- 21:29Wrappers
- 23:15API Extensions
- 23:47HTTP Filter
- 24:58Adding a VM
- 26:10Status
- 26:57Conclusion
- 27:27API
- 28:29Enumeration
- 28:45Envoy running
- 28:55Running example
- 31:17Make file
- 31:32File sizes
- 32:01Questions
- 34:08Memory usage
related talks
32mExtending Envoy Using WebAssembly (Wasm)
26mTaking Envoy Beyond C++ with WebAssembly
05mExtending Envoy With WebAssembly
12mEnvoy Maintainer Q&A
34mEnvoy, Filters and WebAssembly for Everyone!
33mDeveloping & Debugging WebAssembly Filters for Envoy
09mLightning Talk: WAMR, Intel
10mSponsored Keynote: What can WebAssembly do for your Application Security and Extens...
