38个版本 (破坏性)
| 0.27.0 | 2024年8月9日 |
|---|---|
| 0.26.3 | 2024年6月4日 |
| 0.26.2 | 2024年5月1日 |
| 0.26.1 | 2023年12月9日 |
| 0.1.1 | 2020年7月13日 |
#1469 在 网络编程
每月220,386次下载
用于 199 个Crates(6直接)
1MB
16K SLoC
通用请求/响应协议。
通用用法
Behaviour 结构是一个实现了通用请求/响应协议或协议族的 NetworkBehaviour,其中每个请求都通过连接上的新子流发送。 Behaviour 对发送的实际消息是泛型的,这些消息以 Codec 的形式定义。创建请求/响应协议相当于提供此特质的实现,然后可以将其提供给 Behaviour::with_codec。还可以通过 Config 获取进一步的配置选项。
请求通过 Behaviour::send_request 发送,响应通过 Message::Response,通过 Event::Message 接收。
收到请求后,使用 Behaviour::send_response 发送响应,请求通过 Message::Request,通过 Event::Message 接收。
预定义编解码器
如果你的消息类型实现了 serde::Serialize 和 serde::Deserialize,你可以使用两个预定义的行为
cbor::Behaviour用于 CBOR 编码的消息json::Behaviour用于 JSON 编码的消息
协议族
单个 Behaviour 实例可以与一个共享相同请求和响应类型的整个协议族一起使用。为此,通常使用求和类型实例化 Codec::Protocol。
有限协议支持
可以仅支持特定协议的入站或出站请求。这通过使用 ProtocolSupport::Inbound 或 ProtocolSupport::Outbound 使用协议来实例化 Behaviour 实现。可以以这种方式配置协议族的一个子集。这样的协议在子流的入站或出站协议协商期间不会进行宣传。
依赖关系
~8–16MB
~210K SLoC