NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2732 most downloaded on crates.io
Generic Request/Response Protocols
Last release 26 days ago
11 Sep 2026
Release timing varies
gaps range from 8 days to 1.2 years
Nearly every release is documented
notes for 37 of 40 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
42 releases · first in 2020
One column per quarter.
Use futures-timer instead of tokio's timer for stream timeouts so the bounded Delay works on wasm32; tokio's timer has no driver in the browser and pa
Nothing published for this version
Deprecate void crate. See PR 5676.
<!-- Update to libp2p-swarm v0.45.0 -->
<!-- Update to libp2p-swarm v0.45.0 -->
Report failure when streams are at capacity. See PR 5417.
Deprecate Behaviour::add_address in favor of Swarm::add_peer_address. See PR 4371.
Behaviour::add_address in favor of Swarm::add_peer_address.
See PR 4371.Derive PartialOrd and Ord for {Out,In}boundRequestId. See PR 4956.
PartialOrd and Ord for {Out,In}boundRequestId.
See PR 4956.Remove request_response::Config::set_connection_keep_alive in favor of SwarmBuilder::idle_connection_timeout. See PR 4679.
request_response::Config::set_connection_keep_alive in favor of SwarmBuilder::idle_connection_timeout.
See PR 4679.request_response::Behaviour.
This limit is configurable via Config::with_max_concurrent_streams.
See PR 3914.InboundRequestId and OutboundRequestId.
See PR 3914.HashSet instead of SmallVec to prevent adding duplicate addresses.
See PR 4700.Nothing published for this version
Deprecate request_response::Config::set_connection_keep_alive in favor of SwarmBuilder::idle_connection_timeout. See PR 4029.
request_response::Config::set_connection_keep_alive in favor of SwarmBuilder::idle_connection_timeout.
See PR 4029.<!-- Internal changes
KeepAlive::Until-->
Replace unmaintained serde_cbor dependency with cbor4ii. See [PR 4187].
serde_cbor dependency with cbor4ii.
See PR 4187.Remove deprecated RequestResponse prefixed items. See [PR 3702].
Add request_response::json::Behaviour and request_response::cbor::Behaviour building on top of the serde traits.
To conveniently construct these, we remove the Codec parameter from Behaviour::new and add Behaviour::with_codec.
See PR 3952.
Raise MSRV to 1.65. See PR 3715.
Remove deprecated RequestResponse prefixed items. See PR 3702.
Remove InboundFailure::UnsupportedProtocols and InboundFailure::InboundTimeout.
These variants are no longer constructed.
See PR 3605.
Don't close connections if individual streams fail. Log the error instead. See PR 3913.
Deprecate handler, codec modules to make them private. See [PR 3847].
handler, codec modules to make them private. See PR 3847.Rename types as per [discussion 2174]. RequestResponse has been renamed to Behaviour. The RequestResponse prefix has been removed from various types l
Update to libp2p-core v0.39.0.
Rename types as per discussion 2174.
RequestResponse has been renamed to Behaviour.
The RequestResponse prefix has been removed from various types like RequestResponseEvent.
Users should prefer importing the request_response protocol as a module (use libp2p::request_response;),
and refer to its types via request_response::. For example: request_response::Behaviour or request_response::Event.
See PR 3159.
Update to libp2p-swarm v0.42.0.
Update to libp2p-swarm v0.41.0.
Update to libp2p-core v0.38.0.
Update to libp2p-swarm v0.41.0.
Replace RequestResponse's NetworkBehaviour implementation inject_* methods with the new on_* methods.
See PR 3011.
Replace RequestResponseHandler's ConnectionHandler implementation inject_* methods
with the new on_* methods. See PR 3085.
Update rust-version to reflect the actual MSRV: 1.62.0. See PR 3090.
Nothing published for this version
Update to libp2p-swarm v0.39.0.
Update to libp2p-swarm v0.39.0.
Update to libp2p-core v0.36.0.
Update to libp2p-swarm v0.38.0.
Update to libp2p-swarm v0.38.0.
Update to libp2p-core v0.35.0.
Update to libp2p-swarm v0.37.0.
Update to libp2p-core v0.34.0.
Update to libp2p-swarm v0.37.0.
Update to libp2p-swarm v0.36.0.
Update to libp2p-core v0.33.0.
Update to libp2p-swarm v0.36.0.
Update to libp2p-swarm v0.35.0.
libp2p-swarm v0.35.0.Update to libp2p-swarm v0.34.0.
Update to libp2p-core v0.32.0.
Update to libp2p-swarm v0.34.0.
Merge NetworkBehaviour's inject_* paired methods (see PR 2445).
Remove unused lru crate (see [PR 2358]).
Nothing published for this version
Use instant instead of wasm-timer (see [PR 2245]).
Use instant instead of wasm-timer (see PR 2245).
Update dependencies.
Make default features of libp2p-core optional. PR 2181
Nothing published for this version
- Update dependencies.
Implement std::Error for InboundFailure and OutboundFailure PR 2033.
libp2p-swarm.std::error::Error for InboundFailure and OutboundFailure PR
2033.Close stream even when no response has been sent. PR 1987.
Update libp2p-swarm.
Close stream even when no response has been sent. PR 1987.
Update dependencies.
Make is_pending_outbound return true on pending connection. PR 1928.
Make is_pending_outbound return true on pending connection.
PR 1928.
Update dependencies.
Re-export throttled-specific response channel. PR 1902.
Update dependencies.
Re-export throttled-specific response channel. PR
1902.
Update libp2p-swarm and libp2p-core.
Refine emitted events for inbound requests, introducing the ResponseSent event and the ResponseOmission inbound failures. This effectively removes pre
ResponseSent event and the ResponseOmission
inbound failures. This effectively removes previous
support for one-way protocols without responses.
PR 1867.Update libp2p-swarm and libp2p-core.
libp2p-swarm and libp2p-core.- Update dependencies.
- Update dependencies.
Add support for opt-in request-based flow-control to any request-response protocol via RequestResponse::throttled(). PR 1726.
Add support for opt-in request-based flow-control to any
request-response protocol via RequestResponse::throttled().
PR 1726.
Update libp2p-swarm and libp2p-core.
Fixed connection keep-alive, permitting connections to close due to inactivity.
libp2p-core and libp2p-swarm dependencies.Always properly close() the substream after sending requests and responses in the InboundUpgrade and OutboundUpgrade. Otherwise this is left to Reques
close() the substream after sending requests and
responses in the InboundUpgrade and OutboundUpgrade. Otherwise this is
left to RequestResponseCodec::write_request and RequestResponseCodec::write_response,
which can be a pitfall and lead to subtle problems (see e.g.
https://github.com/libp2p/rust-libp2p/pull/1606).- Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →