10个版本
0.3.0 | 2024年2月14日 |
---|---|
0.2.6 | 2023年8月21日 |
0.2.3 | 2023年1月23日 |
0.2.0 | 2022年12月13日 |
0.1.2 | 2022年11月24日 |
#890 在 网络编程
每月41次下载
165KB
4K SLoC
GoodCam设备代理
这个库简化了创建HTTP代理的过程,这些代理可以用于与各种网络中的GoodCam设备通信。GoodCam设备包含一个内置客户端,可以配置为自动连接到指定的代理。连接后,设备将等待传入的HTTP请求。代理只需将传入的HTTP请求转发到连接的设备。
依赖项
该库需要OpenSSL(版本1.0.1或更高)或LibreSSL(版本2.5或更高)。Ubuntu/Debian用户可以使用以下命令安装OpenSSL开发文件:
sudo apt-get install libssl-dev
Fedora用户可以使用以下命令安装它们:
sudo dnf install openssl-devel
使用示例
请参阅此存储库根目录下的examples
目录,以获取一个现成的示例。
use gcdevproxy::{
async_trait::async_trait,
auth::BasicAuthorization,
http::{Body, Request},
ClientHandlerResult, DeviceHandlerResult, Error, RequestHandler,
};
struct MyRequestHandler;
#[async_trait]
impl RequestHandler for MyRequestHandler {
async fn handle_device_request(
&self,
authorization: BasicAuthorization,
) -> Result<DeviceHandlerResult, Error> {
...
}
async fn handle_client_request(
&self,
request: Request<Body>,
) -> Result<ClientHandlerResult, Error> {
...
}
}
let mut builder = ProxyBuilder::new();
builder
.hostname(hostname)
.http_bind_address(SocketAddr::from((Ipv4Addr::UNSPECIFIED, 8080)));
builder
.build(MyRequestHandler)
.await
.unwrap()
.await
.unwrap();
与其他语言的绑定
该库提供了一个C API,也可以用于其他编程语言。有关详细信息,请参阅存储库根目录下的include
文件夹。目前我们还提供了以下语言的包装库:
依赖项
~11–23MB
~370K SLoC