5个稳定版本
3.0.0 | 2023年1月29日 |
---|---|
2.0.0 | 2023年1月23日 |
1.0.2 | 2023年1月2日 |
1.0.0 | 2022年12月30日 |
#800 在 异步
每月 23次下载
31KB
587 行
async-io-converse
是async-io-typed
crate的包装器,允许将serde兼容的类型发送到任何具有实现AsyncRead
和AsyncWrite
类型的双工连接。async-io-converse
添加了接收来自其他进程的回复的能力。
谁需要这个?
如果你有两个端点需要相互通信,并且
- 你可以在它们之间建立某种双工I/O连接(例如TCP、命名管道或Unix套接字)
- 你需要清晰的消息边界
- 你不想遵循现有的线格式,如HTTP或protobufs。这个crate使用自定义格式。
- 你希望发送的数据可以轻松地在Rust类型中表示,并且该类型实现了serde的
Deserialize
和Serialize
特性。
那么这个crate可能对你有帮助!
谁不需要这个?
如果端点在同一个进程中,那么你不应该使用这个crate。现有的异步mpsc通道可以更好地为你服务。许多crate提供了异步mpsc通道,包括futures
和tokio
。选择你喜欢的实现。另外,如果你试图与没有Rust代码的进程接口,并且无法采用Rust部分,这个crate将弊大于利。考虑使用protobufs或JSON,如果Rust采用是阻碍的话。
为什么我不能直接使用async-io-typed
?
async-io-converse
建立在async-io-typed
之上,并提供了创建和发送回复的能力,然后对等方可以对其进行操作。async-io-converse
还需要双工连接,而async-io-typed
不需要。
贡献
欢迎投稿!请确保您的代码更改通过了单元测试。如果您正在修复一个错误,请添加单元测试,以免以后有人再次引入错误。
依赖项
~3.5-5MB
~92K SLoC