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