3 releases (breaking)
0.3.0 | Jul 18, 2024 |
---|---|
0.2.0 | May 23, 2024 |
0.1.0 | May 22, 2024 |
#368 in Asynchronous
35 downloads per month
31KB
711 lines
tipsy
This is a fork of parity-tokio-ipc.
tipsy is a library for cross-platform async IPC using Tokio.
It utilizes unix sockets on UNIX (via tokio::net::UnixStream
)
and named pipes on windows (via tokio::net::windows::named_pipe
).
Server
use tipsy::{Endpoint, OnConflict, ServerId};
use futures::stream::StreamExt;
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
Endpoint::new(ServerId::new("my-server"), OnConflict::Overwrite)?
.incoming()?
.for_each(|conn| async {
match conn {
Ok(stream) => println!("Got connection!"),
Err(e) => eprintln!("Error when receiving connection: {:?}", e),
}
});
Ok(())
}
Client
use tipsy::{Endpoint, ServerId};
use tokio::io::AsyncWriteExt;
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut client = Endpoint::connect(ServerId::new("my-server")).await?;
client.write_all(b"ping").await?;
Ok(())
}
Examples
See examples.
Supported Rust Versions
The MSRV is currently 1.75.0
.
Dependencies
~3–13MB
~139K SLoC