https://github.com/envoyproxy/envoy-filter-example
Example of consuming Envoy and adding a custom filter
https://github.com/envoyproxy/envoy-filter-example
Last synced: about 1 year ago
JSON representation
Example of consuming Envoy and adding a custom filter
- Host: GitHub
- URL: https://github.com/envoyproxy/envoy-filter-example
- Owner: envoyproxy
- Created: 2017-04-25T19:13:26.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T18:44:17.000Z (about 1 year ago)
- Last Synced: 2025-04-14T22:19:56.627Z (about 1 year ago)
- Language: C++
- Size: 3.42 MB
- Stars: 345
- Watchers: 35
- Forks: 212
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Envoy filter example
This project demonstrates the linking of additional filters with the Envoy binary.
A new filter `echo2` is introduced, identical modulo renaming to the existing
[`echo`](https://github.com/envoyproxy/envoy/blob/master/source/extensions/filters/network/echo/echo.h)
filter. Integration tests demonstrating the filter's end-to-end behavior are
also provided.
For an example of additional HTTP filters, see [here](http-filter-example).
[](https://securityscorecards.dev/viewer/?uri=github.com/envoyproxy/envoy-filter-example)
## Building
To build the Envoy static binary:
1. `git submodule update --init`
2. `bazel build //:envoy`
## Testing
To run the `echo2` integration test:
`bazel test //:echo2_integration_test`
To run the regular Envoy tests from this project:
`bazel test @envoy//test/...`
## How it works
The [Envoy repository](https://github.com/envoyproxy/envoy/) is provided as a submodule.
The [`WORKSPACE`](WORKSPACE) file maps the `@envoy` repository to this local path.
The [`BUILD`](BUILD) file introduces a new Envoy static binary target, `envoy`,
that links together the new filter and `@envoy//source/exe:envoy_main_entry_lib`. The
`echo2` filter registers itself during the static initialization phase of the
Envoy binary as a new filter.