libp2p-gossipsub
Gossipsub protocol for libp2p
0.49.5
8.1M downloads/mo
#3497 most downloaded on crates.io
libp2p/rust-libp2p
What this package is like to depend on
Last release 1 months ago
21 Jul 2026
Release timing varies
gaps range from 2 weeks to 8 months
Most releases are documented
notes for 45 of 52 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
53 releases · first in 2020
3 releases in the last 12 months
see the full history below
Release timeline
53 releases · Jan 2020 to Jul 2026Releases
latest 53-
0.49.521 Jul 2026Release notes
Open source →- Default
TopicSubscriptionFiltertoMaxCountSubscriptionFilter<AllowAllSubscriptionFilter>with caps of 2000 formax_subscribed_topicsandmax_subscriptions_per_request, capping per-peer subscription memory. Additionally, discard GRAFT control messages for topics the peer has not previously SUBSCRIBEd to, while still applying the existing backoff-violation scoring penalty where applicable. See GHSA-g3g5-x568-qvqx
- Default
-
0.49.426 Mar 2026 -
0.49.309 Mar 2026 -
0.49.205 Aug 2025Release notes
Open source →- Relax
Behaviour::with_metricsrequirements, do not require DataTransform and TopicSubscriptionFilter to also impl Default See PR XXXX
- Relax
-
0.49.105 Aug 2025 -
0.49.027 Jun 2025Release notes
Open source →-
Feature gate metrics related code. This changes some
Behaviourconstructor methods. See PR 6020 -
Send IDONTWANT before Publishing a new message. See PR 6017
-
Improve log messaging by renaming
messagetomessage_id. This change makes it log coherent to the field and also improve duplication ofmessagefield. See PR 5972 -
Fix a race condition for messages published which are already in the network. See PR 5928
-
Improve error messaging by renaming
PublishError::InsufficientPeerstoPublishError::NoPeersSubscribedToTopic. This change makes it clearer that the error occurs specifically when trying to publish to a topic with no subscribed peers, rather than a general peer availability issue. See PR 5912 -
Allow whitelisting topics for metrics to ensure metrics are recorded correctly for these topics. See PR 5895
-
Improve
max_messages_per_rpcconsistency by ensuring RPC control messages also adhere to the existing limits. See PR 5826 -
Respect already received IDONTWANT messages when handling IWANT. See PR 5901
-
Fix messages were not forwarded to floodsub peers. See PR 5908
-
Fix messages were published to all floodsub peers regardless of their topic. See PR 5904
-
Upgrade
prometheus-clienttov0.23See PR 5960. -
Allow customizing max transmit size and mesh-n-* parameters per topic. See PR 5868
<!-- Update to libp2p-swarm v0.47.0 -->
-
-
0.48.014 Jan 2025Release notes
Open source →-
Allow broadcasting
IDONTWANTmessages when publishing to avoid downloading data that is already available. See PR 5773 -
Add configurable
idontwant_message_size_thresholdparameter. See PR 5770 -
Correct state inconsistencies with the mesh and fanout when unsubscribing. See PR 5690
-
Deprecate
futures-tickerand usefutures-timerinstead. See PR 5674. -
Apply
max_transmit_sizeto the inner message instead of the final payload. See PR 5642. -
Deprecate
voidcrate. See PR 5676. -
Attempt to publish to at least mesh_n peers when flood publish is disabled. See PR 5578.
-
Introduce back pressure and penalize slow peers. Drop stale messages that timeout before being delivered. See PR 5595.
-
Change
Behaviour::unsubscribeandBehaviour::report_message_validation_resulttoboolthey don't need to be aResult. See PR 5595. -
Fix
cargo clippywarnings inrustc 1.84.0-beta.1. See PR 5700. -
Fix an issue where an
InsufficientPeerserror could occur under certain conditions, despite having peers subscribed to a topic. See PR 5793.
<!-- Update to libp2p-core v0.43.0 -->
-
-
0.47.009 Aug 2024Release notes
Open source →<!-- Update to libp2p-swarm v0.45.0 -->
- Add ConnectionError to FromSwarm::ConnectionClosed. See PR 5485.
-
0.46.109 Dec 2023Release notes
Open source →- Deprecate
Rpcin preparation for removing it from the public API because it is an internal type. See PR 4833.
- Deprecate
-
0.46.005 Nov 2023Release notes
Open source →- Remove
fast_message_id_fnmechanism fromConfig. See PR 4285. - Remove deprecated
gossipsub::Config::idle_timeoutin favor ofSwarmBuilder::idle_connection_timeout. See PR 4642. - Return typed error from config builder. See PR 4445.
- Process outbound stream before inbound stream in
EnabledHandler::poll(..). See PR 4778.
- Remove
-
0.45.218 Oct 2023Release notes
Open source →- Deprecate
gossipsub::Config::idle_timeoutin favor ofSwarmBuilder::idle_connection_timeout. See PR 4648.
<!-- Internal changes:
- Allow new clippy lint.
-->
<!-- Internal changes
- Allow deprecated usage of
KeepAlive::Until
-->
- Deprecate
-
0.45.111 Aug 2023 -
0.45.020 Jun 2023 -
0.44.401 May 2023 -
0.44.312 Apr 2023 -
0.44.229 Mar 2023Release notes
Open source →- Signed messages now use sequential integers in the sequence number field. See PR 3551.
-
0.44.112 Mar 2023Release notes
Open source →- Migrate from
prosttoquick-protobuf. This removesprotocdependency. See PR 3312.
- Migrate from
-
0.44.024 Feb 2023Release notes
Open source →-
Update to
prometheus-clientv0.19.0. See PR 3207. -
Update to
libp2p-corev0.39.0. -
Update to
libp2p-swarmv0.42.0. -
Initialize
ProtocolConfigviaGossipsubConfig. See PR 3381. -
Rename types as per discussion 2174.
Gossipsubhas been renamed toBehaviour. TheGossipsubprefix has been removed from various types likeGossipsubConfigorGossipsubMessage. It is preferred to import the gossipsub protocol as a module (use libp2p::gossipsub;), and refer to its types viagossipsub::. For example:gossipsub::Behaviourorgossipsub::RawMessage. See PR 3303.
-
-
0.43.025 Nov 2022Release notes
Open source →-
Update to
libp2p-corev0.38.0. -
Update to
libp2p-swarmv0.41.0. -
Update to
prost-codecv0.3.0. -
Refactoring GossipsubCodec to use common protobuf Codec. See PR 3070.
-
Replace
Gossipsub'sNetworkBehaviourimplementationinject_*methods with the newon_*methods. See PR 3011. -
Replace
GossipsubHandler'sConnectionHandlerimplementationinject_*methods with the newon_*methods. See PR 3085. -
Update
rust-versionto reflect the actual MSRV: 1.62.0. See PR 3090.
-
-
0.42.114 Oct 2022Nothing published for this version
-
0.41.007 Sep 2022Release notes
Open source →-
Update to
libp2p-swarmv0.39.0. -
Update to
libp2p-corev0.36.0. -
Allow publishing with any
impl Into<TopicHash>as a topic. See PR 2862.
-
-
0.40.022 Aug 2022 -
0.39.005 Jul 2022Release notes
Open source →-
Update to
libp2p-corev0.34.0. -
Update to
libp2p-swarmv0.37.0. -
Allow for custom protocol ID via
GossipsubConfigBuilder::protocol_id(). See PR 2718.
-
-
0.38.114 Jun 2022 -
0.38.031 May 2022 -
0.37.004 Apr 2022 -
0.36.022 Feb 2022Release notes
Open source →-
Update to
libp2p-corev0.32.0. -
Update to
libp2p-swarmv0.34.0. -
Move from
open-metrics-clienttoprometheus-client(see PR 2442). -
Emit gossip of all non-empty topics (see PR 2481).
-
Merge NetworkBehaviour's inject_* paired methods (see PR 2445).
-
Revert to wasm-timer (see PR 2506).
-
Do not overwrite msg's peers if put again into mcache (see PR 2493).
-
-
0.35.027 Jan 2022Release notes
Open source →-
Update dependencies.
-
Migrate to Rust edition 2021 (see PR 2339).
-
Add metrics for network and configuration performance analysis (see PR 2346).
-
Improve bandwidth performance by tracking IWANTs and reducing duplicate sends (see PR 2327).
-
Implement
SerializeandDeserializeforMessageIdandFastMessageId(see PR 2408) -
Fix
GossipsubConfigBuilder::build()requiring&selfto live for'static(see PR 2409) -
Implement Unsubscribe backoff as per libp2p specs PR 383 (see PR 2403).
-
-
0.34.016 Nov 2021 -
0.33.001 Nov 2021Release notes
Open source →-
Add an event to register peers that do not support the gossipsub protocol PR 2241
-
Make default features of
libp2p-coreoptional. PR 2181 -
Improve internal peer tracking. PR 2175
-
Update dependencies.
-
Allow
message_id_fns to accept closures that capture variables. PR 2103 -
Implement std::error::Error for error types. PR 2254
-
-
0.33.0-rc.115 Oct 2021 pre-releaseNothing published for this version
-
0.32.012 Jul 2021Release notes
Open source →-
Update dependencies.
-
Reduce log levels across the crate to lessen noisiness of libp2p-gossipsub (see PR 2101).
-
-
0.31.017 May 2021Release notes
Open source →- Keep connections to peers in a mesh alive. Allow closing idle connections to peers not in a mesh PR-2043.
-
0.30.127 Apr 2021Release notes
Open source →- Remove
regex-filterfeature flag thus always enablingregex::RegexSubscriptionFilterPR 2056.
- Remove
-
0.30.013 Apr 2021 -
0.29.017 Mar 2021 -
0.28.015 Feb 2021Release notes
Open source →-
Prevent non-published messages being added to caches. PR 1930
-
Update dependencies.
-
-
0.27.012 Jan 2021 -
0.26.018 Dec 2020 -
0.25.025 Nov 2020 -
0.24.009 Nov 2020 -
0.23.016 Oct 2020 -
0.22.009 Sep 2020 -
0.21.018 Aug 2020 -
0.20.001 Jul 2020 -
0.19.323 Jun 2020 -
0.19.222 Jun 2020 -
0.19.125 May 2020Nothing published for this version
-
0.19.018 May 2020Nothing published for this version
-
0.18.009 Apr 2020Nothing published for this version
-
0.17.001 Apr 2020Nothing published for this version
-
0.16.014 Feb 2020Nothing published for this version
-
0.15.024 Jan 2020Nothing published for this version