77 releases (34 breaking)
new 0.73.0 | Oct 1, 2024 |
---|---|
0.71.1 | Aug 18, 2024 |
0.68.5 | Jul 9, 2024 |
0.66.2 | Mar 6, 2024 |
0.0.1 | Oct 10, 2022 |
#1414 in HTTP server
4,289 downloads per month
Used in 3 crates
(via salvo)
695KB
16K
SLoC
salvo-proxy
Proxy for Salvo.
This is offical crate, so you can enable it in Cargo.toml
like this:
salvo = { version = "*", features=["proxy"] }
lib.rs
:
Provide proxy support for Savlo web framework.
Example
In this example, if the requested URL begins with http://127.0.0.1:5800/, the proxy goes to https://www.rust-lang.org; if the requested URL begins with http://localhost:5800/, the proxy goes to https://www.rust-lang.org.
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://www.rust-lang.org")),
)
.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;
}
Dependencies
~18–34MB
~631K SLoC