plane-dynamic-proxy 0.5.5

Dynamic proxy crate for Plane
Documentation
use common::hello_world_service::HelloWorldService;
use hyper::StatusCode;
use plane_dynamic_proxy::server::{HttpsConfig, SimpleHttpServer};
use std::net::SocketAddr;
use tokio::net::TcpListener;

mod common;

#[tokio::test]
async fn test_hello_world_http() {
    let service = HelloWorldService;
    let addr = SocketAddr::from(([127, 0, 0, 1], 0));
    let listener = TcpListener::bind(addr).await.unwrap();
    let addr = listener.local_addr().unwrap();
    let _server = SimpleHttpServer::new(service, listener, HttpsConfig::Http).unwrap();

    let url = format!("http://{}", addr);

    let client = reqwest::Client::new();
    let res = client.get(url).send().await.unwrap();
    assert_eq!(res.status(), StatusCode::OK);
    assert_eq!(
        res.text().await.unwrap(),
        "Hello, world! X-Forwarded-For: 127.0.0.1, X-Forwarded-Proto: http"
    );
}