Crate libp2p_request_response[−][src]
Generic request/response protocols.
General Usage
RequestResponse is a NetworkBehaviour that implements a generic
request/response protocol or protocol family, whereby each request is
sent over a new substream on a connection. RequestResponse is generic
over the actual messages being sent, which are defined in terms of a
RequestResponseCodec. Creating a request/response protocol thus amounts
to providing an implementation of this trait which can then be
given to RequestResponse::new. Further configuration options are
available via the RequestResponseConfig.
Requests are sent using RequestResponse::send_request and the
responses received as RequestResponseMessage::Response via
RequestResponseEvent::Message.
Responses are sent using RequestResponse::send_response upon
receiving a RequestResponseMessage::Request via
RequestResponseEvent::Message.
Protocol Families
A single RequestResponse instance can be used with an entire
protocol family that share the same request and response types.
For that purpose, RequestResponseCodec::Protocol is typically
instantiated with a sum type.
Limited Protocol Support
It is possible to only support inbound or outbound requests for
a particular protocol. This is achieved by instantiating RequestResponse
with protocols using ProtocolSupport::Inbound or
ProtocolSupport::Outbound. Any subset of protocols of a protocol
family can be configured in this way. Such protocols will not be
advertised during inbound respectively outbound protocol negotiation
on the substreams.
Re-exports
pub use codec::RequestResponseCodec; | |
pub use throttled::Throttled; |
Modules
| codec | |
| handler | |
| throttled | Limit the number of requests peers can send to each other. |
Structs
| RequestId | The ID of an inbound or outbound request. |
| RequestResponse | A request/response protocol for some message codec. |
| RequestResponseConfig | The configuration for a |
| ResponseChannel | A channel for sending a response to an inbound request. |
Enums
| InboundFailure | Possible failures occurring in the context of receiving an inbound request and sending a response. |
| OutboundFailure | Possible failures occurring in the context of sending an outbound request and receiving the response. |
| ProtocolSupport | The level of support for a particular protocol. |
| RequestResponseEvent | The events emitted by a |
| RequestResponseMessage | An inbound request or response. |
Traits
| ProtocolName | Types serving as protocol names. |