I did learn how to use a TCP socket to communicate between 2 processes. I found the API quite pleasing:

let listener = std::net::TcpListener::bind("localhost:80")?;
for stream in listener.incoming() {
    let content = Vec::new();
    stream?.read_to_end(&mut content);
    // do stuff with content
}