15 releases

Uses new Rust 2024

0.7.0 Mar 18, 2026
0.6.5 Oct 13, 2025
0.6.3 Sep 6, 2025
0.6.1 Jun 15, 2025
0.3.0 Jul 18, 2024

#165 in Asynchronous

Download history 4054/week @ 2026-01-23 2324/week @ 2026-01-30 3931/week @ 2026-02-06 2695/week @ 2026-02-13 3399/week @ 2026-02-20 4562/week @ 2026-02-27 5638/week @ 2026-03-06 5015/week @ 2026-03-13 4337/week @ 2026-03-20 4391/week @ 2026-03-27 2492/week @ 2026-04-03 6117/week @ 2026-04-10 6905/week @ 2026-04-17 5794/week @ 2026-04-24 5341/week @ 2026-05-01 6477/week @ 2026-05-08

25,578 downloads per month
Used in golang-ipc-rs

MIT/Apache

34KB
736 lines

tipsy

crates.io docs.rs Dependency Status license CI codecov GitHub repo size Lines of Code

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 futures_util::stream::StreamExt;
use std::error::Error;
use tipsy::{Endpoint, OnConflict, ServerId};

#[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 std::error::Error;
use tipsy::{Endpoint, ServerId};
use tokio::io::AsyncWriteExt;

#[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.85.0. Since Cargo's V3 resolver supports MSRV-aware dependencies, we do not treat an MSRV bump as a breaking change.

Dependencies

~7–13MB
~151K SLoC