9 stable releases
1.2.5 | Feb 19, 2022 |
---|---|
1.2.4 | Dec 27, 2021 |
1.2.3 | Oct 16, 2021 |
1.2.2 | Aug 28, 2021 |
1.1.0 | Jan 17, 2021 |
#1877 in Network programming
6,399 downloads per month
Used in 15 crates
(11 directly)
20KB
268 lines
async-http-proxy
async-http-proxy
is a lightweight asynchronous HTTP proxy client library, which can be used to
connect a to a TCP port via HTTP Connect proxy. It can use Tokio and
async-std as asynchronous runtime.
Example
The following example shows how to connect to github.com
via Connect proxy (tokio
):
use async_http_proxy::http_connect_tokio;
use std::error::Error;
use tokio::net::TcpStream;
// Features "runtime-tokio" have to be activated
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut stream = TcpStream::connect("127.0.0.1:8080").await?;
http_connect_tokio(&mut stream, "example.org", 443).await?;
// stream is now connect to github.com
Ok(())
}
The following example shows how to connect to example.org
with Basic Authentication via Connect
proxy (async-std
):
use async_http_proxy::http_connect_async_std_with_basic_auth;
use async_std::net::TcpStream;
use async_std::task;
use std::error::Error;
// Features "async-std-tokio" and "basic-auth" have to be activated
fn main() -> Result<(), Box<dyn Error>> {
task::block_on(async {
let mut stream = TcpStream::connect("127.0.0.1:8080").await?;
http_connect_async_std_with_basic_auth(
&mut stream,
"example.org",
443,
"username",
"password",
)
.await?;
// stream is now connect to github.com
Ok(())
})
}
Features
- HTTP
CONNECT
- Basic Auth
- Tokio
- async-std
License
This project is licensed under the BSD-3-Clause license.
Contribution
Any contribution intentionally submitted for inclusion in async_http_proxy
by you, shall be
licensed as BSD-3-Clause, without any additional
terms or conditions.
Dependencies
~0.4–11MB
~129K SLoC