1 个不稳定版本
0.9.0 | 2024 年 3 月 2 日 |
---|
在 网络编程 中排名第 852
每月下载量 115,347
被 66 个 Crates 使用(直接使用 2 个)
14KB
182 行
hyperlocal
Hyper 是一个稳固的 Rust HTTP 客户端和服务器工具包。Unix 域套接字提供了一种主机本地进程间通信机制。hyperlocal 建立在 Hyper 的接口之上,并补充了构建 Unix 域套接字 HTTP 客户端和服务器。
这在需要限制对当前主机的访问,且不需要打开和公开 TCP 端口的情况下,用于公开简单的 HTTP 接口很有用。提供此类主机本地接口的 Unix 守护进程示例包括 Docker,一个进程容器管理器。
安装
将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
hyperlocal = "0.9"
用法
服务器
一个典型的服务器可以通过创建一个 tokio::net::UnixListener
并使用 hyper::service::service_fn
创建一个请求/响应处理函数,并在循环中接受连接,使用 hyper::server::conn::http1::Builder::new().serve_connection()
将 UnixStream
连接到它来构建。
示例在 examples/server.rs 中。
要测试您的服务器是否正常工作,您可以使用现成的工具,如 curl
$ curl --unix-socket /tmp/hyperlocal.sock localhost
It's a Unix system. I know this.
客户端
hyperlocal
还为使用来自 hyper-utils
包的 Client
接口编写基于 Unix 域套接字的 HTTP 客户端提供了绑定。
示例请参考 examples/client.rs。
Hyper 的客户端接口通过工厂方法如 get
、post
、delete
等简化了发送典型 HTTP 方法(如 GET
、POST
、DELETE
)的过程。这些方法需要一个可以转换成 hyper::Uri
的参数。
由于 Unix 域套接字不是通过解析为 IP 地址和网络端口的域名来表示的,所以标准的 URL 字符串不适用。相反,应使用 hyperlocal::Uri
,它表示域套接字的文件路径以及资源 URI 路径和查询字符串。
Doug Tangren (softprops) 2015-2020
依赖项
~4–12MB
~122K SLoC