錆びたプログラムの簡単な例を説明してもらえますか
これが錆の逆プロキシの簡単な例です。

Hyper :: {body、request、response、server}を使用します。
Hyper :: Service :: {make_service_fn、service_fn}を使用します。
Hyper :: client :: httpconnectorを使用します。
hyper_tls :: httpsconnectorを使用します。
Futures :: Future :: {OK、Future}を使用してください。
std :: envを使用してください。

fn main（）{
    ターゲット= env :: var（ "target"）。unwrap_or_else（| _ | "http：// localhost：8000" .to_string（））;
    ret addr = env :: var（ "addr"）

    make_svc = make_service_fn（move | _conn | {
        ターゲット=ターゲット.clone（）;
        service_fn（move | req：request <body> | {
            uri = req.uri（）。clone（）;
            let https = httpsconnector :: new（）;
            クライアント= hyper :: client :: builder（）。build :: <_、body>（https）;
            クライアント
                .request（req）
                .map（move | res | {{
                    mut new_res = res;
                    new_res.headers_mut（）。remove（ "content-length"）;
                    new_res
                }）
                .map_err（| e | {
                    eprintln！（ "error：{}"、e）;
                    e
                }）
                .and_then（| res | {
                    OK（応答:: builder（）
                        .Status（res.Status（））
                        .headers（res.headers（）。clone（））
                        .body（res.into_body（））
                        .unwrap（））
                }）
        }）
    }）;

    サーバー=サーバー:: bind（＆addr）
        .serve（make_svc）
        .map_err（| e | eprintln！（ "server error：{}"、e））;

    hyper :: rt :: run（server）;
}

説明：

    主な関数は、環境変数からの逆プロキシのターゲットURLとアドレスを読み取ることから始まります。変数が設定されていない場合、ターゲットでは「http：// localhost：8000」、アドレスでは「127.0.0.1:8080」にデフォルトです。

    make_service_fnは、着信要求を処理するサービス関数を作成します。サービス関数はリクエストオブジェクトを取り、そのURIをクローンし、ハイパーライブラリを使用してターゲットURLにリクエストを送信します。

    ターゲットからの応答は、コンテンツ長ヘッダーが削除された新しい応答として返されます。

    最後に、逆プロキシはサーバー::バインドおよびサーブメソッドを使用して開始され、指定されたアドレスに逆プロキシをバインドし、着信要求の提供を開始します。

この例は、ハイパーライブラリを使用して錆の単純な逆プロキシを実装する方法を示しています。逆プロキシは、着信要求を取り、それらをターゲットURLに転送し、ターゲットから応答を返します。