#async-io #serde #async-read #channel #async-write #transmission #future

async-io-typed

将任何AsyncRead或AsyncWrite类型适配以发送serde兼容类型

7个稳定版本

3.0.0 2023年1月29日
2.0.0 2023年1月23日
1.0.4 2023年1月2日
1.0.3 2023年1月1日
1.0.2 2022年12月30日

#859编码


用于 async-io-converse

MIT/Apache

73KB
1.5K SLoC

async-io-typed 构建状态 最新版本

文档

结合 bincodefutures,将任何 AsyncReadAsyncWrite 类型适配成用于传输 serde 兼容的Rust类型的通道。

谁需要这个?

如果你有一个需要通信的端点,并且

  • 你可以与它建立某种类型的I/O连接(例如TCP、命名管道或Unix套接字)
  • 你需要明确的消息边界
  • 你不想遵守现有的线格式,如HTTP或protobufs。此crate使用自定义格式。
  • 你希望发送的数据可以轻松地表示为Rust类型,并且该类型实现了serde的 DeserializeSerialize 特性。

那么这个crate可能对你很有用!

谁不需要这个?

如果端点在同一个进程中,则不应使用此crate。现有的异步mpsc通道可以更好地为你服务。许多crate提供异步mpsc通道,包括 futurestokio。选择你喜欢的实现。此外,如果你试图与没有Rust代码的过程接口,并且无法采用Rust部分,此crate会给你带来更多伤害而不是帮助。考虑使用protobufs或JSON,如果Rust采用是障碍。

二进制格式

有关此crate使用的二进制格式的详细信息,请参阅 二进制格式规范

依赖关系

~1.3–2.1MB
~45K SLoC