MCPcopy Index your code
hub / github.com/envoyproxy/dynamic-modules-examples

github.com/envoyproxy/dynamic-modules-examples @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
276 symbols 363 edges 24 files 111 documented · 40%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dynamic Modules Examples

Envoy Version: v1.37.0

Since dynamic modules are tied with a specific Envoy version, this repository is based on the specific commit of Envoy. For examples for a specific Envoy version, please check out release/v<version> branches: * release/v1.34 * release/v1.35 * release/v1.36

This repository hosts examples of dynamic modules for Envoy to extend its functionality. The high level documentation is available here. In short, a dynamic module is a shared library that can be loaded into Envoy at runtime to add custom functionality, for example, a new HTTP filter.

It is a new way to extend Envoy without the need to recompile it just like the existing mechanisms like Lua filters, Wasm filters, or External Processors.

Currently, this repository hosts two language implementations of dynamic modules: Rust and Go. * rust: using the official Rust dynamic module SDK. * go: using the official Go dynamic module SDK.

This repository serves as a reference for developers who want to create their own dynamic modules for Envoy including how to setup the project, how to build it, and how to test it, etc.

The tracking issue for dynamic modules in general is here where you can find more information about the current status and future plans as well as feature requests.

Development

# Run all unit tests
make test
# Build all dynamic modules
make build
# Run integration tests with Envoy via func-e (no local installation required)
make integration-test

Core symbols most depended-on inside this repo

parse
called by 13
rust/src/listener_ip_allowlist.rs
allocate
called by 8
rust/src/dns_gateway/virtual_ip_cache.rs
lookup
called by 5
rust/src/dns_gateway/virtual_ip_cache.rs
record_latency
called by 3
rust/src/http_metrics.rs
create_error_response
called by 2
rust/src/network_redis.rs
format_bytes_for_logging
called by 2
rust/src/network_protocol_logger.rs
build_dns_response
called by 2
rust/src/dns_gateway/mod.rs
build_nodata_response
called by 2
rust/src/dns_gateway/mod.rs

Shape

Method 105
Function 101
Class 49
Struct 15
Enum 6

Languages

Rust87%
Go13%

Modules by API surface

rust/src/network_redis.rs29 symbols
rust/src/network_protocol_logger.rs25 symbols
rust/src/listener_ip_allowlist.rs23 symbols
rust/src/dns_gateway/virtual_ip_cache.rs22 symbols
rust/src/dns_gateway/mod.rs22 symbols
rust/src/listener_tls_detector.rs19 symbols
rust/src/listener_sni_router.rs17 symbols
rust/src/network_rate_limiter.rs16 symbols
rust/src/http_access_logger.rs11 symbols
rust/src/network_echo.rs10 symbols
rust/src/http_metrics.rs10 symbols
go/passthrough.go9 symbols

For agents

$ claude mcp add dynamic-modules-examples \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact