2个稳定版本
1.2.2 | 2023年7月5日 |
---|---|
1.2.1 | 2023年6月27日 |
#238 in Windows API
11,737 每月下载量
在 25 个crate中使用 (直接使用2个)
455KB
8K SLoC
Interprocess
Rust程序进程间通信工具包。该crate旨在尽可能多地暴露平台特定功能,同时为所有平台保持统一的接口。
功能
进程间通信原语
interprocess
提供了针对IPC的OS特定接口和跨平台的抽象。
跨平台IPC API
- 本地套接字 – 类似于TCP套接字,但根据操作系统使用文件系统或命名空间路径而不是
localhost
上的端口,完全绕过网络栈;在Windows上使用命名管道实现,在Unix上使用Unix域套接字
平台特定,但在Unix-like系统和Windows上都有
- 匿名管道 – 用于单向私下通信的匿名文件类对象,最常用于在父子进程之间通信
- 信号 – Windows上的C信号,Unix-like OS上的POSIX信号 (已弃用)
Unix专用
- FIFO文件 – 一种特殊的文件类型,类似于匿名管道,但存在于文件系统中,通常被称为“命名管道”,但与Windows命名管道完全不同
- Unix域套接字 – 一种围绕标准网络API构建的套接字类型,但使用文件系统路径而不是
localhost
上的端口,在Linux上可选地使用类似于Windows命名管道的单独命名空间
Windows专用
- 命名管道 – 与Unix域套接字非常相似,使用单独的命名空间而不是驱动器路径
异步I/O
目前仅支持Tokio的本地套接字、Unix域套接字和Windows命名管道。计划支持 async-std
功能门
signals
,默认开启 – 启用对POSIX信号和C信号的支持。会引入额外的依赖。tokio_support
,默认关闭 – 启用对Tokio驱动的有效异步IPC的支持。不能简单地命名为tokio
因为Cargo的限制。nonblocking
,默认启用 - 已弃用并将被移除,请勿使用。
许可证
此软件包及其所有社区贡献均采用MIT许可证或Apache 2.0许可证的双重许可。
依赖项
~0-9MB
~70K SLoC