8 releases (stable)
1.2.1 | Nov 5, 2022 |
---|---|
1.2.0 | Nov 3, 2022 |
1.1.1 | Mar 5, 2021 |
1.1.0 | Jan 27, 2021 |
0.1.1 | Aug 5, 2020 |
#47 in Unix APIs
15,012 downloads per month
Used in 25 crates
(20 directly)
455KB
8K
SLoC
Interprocess
Interprocess communication toolkit for Rust programs. The crate aims to expose as many platform-specific features as possible while maintaining a uniform interface for all platforms.
Features
Interprocess communication primitives
interprocess
provides both OS-specific interfaces for IPC and cross-platform abstractions for them.
Cross-platform IPC APIs
- Local sockets – similar to TCP sockets, but use filesystem or namespaced paths instead of ports on
localhost
, depending on the OS, bypassing the network stack entirely; implemented using named pipes on Windows and Unix domain sockets on Unix
Platform-specific, but present on both Unix-like systems and Windows
- Unnamed pipes – anonymous file-like objects for communicating privately in one direction, most commonly used to communicate between a child process and its parent
- Signals – C signals on Windows, POSIX signals on Unix-like OSes (deprecated)
Unix-only
- FIFO files – special type of file which is similar to unnamed pipes but exists on the filesystem, often referred to as "named pipes" but completely different from Windows named pipes
- Unix domain sockets – a type of socket which is built around the standard networking APIs but uses filesystem paths instead of ports on
localhost
, optionally using a spearate namespace on Linux akin to Windows named pipes
Windows-only
- Named pipes – closely resembles Unix domain sockets, uses a separate namespace instead of on-drive paths
Asynchronous I/O
Currently, only Tokio for local sockets, Unix domain sockets and Windows named pipes is supported. Support for async-std
is planned.
Feature gates
signals
, on by default – enables support for POSIX signals and C signals. Pulls in additional dependencies.tokio_support
, off by default – enables support for Tokio-powered efficient asynchronous IPC. Cannot simply be namedtokio
because of Cargo limitations.nonblocking
, on by default – deprecated and will be removed, do not use.
License
This crate, along with all community contributions made to it, is dual-licensed under the terms of either the MIT license or the Apache 2.0 license.
Dependencies
~0–10MB
~76K SLoC