[−][src]Crate dusk_uds
Dusk Unix Domain Sockets
Minimalistic boilerplate for UnixListener
bindings.
Complies with the log facade.
Installation
Add this to your Cargo.toml
:
[dependencies]
dusk-uds = "0.1"
Example
use dusk_uds::{Message, State, UnixDomainSocket}; use std::io::{Read, Write}; use std::sync::mpsc; fn handler<S: Read + Write>(socket: S, sender: mpsc::Sender<Message>) -> S { let mut socket = socket; let mut buf = [0u8; 4]; // UnixListener implements Read + Write socket.read_exact(&mut buf).unwrap(); socket.write_all(b"Some reply").unwrap(); // Ask the listener to stop after the next iteration sender .send(Message::ChangeState(State::ShouldQuit)) .unwrap(); socket } fn main() { // Set the correct path // /dev/null will fail, unless your OS is broken :) let uds = UnixDomainSocket::from("/dev/null").bind(handler); if let Err(_e) = uds { // Report } }
Structs
UnixDomainSocket | Boilerplate for |
Enums
Message | Possible messages that can be sent through the |
State | Possible states of the unix domain socket. |