[−][src]Module envoy_sdk::extension::filter::http
Envoy
HTTP Filter
extension.
Creating a new HTTP Filter
extension using Envoy SDK
consists of the following steps:
- Implement
HttpFilter
trait to define core logic of your extension - Implement
ExtensionFactory
trait to create new instances of your extension Register
your extension on WebAssembly module start up
Examples
Basic HttpFilter
:
use envoy::extension::HttpFilter; /// My very own `HttpFilter`. struct MyHttpFilter; impl HttpFilter for MyHttpFilter {}
ExtensionFactory
for MyHttpFilter
instances:
use envoy::extension::{ExtensionFactory, InstanceId, Result}; /// `ExtensionFactory` for `MyHttpFilter`. struct MyHttpFilterFactory; impl ExtensionFactory for MyHttpFilterFactory { type Extension = MyHttpFilter; const NAME: &'static str = "my_http_filter"; fn new_extension(&mut self, _instance_id: InstanceId) -> Result<Self::Extension> { Ok(MyHttpFilter) } }
Registration of MyHttpFilter
on start up:
use envoy::extension::{entrypoint, Module, Result}; entrypoint! { initialize } // put initialization logic into a function to make it unit testable fn initialize() -> Result<Module> { Module::new() .add_http_filter(|_instance_id| Ok(MyHttpFilterFactory)) }
Enums
FilterDataStatus | Return codes for |
FilterHeadersStatus | Return codes for |
FilterTrailersStatus | Return codes for |
Traits
ExchangeCompleteOps | An interface for operations available in the context of |
HttpFilter | An interface of the |
Ops | An interface with all available operations over request/response. |
RequestBodyOps | An interface for manipulating request body. |
RequestFlowOps | An interface for changing request flow. |
RequestHeadersOps | An interface for manipulating request headers. |
RequestTrailersOps | An interface for manipulating request trailers. |
ResponseBodyOps | An interface for manipulating response body. |
ResponseFlowOps | An interface for changing response flow. |
ResponseHeadersOps | An interface for manipulating response headers. |
ResponseTrailersOps | An interface for manipulating response trailers. |