8 breaking releases

0.9.0 Jul 6, 2021
0.8.0 Jan 5, 2021
0.7.0 Jan 4, 2020
0.5.0 Dec 17, 2019
0.1.0 Sep 26, 2018

#1930 in Network programming

Download history 15555/week @ 2024-09-20 14365/week @ 2024-09-27 13624/week @ 2024-10-04 16335/week @ 2024-10-11 18904/week @ 2024-10-18 17358/week @ 2024-10-25 16161/week @ 2024-11-01 17393/week @ 2024-11-08 17118/week @ 2024-11-15 18035/week @ 2024-11-22 17762/week @ 2024-11-29 20285/week @ 2024-12-06 19555/week @ 2024-12-13 8213/week @ 2024-12-20 7940/week @ 2024-12-27 15452/week @ 2025-01-03

54,790 downloads per month
Used in 35 crates (8 directly)

MIT/Apache

28KB
633 lines

parity-tokio-ipc

CI Documentation

This crate abstracts interprocess transport for UNIX/Windows.

It utilizes unix sockets on UNIX (via tokio::net::UnixStream) and named pipes on windows (via tokio::net::windows::named_pipe module).

Endpoint is transport-agnostic interface for incoming connections:

use parity_tokio_ipc::Endpoint;
use futures::stream::StreamExt;

// For testing purposes only - instead, use a path to an actual socket or a pipe
let addr = parity_tokio_ipc::dummy_endpoint();

let server = async move {
    Endpoint::new(addr)
        .incoming()
        .expect("Couldn't set up server")
        .for_each(|conn| async {
            match conn {
                Ok(stream) => println!("Got connection!"),
                Err(e) => eprintln!("Error when receiving connection: {:?}", e),
            }
        });
};

let rt = tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap();
rt.block_on(server);

License

parity-tokio-ipc is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, and LICENSE-MIT for details.

Dependencies

~4–13MB
~146K SLoC