NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2321 most downloaded on crates.io
Peer-to-peer networking library
Last release 26 days ago
11 Sep 2026
Release timing varies
gaps range from 9 days to 1.2 years
Nearly every release is documented
notes for 55 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
8 years old
105 releases · first in 2018
See individual changelogs for details.
Remove deprecated Transport::with_bandwidth_logging, SwarmBuilder::with_bandwidth_logging and TransportExt. See PR 5766.
One column per quarter.
Remove async-std support.
See PR 6074
Remove deprecated Transport::with_bandwidth_logging,
SwarmBuilder::with_bandwidth_logging and TransportExt.
See PR 5766.
Introduce libp2p-webrtc-websys behind webrtc-websys feature flag.
See PR 5819.
Introduce libp2p-peer-store.
See PR 5724.
Make the *-websys variants (libp2p-webrtc-websys, libp2p-websocket-websys, libp2p-webtransport-websys) only available on wasm32 target architecture.
See PR 5891.
Remove TCP from the async-std swarm builder, as async-std support was removed from libp2p-tcp transport.
See PR 5955
Remove QUIC from the async-std swarm builder, as async-std support was removed from libp2p-quic transport.
See PR 5954
Remove DNS from the async-std swarm builder, as async-std support was removed from libp2p-dns transport.
See PR 5959
Deprecate void crate. See PR 5676.
Raise MSRV to 1.83.0. See PR 5650.
Add with_connection_timeout on SwarmBuilder to allow configuration of the connection_timeout parameter.
See PR 5575.
Deprecate void crate.
See PR 5676.
Update default for idle-connection-timeout to 10s. See PR 4967.
Expose swarm builder phase errors. See PR 5726.
Deprecate ConnectionHandler::{InboundOpenInfo, OutboundOpenInfo} associated type.
Previously, users could tag pending sub streams with custom data and retrieve the data
after the substream has been negotiated.
But substreams themselves are completely interchangeable, users should instead track
additional data inside ConnectionHandler after negotiation.
See PR 5242.
<!-- Update to libp2p-core v0.43.0 -->
Update to `libp2p-metrics` `0.15.0`.
libp2p-metrics 0.15.0.Update to `libp2p-kad` `v0.46.0`.
Update individual crates.
libp2p-kad v0.46.0.libp2p-identify v0.45.0.Raise MSRV to 1.73. See PR 5266.
Implement refactored Transport.
See PR 4568.
Move address_translation from libp2p-core to libp2p-swarm and libp2p-identify. To now get
address translation behaviour, i.e. discovery of extern address (candidates) based on connecting
to other peers, one needs to use libp2p-identify now. This pertains to you if your nodes can be
behind NATs and they aren't aware of their true external address.
See PR 4568.
Use web-time instead of instant.
See PR 5347.
Remove redundant async signature from builder methods. See PR 5468.
Allow SwarmBuilder::with_bandwidth_metrics after SwarmBuilder::with_websocket. See PR 4937.
SwarmBuilder::with_bandwidth_metrics after SwarmBuilder::with_websocket.
See PR 4937.Allow SwarmBuilder::with_quic_config to be called without with_tcp first. See PR 4821.
Remove deprecated libp2p-wasm-ext. Users should use libp2p-websocket-websys instead. See PR 4694.
libp2p-wasm-ext.
Users should use libp2p-websocket-websys instead.
See PR 4694.libp2p-deflate.
See issue 4522 for details.
See PR 4729.development_transport.
Use libp2p::SwarmBuilder instead.
See PR 4732.SwarmBuilder::with_bandwidth_metrics exposing Prometheus bandwidth metrics per transport protocol stack and direction (in-/ outbound).
Deprecate Transport::with_bandwidth_logging and SwarmBuilder::with_bandwidth_logging in favor of the new SwarmBuilder::with_bandwidth_metrics.
See PR 4727.This supersedes the existing libp2p::wasm_ext module which is now deprecated. See [PR 3679].
Introduce libp2p::websocket_websys module behind websocket-websys feature flag.
This supersedes the existing libp2p::wasm_ext module which is now deprecated.
See PR 3679.
Introduce a new libp2p::SwarmBuilder in favor of the now deprecated libp2p::swarm::SwarmBuilder.
See libp2p::SwarmBuilder docs on how to use the new builder.
Also see PR 4120.
Update libp2p-identity version to 0.2.6.
Under the hood, we feature-flagged libp2p-identity's rand dependency but it is enabled by default when using libp2p.
See PR 4349.
Add libp2p-quic stable release.
libp2p-quic stable release.Include gossipsub when compiling for wasm. See [PR 4217].
Add libp2p-webtransport-websys providing WebTransport for WASM environments. See [PR 4015].
libp2p-webtransport-websys providing WebTransport for WASM environments.
See PR 4015.Remove deprecated mplex module. You can still depend on libp2p-mplex directly but we strongly encourage to migrate to yamux. This also removes mplex f…
Raise MSRV to 1.65. See PR 3715.
Protocol names are now required to be valid UTF8 strings.
We delete the ProtocolName trait from libp2p::core and replace it with a requirement for AsRef<str>.
At the same time, we introduce StreamProtocol, a newtype in libp2p::swarm.
This newtype enforces additional variants like a leading forward-slash.
We encourage users to use StreamProtocol when implementing UpgradeInfo.
See PR 3746.
Rename NetworkBehaviour::OutEvent to NetworkBehaviour::ToSwarm, ConnectionHandler::InEvent to ConnectionHandler::FromBehaviour, ConnectionHandler::OutEvent to ConnectionHandler::ToBehaviour. See PR 3848.
Remove deprecated mplex module.
You can still depend on libp2p-mplex directly but we strongly encourage to migrate to yamux.
This also removes mplex from the development_transport and tokio_development_transport functions.
See PR 3920.
Remove libp2p-perf protocol. To use libp2p-perf one needs to import it directly.
See PR 3990.
Remove libp2p-quic and libp2p-webrtc protocols.
These are in alpha status and should be depended on directly.
See PR 4041.
Nothing published for this version
Deprecate the mplex feature. The recommended baseline stream multiplexer is yamux. See [PR 3689].
mplex feature.
The recommended baseline stream multiplexer is yamux.
See PR 3689.Deprecate the quic and webrtc feature. These two crates are only in alpha state. To properly communicate this to users, we want them to add the depend…
Introduce libp2p::connection_limits module.
See PR 3386.
Deprecate the quic and webrtc feature.
These two crates are only in alpha state.
To properly communicate this to users, we want them to add the dependency directly which makes the alpha version visible.
See PR 3580.
Introduce libp2p::allow_block_list module and deprecate libp2p::Swarm::ban_peer_id.
See PR 3590.
Introduce libp2p::perf module.
See PR 3693.
Introduce ed25519 feature. For backwards-compatibility, the ed25519 identity keys are still available without activating this feature. However, going
Depend on libp2p-tls v0.1.0.
Introduce ed25519 feature.
For backwards-compatibility, the ed25519 identity keys are still available without activating this feature.
However, going forward, you should explicitly activate it to avoid compile errors going forward.
See PR 3350.
Enable NetworkBehaviours to manage connections. This deprecates NetworkBehaviour::new_handler and NetworkBehaviour::addresses_of_peer. Due to limitati…
Enable NetworkBehaviours to manage connections.
This deprecates NetworkBehaviour::new_handler and NetworkBehaviour::addresses_of_peer.
Due to limitations in the Rust compiler, these deprecations may not show up for you, nevertheless they will be removed in a future release.
See libp2p-swarm's CHANGELOG for details.
Count bandwidth at the application level. Previously BandwidthLogging would implement Transport and now implements StreamMuxer (PR 3180).
BandwidthLogging::new now requires a 2nd argument: Arc<BandwidthSinks>BandwidthFutureBandwidthConnecLogging to InstrumentedStreamRemove SimpleProtocol due to being unused. See libp2p::core::upgrade for alternatives. See PR 3191.
Bump MSRV to 1.65.0.
Update individual crates.
Update to libp2p-dcutr v0.9.0.
Update to libp2p-ping v0.42.0.
Update to libp2p-request-response v0.24.0.
Update to libp2p-kad v0.43.0.
Update to libp2p-floodsub v0.42.0.
Update to libp2p-autonat v0.10.0.
Update to libp2p-relay v0.15.0.
Update to libp2p-identify v0.42.0.
Update to libp2p-rendezvous v0.12.0.
Update to libp2p-metrics v0.12.0.
Update to libp2p-swarm v0.42.0.
Update to libp2p-mdns v0.43.0.
Update to libp2p-gossipsub v0.44.0.
Update to libp2p-yamux v0.43.0.
Update to libp2p-mplex v0.39.0.
Update to libp2p-wasm-ext v0.39.0.
Update to libp2p-plaintext v0.39.0.
Update to libp2p-noise v0.42.0.
Update to libp2p-core v0.39.0.
Nothing published for this version
Remove deprecated features: tcp-tokio, mdns-tokio, dns-tokio, tcp-async-io, mdns-async-io, dns-async-std. See [PR 3001].
This is a large release. After > 4 years, rust-libp2p ships with an (alpha) QUIC implementation. The necessary TLS logic is extracted into its own crate, and can thus be used detached from QUIC, e.g. on top of TCP as an alternative to Noise. In addition to these two transports, this release adds a third, namely WebRTC (browser-to-server). But that is definitely not it. See below for the many other changes packed into this release.
libp2p-tls v0.1.0-alpha. See PR 2945.libp2p-quic v0.7.0-alpha. See PR 2289.libp2p-webrtc v0.4.0-alpha. See PR 2289.tcp-tokio, mdns-tokio, dns-tokio, tcp-async-io, mdns-async-io, dns-async-std.
See PR 3001.NetworkBehaviour macro export from root crate in favor of re-exported macro from libp2p::swarm.
Change your import from libp2p::NetworkBehaviour to libp2p::swarm::NetworkBehaviour. See PR 3055.NetworkBehaviour macro behind macros feature flag. See PR 3055.libp2p-autonat v0.89.0.libp2p-core v0.38.0.libp2p-dcutr v0.8.0.libp2p-deflate v0.38.0.libp2p-dns v0.38.0.libp2p-floodsub v0.41.0.libp2p-gossipsub v0.43.0.libp2p-identify v0.41.0.libp2p-kad v0.42.0.libp2p-mdns v0.42.0.libp2p-metrics v0.11.0.libp2p-mplex v0.38.0.libp2p-noise v0.41.0.libp2p-ping v0.41.0.libp2p-plaintext v0.38.0.libp2p-pnet v0.22.2.libp2p-relay v0.14.0.libp2p-rendezvous v0.11.0.libp2p-request-response v0.23.0.libp2p-swarm v0.41.0.libp2p-tcp v0.38.0.libp2p-uds v0.37.0.libp2p-wasm-ext v0.38.0.libp2p-websocket v0.40.0.libp2p-yamux v0.42.0.Introduce tokio and async-std features and deprecate the following ones:
Remove default features. You need to enable required features explicitly now. As a quick workaround, you may want to use the
new full feature which activates all features. See PR 2918.
Introduce tokio and async-std features and deprecate the following ones:
tcp-tokio in favor of tcp + tokiomdns-tokio in favor of mdns + tokiodns-tokio in favor of dns + tokiotcp-async-io in favor of tcp + async-stdmdns-async-io in favor of mdns + async-stddns-async-std in favor of dns + async-stdSee PR 2962.
Update individual crates.
libp2p-autonat v0.8.0.libp2p-core v0.37.0.libp2p-dcutr v0.7.0.libp2p-deflate v0.37.0.libp2p-dns v0.37.0.libp2p-floodsub v0.40.0.libp2p-gossipsub v0.42.0.libp2p-identify v0.40.0.libp2p-kad v0.41.0.libp2p-mdns v0.41.0.libp2p-metrics v0.10.0.libp2p-mplex v0.37.0.libp2p-noise v0.40.0.libp2p-ping v0.40.0.libp2p-plaintext v0.37.0.libp2p-relay v0.13.0.libp2p-rendezvous v0.10.0.libp2p-request-response v0.22.0.libp2p-swarm-derive v0.30.1.libp2p-swarm v0.40.0.libp2p-tcp v0.37.0.libp2p-uds v0.36.0.libp2p-wasm-ext v0.37.0.libp2p-websocket v0.39.0.libp2p-yamux v0.41.0.Update to `libp2p-core` `v0.36.0`.
Update to libp2p-core v0.36.0.
Update to libp2p-swarm-derive v0.30.0.
Update to libp2p-dcutr v0.6.0.
Update to libp2p-rendezvous v0.9.0.
Update to libp2p-ping v0.39.0.
Update to libp2p-identify v0.39.0.
Update to libp2p-floodsub v0.39.0.
Update to libp2p-relay v0.12.0.
Update to libp2p-metrics v0.9.0.
Update to libp2p-kad v0.40.0.
Update to libp2p-autonat v0.7.0.
Update to libp2p-request-response v0.21.0.
Update to `libp2p-dcutr` `v0.5.0`.
Update to libp2p-dcutr v0.5.0.
Update to libp2p-derive v0.29.0.
Update to libp2p-rendezvous v0.8.0.
Update to libp2p-ping v0.38.0.
Update to libp2p-identify v0.38.0.
Update to libp2p-floodsub v0.38.0.
Update to libp2p-relay v0.11.0.
Update to libp2p-metrics v0.8.0.
Update to libp2p-kad v0.39.0.
Update to libp2p-autonat v0.6.0.
Update to libp2p-request-response v0.20.0.
Update to libp2p-swarm v0.38.0.
Update to libp2p-derive `v0.28.0`.
libp2p-derive v0.28.0.Semver bump Rust from 1.56.1 to 1.60.0 . See [PR 2646].
1.56.1 to 1.60.0 . See PR 2646.libp2p-autonat v0.5.0.libp2p-core v0.34.0.libp2p-dcutr v0.4.0.libp2p-floodsub v0.37.0.libp2p-identify v0.37.0.libp2p-kad v0.38.0.libp2p-metrics v0.7.0.libp2p-mplex v0.34.0.libp2p-noise v0.37.0.libp2p-ping v0.37.0.libp2p-plaintext v0.34.0.libp2p-relay v0.10.0.libp2p-rendezvous v0.7.0.libp2p-request-response v0.19.0.libp2p-swarm v0.37.0.libp2p-wasm-ext v0.34.0.libp2p-yamux v0.38.0.libp2p-uds v0.33.0.Update to `libp2p-dcutr` `v0.3.1`.
libp2p-dcutr v0.3.1.libp2p-identify v0.36.1.libp2p-kad v0.37.1.libp2p-relay v0.9.1.libp2p-swarm v0.36.1.Update to `libp2p-plaintext` `v0.33.0`.
libp2p-plaintext v0.33.0.libp2p-noise v0.36.0.libp2p-wasm-ext v0.33.0.libp2p-yamux v0.37.0.libp2p-mplex v0.33.0.libp2p-dcutr v0.3.0.libp2p-rendezvous v0.6.0.libp2p-ping v0.36.0.libp2p-identify v0.36.0.libp2p-floodsub v0.36.0.libp2p-relay v0.9.0.libp2p-metrics v0.6.0.libp2p-kad v0.37.0.libp2p-autonat v0.4.0.libp2p-request-response v0.18.0.libp2p-swarm v0.36.0.libp2p-core v0.33.0.Update to `libp2p-dcutr` `v0.2.0`.
libp2p-dcutr v0.2.0.libp2p-dns v0.32.1.libp2p-rendezvous v0.5.0.libp2p-ping v0.35.0.libp2p-identify v0.35.0.libp2p-floodsub v0.35.0.libp2p-relay v0.8.0.libp2p-metrics v0.5.0.libp2p-kad v0.36.0.libp2p-autonat v0.3.0.libp2p-request-response v0.17.0.libp2p-swarm v0.35.0.Update to libp2p-autonat `v0.2.0`.
Update individual crates.
libp2p-autonat v0.2.0.libp2p-core v0.32.0.libp2p-deflate v0.32.0.libp2p-dns v0.32.0.libp2p-floodsub v0.34.0.libp2p-gossipsub v0.36.0.libp2p-identify v0.34.0.libp2p-kad v0.35.0.libp2p-mdns v0.35.0.libp2p-metrics v0.4.0.libp2p-mplex v0.32.0.libp2p-noise v0.35.0.libp2p-ping v0.34.0.libp2p-plaintext v0.32.0.libp2p-relay v0.7.0.libp2p-rendezvous v0.4.0.libp2p-request-response v0.16.0.libp2p-swarm v0.34.0.libp2p-derive v0.27.0.libp2p-tcp v0.32.0.libp2p-uds v0.32.0.libp2p-wasm-ext v0.32.0.libp2p-websocket v0.34.0.libp2p-yamux v0.36.0.Update to parking_lot v0.12.0. See PR 2463.
Drop support for gossipsub in the wasm32-unknown-unknown target (see PR 2506).
Nothing published for this version
- Update individual crates. - libp2p-relay - v0.6.1 - libp2p-tcp - v0.31.1
libp2p-mdns (breaking compatibility with previous versions)
Update individual crates.
libp2p-autonat
libp2p-core
libp2p-deflate
libp2p-dns
libp2p-floodsub
libp2p-gossipsub
libp2p-identify
libp2p-kad
libp2p-mdns (breaking compatibility with previous versions)
libp2p-metrics
libp2p-mplex
libp2p-noise
libp2p-ping
libp2p-plaintext
libp2p-relay
libp2p-rendezvous
libp2p-request-response
libp2p-swarm-derive
libp2p-swarm
libp2p-tcp
libp2p-uds
libp2p-wasm-ext
libp2p-websocket
libp2p-yamux
Migrate to Rust edition 2021 (see PR 2339).
Nothing published for this version
Nothing published for this version
Forward wasm-bindgen feature to futures-timer, instant, parking_lot, getrandom/js and rand/wasm-bindgen.
libp2p-floodsublibp2p-gossipsublibp2p-identifylibp2p-kadlibp2p-mdnslibp2p-metricslibp2p-pinglibp2p-relaylibp2p-rendezvouslibp2p-request-responselibp2p-swarm-derivelibp2p-swarmlibp2p-websocketwasm-bindgen feature to futures-timer, instant, parking_lot, getrandom/js and rand/wasm-bindgen.Re-export the wasm-bindgen feature from parking_lot, so libp2p users can opt-in to that crate's Wasm support. See [PR 2180].
Update individual crates.
libp2p-corelibp2p-deflatelibp2p-dnslibp2p-floodsublibp2p-gossipsublibp2p-identifylibp2p-kadlibp2p-mdnslibp2p-mplexlibp2p-noiselibp2p-pinglibp2p-plaintextlibp2p-relaylibp2p-request-responselibp2p-swarmlibp2p-tcplibp2p-udslibp2p-wasm-extlibp2p-websocketlibp2p-yamuxRe-export the wasm-bindgen feature from parking_lot, so
libp2p users can opt-in to that crate's Wasm support. See PR 2180.
Add libp2p-metrics.
Nothing published for this version
Nothing published for this version
Nothing published for this version
- Update individual crates. - libp2p-swarm-derive
libp2p-swarm-derive- Update individual crates. - libp2p-core - libp2p-deflate - libp2p-dns - libp2p-floodsub - libp2p-gossipsub - libp2p-identify - libp2p-kad - libp2p-m
libp2p-corelibp2p-deflatelibp2p-dnslibp2p-floodsublibp2p-gossipsublibp2p-identifylibp2p-kadlibp2p-mdnslibp2p-mplexlibp2p-noiselibp2p-pinglibp2p-plaintextlibp2p-relaylibp2p-request-responselibp2p-swarmlibp2p-tcplibp2p-udslibp2p-wasm-extlibp2p-websocketlibp2p-yamux- Update individual crates. - libp2p-core - libp2p-gossipsub - libp2p-noise - libp2p-pnet - libp2p-wasm-ext
libp2p-corelibp2p-gossipsublibp2p-noiselibp2p-pnetlibp2p-wasm-ext- Update individual crates. - libp2p-swarm-derive
libp2p-swarm-deriveDrop support for wasm32-unknown-unknown in favor of wasm32-unknown-emscripten and wasm32-wasi PR 2038.
Update individual crates.
libp2p-corelibp2p-dnslibp2p-floodsublibp2p-gossipsublibp2p-kadlibp2p-mdnslibp2p-pinglibp2p-relaylibp2p-request-responselibp2p-swarmlibp2p-wasm-extlibp2p-yamuxDrop support for wasm32-unknown-unknown in favor of
wasm32-unknown-emscripten and wasm32-wasi PR
2038.
Consolidate top-level utility functions for constructing development transports. There is now just development_transport() (available with default fea
Consolidate top-level utility functions for constructing development
transports. There is now just development_transport() (available with default features)
and tokio_development_transport() (available when the corresponding tokio features are enabled).
Furthermore, these are now async fns. The minor variations that also included pnet
support have been removed.
PR 1927
Update libp2p crates.
Do not leak default features from libp2p crates. PR 1986.
Add libp2p-relay to libp2p facade crate.
Update libp2p-yamux to latest patch version.
libp2p-yamux to latest patch version.Use libp2p-swarm-derive, the former libp2p-core-derive.
Use libp2p-swarm-derive, the former libp2p-core-derive.
Update libp2p-deflate, libp2p-gossipsub, libp2p-mdns, libp2p-request-response,
libp2p-swarm and libp2p-tcp.
Update libp2p-core and all dependent crates.
Update libp2p-core and all dependent crates.
The tcp-async-std feature is now tcp-async-io, still
enabled by default.
Update libp2p-core and all dependent crates.
libp2p-core and all dependent crates.- Update libp2p-websocket.
libp2p-websocket.Update minimum patch version of libp2p-websocket.
libp2p-websocket.Update libp2p-request-response.
Update libp2p-request-response.
Update to libp2p-mdns-0.26.
Update libp2p-websocket minimum patch version.
Bump minimum libp2p-core patch version.
libp2p-core patch version.Bump minimum libp2p-tcp patch version.
libp2p-tcp patch version.Update multistream-select and all dependent crates.
multistream-select and all dependent crates.- Update libp2p-plaintext.
libp2p-plaintext.Update libp2p-mdns, libp2p-tcp and libp2p-uds as well as libp2p-core and all its dependers.
libp2p-mdns, libp2p-tcp and libp2p-uds as well as libp2p-core
and all its dependers.- Update libp2p-core.
libp2p-core.Update libp2p-core, libp2p-floodsub, libp2p-gossipsub, libp2p-mplex, libp2p-noise, libp2p-plaintext, libp2p-pnet, libp2p-request-response, libp2p-swar
libp2p-core, libp2p-floodsub, libp2p-gossipsub, libp2p-mplex,
libp2p-noise, libp2p-plaintext, libp2p-pnet, libp2p-request-response,
libp2p-swarm, libp2p-tcp, libp2p-websocket and parity-multiaddr.- Update to libp2p-core 0.22.1.
libp2p-core 0.22.1.Your coding agent can read these notes before it upgrades. Set up the MCP server →