Crate routerify_unixsocket[−][src]
Routerify <> Hyperlocal Serve unix sockets with routerify
Basic usage works by replacing RouterService
with UnixRouterService
, which adapts the
request in order to be compatible with RequestService
.
Since routerify requires an IP SocketAddr
, the loopback address 127.0.0.1
with port 0 is used as a placeholder.
In order to access the unix socket’s peer address and peer credential, the UnixRequestExt
extension traits adds methods to the request object.
Example
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() }
Structs
UnixRouterService | A |
Traits
UnixRequestExt | A extension trait which extends the |