71 个版本 (32 个破坏性版本)

0.71.1 2024 年 8 月 18 日
0.70.0 2024 年 8 月 13 日
0.68.5 2024 年 7 月 9 日
0.66.2 2024 年 3 月 6 日
0.0.1 2022 年 10 月 10 日

HTTP 服务器 中排名 1344

Download history 409/week @ 2024-04-27 583/week @ 2024-05-04 504/week @ 2024-05-11 742/week @ 2024-05-18 984/week @ 2024-05-25 783/week @ 2024-06-01 586/week @ 2024-06-08 840/week @ 2024-06-15 665/week @ 2024-06-22 409/week @ 2024-06-29 465/week @ 2024-07-06 507/week @ 2024-07-13 473/week @ 2024-07-20 675/week @ 2024-07-27 592/week @ 2024-08-03 525/week @ 2024-08-10

每月下载量 2,333
3 个库中使用了它(通过 salvo

MIT/Apache

665KB
15K SLoC

salvo-proxy

Salvo 的代理

这是一个官方库,因此您可以在 Cargo.toml 中像这样启用它

salvo = { version = "*", features=["proxy"] }

Docs


lib.rs:

为 Savlo 网络框架提供代理支持。

示例

在这个示例中,如果请求的 URL 以 http://127.0.0.1:5800/ 开头,代理将转到 https://rust-lang.net.cn;如果请求的 URL 以 https://127.0.0.1:5800/ 开头,代理将转到 https://rust-lang.net.cn

use salvo_core::prelude::*;
use salvo_proxy::Proxy;

#[tokio::main]
async fn main() {
    let router = Router::new()
        .push(
            Router::new()
                .host("127.0.0.1")
                .path("<**rest>")
                .goal(Proxy::use_hyper_client("https://rust-lang.net.cn")),
        )
        .push(
            Router::new()
                .host("localhost")
                .path("<**rest>")
                .goal(Proxy::use_hyper_client("https://crates.io")),
        );

    let acceptor = TcpListener::new("0.0.0.0:5800").bind().await;
    Server::new(acceptor).serve(router).await;
}

依赖项

~19–35MB
~648K SLoC