10个稳定版本

2.1.1 2023年6月17日
2.0.4 2022年4月3日
2.0.3 2020年11月30日
2.0.2 2020年5月31日
1.1.0 2020年3月29日

#1475 in Web编程

Download history 5/week @ 2024-03-14 24/week @ 2024-03-28 27/week @ 2024-04-04

60 每月下载量
fastforward 中使用

MIT 许可证

35KB
752

Build Status [minimum rustc 1.31

flask

Flask是一个用于存储TcpStream内容并创建http请求/响应的工具

使用flask将来自TCPStream的传入HTTP请求反向代理到SocketAddr地址

use flask::httpx::read_http_request;

fn proxy_tcp_stream(stream: TcpStream, proxy_addr: SocketAddr) {
    let _proxy_add_str = format!("{}", proxy_addr);
    let proxy_addr_hdr = HeaderValue::from_str(&_proxy_add_str).unwrap();

    let mut req = read_http_request(stream.try_clone().unwrap()).unwrap();
    
    // In a real system you should implement remove_hop_by_hop_headers.  It's commented out here for simplicity.
    // *req.headers_mut() = remove_hop_by_hop_headers(req.headers());

    let req_headers = req.headers_mut();
    req_headers.remove(http::header::HOST);
    req_headers.insert(http::header::HOST, proxy_addr_hdr);
    handle_request(stream, req);
}

依赖项

~1.5MB
~29K SLoC