Crate warp_reverse_proxy[][src]

Expand description

Fully composable warp filter that can be used as a reverse proxy. It forwards the request to the desired address and replies back the remote address response.

use warp::{hyper::body::Bytes, Filter, Rejection, Reply, http::Response};
use warp_reverse_proxy::reverse_proxy_filter;

async fn log_response(response: Response<Bytes>) -> Result<impl Reply, Rejection> {
    println!("{:?}", response);

async fn main() {
    let hello = warp::path!("hello" / String).map(|name| format!("Hello, {}!", name));

    // // spawn base server
    tokio::spawn(warp::serve(hello).run(([0, 0, 0, 0], 8080)));

    // Forward request to localhost in other port
    let app = warp::path!("hello" / ..).and(
        reverse_proxy_filter("".to_string(), "".to_string())

    // spawn proxy server
    warp::serve(app).run(([0, 0, 0, 0], 3030)).await;



Reverse proxy internal client


Warp filter that extracts the relative request path, method, headers map and body of a request.

Build a request and send to the requested address.

Warp filter that extracts query parameters from the request, if they exist.

Reverse proxy filter

Type Definitions

Alias of request body bytes

Alias of warp HeaderMap

Alias of warp Method

Alias of query parameters.

Wrapper around a request data tuple.

Alias of warp FullPath