Crates.io | interprocess |
lib.rs | interprocess |
version | 2.2.1 |
source | src |
created_at | 2020-08-05 11:23:40.278243 |
updated_at | 2024-07-21 18:25:54.726664 |
description | Interprocess communication toolkit |
homepage | |
repository | https://github.com/kotauskas/interprocess |
max_upload_size | |
id | 273158 |
size | 431,207 |
Interprocess communication toolkit for Rust programs that aims to expose as many platform-specific features as possible while maintaining a uniform interface for all platforms and encouraging portable, correct code.
Interprocess provides both OS-specific IPC interfaces and cross-platform abstractions for them.
localhost
, depending on the OS, bypassing the network stack entirely; implemented
using named pipes on Windows and Unix domain sockets on UnixCurrently, only Tokio for local sockets, Unix domain sockets and Windows named pipes is supported.
Support for async-std
is planned.
Interprocess supports Windows and all generic Unix-like systems. Additionally, platform-specific
extensions are supported on select systems. The policy with those extensions is to put them behind
#[cfg]
gates and only expose on the supporting platforms, producing compile errors instead of
runtime errors on platforms that have no support for those features.
Four levels of support (not called tiers to prevent confusion with Rust target tiers, since those work completely differently) are provided by Interprocess. It would be a breaking change for a platform to be demoted, although promotions quite obviously can happen as minor or patch releases.
OSes at this level: Windows, Linux, macOS
#[cfg]
-gated platform-specific features are supported with stable public APIsOSes at this level: FreeBSD
#[cfg]
-gated platform-specific features are supported with stable public APIsOSes at this level: Dragonfly BSD, OpenBSD, NetBSD, Redox, Android, Fuchsia, iOS, tvOS, watchOS
#[cfg]
-gated platform-specific features that originate from other platforms are
supported with stable public APIs because they behave here identically to how they do on an OS with
a higher support levelOSes at this level: POSIX-conformant #[cfg(unix)]
systems not listed above for which the libc
crate compiles
tokio
, off by default – enables support for Tokio-powered efficient asynchronous IPC.This crate, along with all community contributions made to it, is dual-licensed under MIT and Apache 2.0.