用于 Rust 通道的多进程替换
ipc-channel 是 Rust 通道的进程间实现(这些通道受 CSP[^CSP] 的启发)。Rust 通道是一个单向的 FIFO 队列,可用于在单个操作系统进程中的线程之间传送消息。有关 Rust 通道的出色介绍,请参阅 Rust 参考文档中的 使用消息传递在线程之间传输数据。
尽可能地, ipc-channel 设计为 Rust 通道的替代方案。从 Rust 通道 API 到 ipc-channel API 的映射如下所示:
要让您的类型实现 Serialize 和 Deserialize 的最简单方法是使用 crates.io 上的 serde_macros 编译器作为插件,然后用 #[derive(Deserialize, Serialize)] 标注您要发送的类型。在许多情况下,这就是您需要做的 — 编译器会生成所有必要的繁琐的模板代码,用于序列化和反序列化您的类型的实例。
send() 从不阻塞。 * Rust 通道不消耗操作系统 IPC 资源,而 ipc 通道则依赖于操作系统消耗 IPC 资源,例如套接字、文件描述符、共享内存区段、命名管道等。 * Rust 通道转移消息的所有权,而 ipc 通道则对消息进行序列化和反序列化。 * Rust 通道类型安全,而 ipc 通道则依赖于客户端和服务器程序使用相同的消息类型(或者至少是具有兼容序列化的消息类型)。暂无开放 Issues,或尚未同步最近议题。