FastEdge CDN applications run inside a CDN resource’s request pipeline and can inspect or modify requests and responses as they pass through the CDN.
Complete the Rust (CDN / Proxy-Wasm) setup before proceeding. Once deployed, attach the application to a CDN resource to process live traffic — that step is in CDN applications.
Write a handler
A CDN application consists of two parts: a root context that registers the filter factory, and a filter that implements the callbacks. Replace src/lib.rs with:
Root registers a new Filter for each incoming request via create_http_context. on_http_request_headers runs when the CDN receives request headers — this example adds a custom x-fastedge header and returns Action::Continue to pass the request downstream unchanged. To stop the request instead, return Action::Pause.
Do not set request headers with the x-cdn- or x-gcdn- prefixes. The CDN reserves these names for internal use and strips them before the request reaches the origin. The Proxy-Wasm header APIs do not return an error when the application sets a reserved name, so the header appears to be set in the app but never arrives at the origin.
Build
Compile the handler to a WebAssembly binary. The first build downloads dependencies and takes one to two minutes.
The binary is at ./target/wasm32-wasip1/release/my_cdn_app.wasm. This file is uploaded to FastEdge in the next step.
Deploy