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网络编程

Download history 39009/week @ 2024-05-03 43626/week @ 2024-05-10 42432/week @ 2024-05-17 52888/week @ 2024-05-24 50094/week @ 2024-05-31 42861/week @ 2024-06-07 42513/week @ 2024-06-14 46942/week @ 2024-06-21 37199/week @ 2024-06-28 39828/week @ 2024-07-05 52042/week @ 2024-07-12 53120/week @ 2024-07-19 50839/week @ 2024-07-26 48608/week @ 2024-08-02 68724/week @ 2024-08-09 43503/week @ 2024-08-16

每月220,386次下载
用于 199 个Crates(6直接)

MIT许可证

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::Serializeserde::Deserialize,你可以使用两个预定义的行为

协议族

单个 Behaviour 实例可以与一个共享相同请求和响应类型的整个协议族一起使用。为此,通常使用求和类型实例化 Codec::Protocol

有限协议支持

可以仅支持特定协议的入站或出站请求。这通过使用 ProtocolSupport::InboundProtocolSupport::Outbound 使用协议来实例化 Behaviour 实现。可以以这种方式配置协议族的一个子集。这样的协议在子流的入站或出站协议协商期间不会进行宣传。

依赖关系

~8–16MB
~210K SLoC