3个版本 (1个稳定版)
3.0.0 | 2022年1月15日 |
---|---|
0.1.1 | 2021年3月20日 |
0.1.0 | 2021年3月20日 |
1126 在 HTTP服务器
430 每月下载量
用于 minidsp-daemon
14KB
142 行
routerify-unixsocket
Routerify <> Hyperlocal
使用方法
使用routerify服务Unix套接字
基本用法是通过将RouterService
替换为UnixRouterService
来实现的,后者会适配请求以与routerify的RequestService
兼容。
由于routerify需要一个IP SocketAddr
,所以使用回环地址127.0.0.1
和端口号0作为占位符。为了访问Unix套接字的对端地址和对端凭证,UnixRequestExt
扩展特质向请求对象添加了方法。
示例
use hyper::{Body, Response, Server};
use hyperlocal::UnixServerExt;
use routerify::{Error, Router};
use routerify_unixsocket::{UnixRequestExt, UnixRouterService};
use std::{fs, path::Path};
#[tokio::main]
async fn main() {
let path = Path::new("/tmp/hyperlocal.sock");
if path.exists() {
fs::remove_file(path).unwrap();
}
let router: Router<Body, Error> = Router::builder()
.get("/", |req| async move {
let s = format!("You are: {:?}", req.unix_peer_cred());
Ok(Response::new(Body::from(s)))
})
.build()
.unwrap();
let service = UnixRouterService::new(router).unwrap();
Server::bind_unix(path)
.unwrap()
.serve(service)
.await
.unwrap()
}
许可证
许可协议为以下之一
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证定义,应按上述方式双许可,无需任何额外的条款或条件。
依赖项
~8–19MB
~241K SLoC