This crate implements a minimal abstraction over UNIX domain sockets for the purpose of IPC. It lets you send both file handles and rust objects between processes.
```rust use std::env; use std::process; use unix_ipc::{channel, Bootstrapper, Receiver, Sender}; use serde::{Deserialize, Serialize};
const ENVVAR: &str = "PROCCONNECT_TO";
pub enum Task {
Sum(Vec
fn main() {
if let Ok(path) = env::var(ENVVAR) {
let receiver = Receiver::
let (tx, rx) = channel().unwrap();
bootstrapper.send(Task::Sum(vec![23, 42], tx)).unwrap();
println!("sum: {}", rx.recv().unwrap());
bootstrapper.send(Task::Shutdown).unwrap();
}
} ```
All features are enabled by default but a lot can be turned off to cut down on dependencies. With all default features enabled only the raw types are available.
serde
: enables serialization and deserialization.bootstrap
: adds the Bootstrapper
type.bootstrap-simple
: adds the default new
constructor to the
bootstrapper.