1 个不稳定版本

0.9.0 2024 年 3 月 2 日

网络编程 中排名第 852

Download history 5513/week @ 2024-03-14 9283/week @ 2024-03-21 9672/week @ 2024-03-28 13531/week @ 2024-04-04 11263/week @ 2024-04-11 12494/week @ 2024-04-18 14552/week @ 2024-04-25 18552/week @ 2024-05-02 18595/week @ 2024-05-09 19742/week @ 2024-05-16 23984/week @ 2024-05-23 23877/week @ 2024-05-30 25196/week @ 2024-06-06 28451/week @ 2024-06-13 30114/week @ 2024-06-20 27212/week @ 2024-06-27

每月下载量 115,347
66 个 Crates 使用(直接使用 2 个)

MIT 许可证

14KB
182

🔌 ✨

hyperlocal

Hyper 客户端和服务器绑定,用于 Unix 域套接字


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 的客户端接口通过工厂方法如 getpostdelete 等简化了发送典型 HTTP 方法(如 GETPOSTDELETE)的过程。这些方法需要一个可以转换成 hyper::Uri 的参数。

由于 Unix 域套接字不是通过解析为 IP 地址和网络端口的域名来表示的,所以标准的 URL 字符串不适用。相反,应使用 hyperlocal::Uri,它表示域套接字的文件路径以及资源 URI 路径和查询字符串。


Doug Tangren (softprops) 2015-2020

依赖项

~4–12MB
~122K SLoC