Download Latest Version kubo_v0.36.0_windows-amd64.zip (39.7 MB)
Email in envelope

Get an email when there's a new version of IPFS

Home / v0.36.0
Name Modified Size InfoDownloads / Week
Parent folder
kubo_v0.36.0_windows-arm64.zip.cid 2025-07-14 47 Bytes
kubo_v0.36.0_windows-arm64.zip.sha512 2025-07-14 161 Bytes
kubo_v0.36.0_windows-arm64.zip 2025-07-14 36.8 MB
kubo_v0.36.0_windows-amd64.zip.cid 2025-07-14 47 Bytes
kubo_v0.36.0_windows-amd64.zip.sha512 2025-07-14 161 Bytes
kubo_v0.36.0_windows-amd64.zip 2025-07-14 39.7 MB
kubo_v0.36.0_openbsd-amd64.tar.gz.cid 2025-07-14 47 Bytes
kubo_v0.36.0_openbsd-amd64.tar.gz.sha512 2025-07-14 164 Bytes
kubo_v0.36.0_openbsd-amd64.tar.gz 2025-07-14 39.3 MB
kubo_v0.36.0_linux-arm64.tar.gz.cid 2025-07-14 47 Bytes
kubo_v0.36.0_linux-arm64.tar.gz.sha512 2025-07-14 162 Bytes
kubo_v0.36.0_linux-arm64.tar.gz 2025-07-14 37.2 MB
kubo_v0.36.0_linux-amd64.tar.gz.cid 2025-07-14 47 Bytes
kubo_v0.36.0_linux-amd64.tar.gz.sha512 2025-07-14 162 Bytes
kubo_v0.36.0_linux-amd64.tar.gz 2025-07-14 51.5 MB
kubo_v0.36.0_freebsd-amd64.tar.gz.cid 2025-07-14 47 Bytes
kubo_v0.36.0_freebsd-amd64.tar.gz.sha512 2025-07-14 164 Bytes
kubo_v0.36.0_freebsd-amd64.tar.gz 2025-07-14 39.6 MB
kubo_v0.36.0_darwin-arm64.tar.gz.cid 2025-07-14 47 Bytes
kubo_v0.36.0_darwin-arm64.tar.gz.sha512 2025-07-14 163 Bytes
kubo_v0.36.0_darwin-arm64.tar.gz 2025-07-14 37.8 MB
kubo_v0.36.0_darwin-amd64.tar.gz.cid 2025-07-14 47 Bytes
kubo_v0.36.0_darwin-amd64.tar.gz.sha512 2025-07-14 163 Bytes
kubo_v0.36.0_darwin-amd64.tar.gz 2025-07-14 39.6 MB
kubo-source.tar.gz.cid 2025-07-14 47 Bytes
kubo-source.tar.gz.sha512 2025-07-14 149 Bytes
kubo-source.tar.gz 2025-07-14 18.7 MB
README.md 2025-07-14 34.1 kB
v0.36.0 source code.tar.gz 2025-07-14 4.0 MB
v0.36.0 source code.zip 2025-07-14 4.4 MB
Totals: 30 Items   348.7 MB 1

[!NOTE] This release was brought to you by the Shipyard team.

Overview

🔦 Highlights

HTTP Retrieval Client Now Enabled by Default

This release promotes the HTTP Retrieval client from an experimental feature to a standard feature that is enabled by default. When possible, Kubo will retrieve blocks over plain HTTPS (HTTP/2) without any extra user configuration.

See HTTPRetrieval for more details.

Bitswap Broadcast Reduction

The Bitswap client now supports broadcast reduction logic, which is enabled by default. This feature significantly reduces the number of broadcast messages sent to peers, resulting in lower bandwidth usage during load spikes.

The overall logic works by sending to non-local peers only if those peers have previously replied that they want data blocks. To minimize impact on existing workloads, by default, broadcasts are still always sent to peers on the local network, or the ones defined in Peering.Peers.

At Shipyard, we conducted A/B testing on our internal Kubo staging gateway with organic CID requests to ipfs.io. While these results may not exactly match your specific workload, the benefits proved significant enough to make this feature default. Here are the key findings:

  • Dramatic Resource Usage Reduction: Internal testing demonstrated a reduction in Bitswap broadcast messages by 80-98% and network bandwidth savings of 50-95%, with the greatest improvements occurring during high traffic and peer spikes. These efficiency gains lower operational costs of running Kubo under high load and improve the IPFS Mainnet (which is >80% Kubo-based) by reducing ambient traffic for all connected peers.
  • Improved Memory Stability: Memory stays stable even during major CID request spikes that increase peer count, preventing the out-of-memory (OOM) issues found in earlier Kubo versions.
  • Data Retrieval Performance Remains Strong: Our tests suggest that Kubo gateway hosts with broadcast reduction enabled achieve similar or better HTTP 200 success rates compared to version 0.35, while maintaining equivalent or higher want-have responses and unique blocks received.

For more information about our A/B tests, see kubo#10825.

To revert to the previous behavior for your own A/B testing, set Internal.Bitswap.BroadcastControl.Enable to false and monitor relevant metrics (ipfs_bitswap_bcast_skips_total, ipfs_bitswap_haves_received, ipfs_bitswap_unique_blocks_received, ipfs_bitswap_wanthaves_broadcast, HTTP 200 success rate).

For a description of the configuration items, see the documentation of Internal.Bitswap.BroadcastControl.

Update go-log to v2

go-log v2 has been out for quite a while now and it's time to deprecate v1.

  • Replace all use of go-log with go-log/v2
  • Makes /api/v0/log/tail useful over HTTP
  • Fixes ipfs log tail
  • Removes support for ContextWithLoggable as this is not needed for tracing-like functionality

Kubo now uses AutoNATv2 as a client

This Kubo release starts utilizing AutoNATv2 client functionality. go-libp2p v0.42 supports and depends on both AutoNATv1 and v2, and Autorelay feature continues to use v1. go-libp2p v0.43+ will discontinue internal use of AutoNATv1. We will maintain support for both v1 and v2 until then, though v1 will gradually be deprecated and ultimately removed.

Smarter AutoTLS registration

This update to libp2p and AutoTLS incorporates AutoNATv2 changes. It aims to reduce false-positive scenarios where AutoTLS certificate registration occurred before a publicly dialable multiaddr was available. This should result in fewer error logs during node start, especially when IPv6 and/or IPv4 NATs with UPnP/PCP/NAT-PMP are at play.

Overwrite option for files cp command

The ipfs files cp command has a --force option to allow it to overwrite existing files. Attempting to overwrite an existing directory results in an error.

Gateway now supports negative HTTP Range requests

The latest update to boxo/gateway adds support for negative HTTP Range requests, achieving gateway-conformance@v0.8 compatibility. This provides greater interoperability with generic HTTP-based tools. For example, WebRecorder's https://replayweb.page/ can now directly load website snapshots from Kubo-backed URLs.

Option for filestore command to remove bad blocks

The experimental filestore command has a new option, --remove-bad-blocks, to verify objects in the filestore and remove those that fail verification.

ConnMgr.SilencePeriod configuration setting exposed

This connection manager option controls how often connections are swept and potentially terminated. See the ConnMgr documentation.

Fix handling of EDITOR env var

The ipfs config edit command did not correctly handle the EDITOR environment variable when its value contains flags and arguments, i.e. EDITOR=emacs -nw. The command was treating the entire value of $EDITOR as the name of the editor command. This has been fixed to parse the value of $EDITOR into separate args, respecting shell quoting.

📦️ Important dependency updates

  • update go-libp2p to v0.42.0
  • update go-libp2p-kad-dht to v0.33.0
  • update boxo to v0.33.0 (incl. v0.32.0)
  • update gateway-conformance to v0.8
  • update p2p-forge/client to v0.6.0
  • update github.com/cockroachdb/pebble/v2 to v2.0.6 for Go 1.25 support

📝 Changelog

Full Changelog - github.com/ipfs/kubo: - chore: 0.36.0 - chore: update links in markdown - chore: 0.36.0-rc2 - feat(httpnet): gather metrics for allowlist - chore: changelog - test: TestEditorParsing - fix: handling of EDITOR env var (#10855) ([[ipfs/kubo#10855](https://github.com/ipfs/kubo/issues/10855)](https://github.com/ipfs/kubo/pull/10855)) - refactor: use slices.Sort where appropriate (#10858) ([[ipfs/kubo#10858](https://github.com/ipfs/kubo/issues/10858)](https://github.com/ipfs/kubo/pull/10858)) - Upgrade to Boxo v0.33.0 (#10857) ([[ipfs/kubo#10857](https://github.com/ipfs/kubo/issues/10857)](https://github.com/ipfs/kubo/pull/10857)) - chore: Upgrade github.com/cockroachdb/pebble/v2 to v2.0.6 for Go 1.25 support (#10850) ([[ipfs/kubo#10850](https://github.com/ipfs/kubo/issues/10850)](https://github.com/ipfs/kubo/pull/10850)) - core:constructor: add a log line about http retrieval - chore: p2p-forge v0.6.0 + go-libp2p 0.42.0 (#10840) ([[ipfs/kubo#10840](https://github.com/ipfs/kubo/issues/10840)](https://github.com/ipfs/kubo/pull/10840)) - docs: fix minor typos (#10849) ([[ipfs/kubo#10849](https://github.com/ipfs/kubo/issues/10849)](https://github.com/ipfs/kubo/pull/10849)) - Replace use of go-car v1 with go-car/v2 (#10845) ([[ipfs/kubo#10845](https://github.com/ipfs/kubo/issues/10845)](https://github.com/ipfs/kubo/pull/10845)) - chore: v0.36.0-rc1 - chore: deduplicate 0.36 changelog - feat(config): connmgr: expose silence period (#10827) ([[ipfs/kubo#10827](https://github.com/ipfs/kubo/issues/10827)](https://github.com/ipfs/kubo/pull/10827)) - bitswap/client: configurable broadcast reduction (#10825) ([[ipfs/kubo#10825](https://github.com/ipfs/kubo/issues/10825)](https://github.com/ipfs/kubo/pull/10825)) - Upgrade to Boxo v0.32.0 (#10839) ([[ipfs/kubo#10839](https://github.com/ipfs/kubo/issues/10839)](https://github.com/ipfs/kubo/pull/10839)) - feat: HTTP retrieval enabled by default (#10836) ([[ipfs/kubo#10836](https://github.com/ipfs/kubo/issues/10836)](https://github.com/ipfs/kubo/pull/10836)) - feat: AutoTLS with AutoNATv2 client (#10835) ([[ipfs/kubo#10835](https://github.com/ipfs/kubo/issues/10835)](https://github.com/ipfs/kubo/pull/10835)) - commands: add `--force` option to `files cp` command (#10823) ([[ipfs/kubo#10823](https://github.com/ipfs/kubo/issues/10823)](https://github.com/ipfs/kubo/pull/10823)) - docs/env variables: Document LIBP2P_SWARM_FD_LIMIT ([[ipfs/kubo#10828](https://github.com/ipfs/kubo/issues/10828)](https://github.com/ipfs/kubo/pull/10828)) - test: fix "invert" commands in sharness tests (#9652) ([[ipfs/kubo#9652](https://github.com/ipfs/kubo/issues/9652)](https://github.com/ipfs/kubo/pull/9652)) - Ivan386/filestore fix (#7474) ([[ipfs/kubo#7474](https://github.com/ipfs/kubo/issues/7474)](https://github.com/ipfs/kubo/pull/7474)) - wrap user-facing mfs.Lookup error (#10821) ([[ipfs/kubo#10821](https://github.com/ipfs/kubo/issues/10821)](https://github.com/ipfs/kubo/pull/10821)) - Update fuse docs with FreeBSD specifics (#10820) ([[ipfs/kubo#10820](https://github.com/ipfs/kubo/issues/10820)](https://github.com/ipfs/kubo/pull/10820)) - Minor wording fixes in docs (#10822) ([[ipfs/kubo#10822](https://github.com/ipfs/kubo/issues/10822)](https://github.com/ipfs/kubo/pull/10822)) - fix(gateway): gateway-conformance v0.8 (#10818) ([[ipfs/kubo#10818](https://github.com/ipfs/kubo/issues/10818)](https://github.com/ipfs/kubo/pull/10818)) - Upgrade to Boxo v0.31.0 (#10819) ([[ipfs/kubo#10819](https://github.com/ipfs/kubo/issues/10819)](https://github.com/ipfs/kubo/pull/10819)) - Merge release v0.35.0 ([[ipfs/kubo#10815](https://github.com/ipfs/kubo/issues/10815)](https://github.com/ipfs/kubo/pull/10815)) - fix: go-libp2p-kad-dht v0.33.1 (#10814) ([[ipfs/kubo#10814](https://github.com/ipfs/kubo/issues/10814)](https://github.com/ipfs/kubo/pull/10814)) - fix: p2p-forge v0.5.1 ignoring /p2p-circuit (#10813) ([[ipfs/kubo#10813](https://github.com/ipfs/kubo/issues/10813)](https://github.com/ipfs/kubo/pull/10813)) - Upgrade go-libp2p-kad-dht to v0.33.0 (#10811) ([[ipfs/kubo#10811](https://github.com/ipfs/kubo/issues/10811)](https://github.com/ipfs/kubo/pull/10811)) - chore: use go-log/v2 (#10801) ([[ipfs/kubo#10801](https://github.com/ipfs/kubo/issues/10801)](https://github.com/ipfs/kubo/pull/10801)) - fix(fuse): ipns error handling and friendly errors (#10807) ([[ipfs/kubo#10807](https://github.com/ipfs/kubo/issues/10807)](https://github.com/ipfs/kubo/pull/10807)) - fix(config): wire up `Provider.Enabled` flag (#10804) ([[ipfs/kubo#10804](https://github.com/ipfs/kubo/issues/10804)](https://github.com/ipfs/kubo/pull/10804)) - chore: bump version to 0.36.0-dev - github.com/ipfs/boxo (v0.30.0 -> v0.33.0): - Release v0.33.0 ([[ipfs/boxo#974](https://github.com/ipfs/boxo/issues/974)](https://github.com/ipfs/boxo/pull/974)) - [skip changelog] fix sending empty want from [#968] (#975) ([[ipfs/boxo#975](https://github.com/ipfs/boxo/issues/975)](https://github.com/ipfs/boxo/pull/975)) - minor typo fixes (#972) ([[ipfs/boxo#972](https://github.com/ipfs/boxo/issues/972)](https://github.com/ipfs/boxo/pull/972)) - fix: normalize delegated /routing/v1 urls (#971) ([[ipfs/boxo#971](https://github.com/ipfs/boxo/issues/971)](https://github.com/ipfs/boxo/pull/971)) - bitswap/client: Set DontHaveTimeout MinTimeout to 50ms (#965) ([[ipfs/boxo#965](https://github.com/ipfs/boxo/issues/965)](https://github.com/ipfs/boxo/pull/965)) - remove unused code (#967) ([[ipfs/boxo#967](https://github.com/ipfs/boxo/issues/967)](https://github.com/ipfs/boxo/pull/967)) - Fix sending extra wants (#968) ([[ipfs/boxo#968](https://github.com/ipfs/boxo/issues/968)](https://github.com/ipfs/boxo/pull/968)) - Handle Bitswap messages without `Wantlist` (#961) ([[ipfs/boxo#961](https://github.com/ipfs/boxo/issues/961)](https://github.com/ipfs/boxo/pull/961)) - bitswap/httpnet: limit metric cardinality ([[ipfs/boxo#957](https://github.com/ipfs/boxo/issues/957)](https://github.com/ipfs/boxo/pull/957)) - bitswap/httpnet: Sanitize allow/denylist inputs ([[ipfs/boxo#964](https://github.com/ipfs/boxo/issues/964)](https://github.com/ipfs/boxo/pull/964)) - Bitswap: Set DontHaveTimeout/MinTimeout to 200ms. ([[ipfs/boxo#959](https://github.com/ipfs/boxo/issues/959)](https://github.com/ipfs/boxo/pull/959)) - upgrade go-libp2p to v0.42.0 (#960) ([[ipfs/boxo#960](https://github.com/ipfs/boxo/issues/960)](https://github.com/ipfs/boxo/pull/960)) - refactor: use the built-in max/min to simplify the code [skip changelog] (#941) ([[ipfs/boxo#941](https://github.com/ipfs/boxo/issues/941)](https://github.com/ipfs/boxo/pull/941)) - bitswap/httpnet: adjust error logging (#958) ([[ipfs/boxo#958](https://github.com/ipfs/boxo/issues/958)](https://github.com/ipfs/boxo/pull/958)) - docs: reprovider metrics name in changelog (#953) ([[ipfs/boxo#953](https://github.com/ipfs/boxo/issues/953)](https://github.com/ipfs/boxo/pull/953)) - Release v0.32.0 (#952) ([[ipfs/boxo#952](https://github.com/ipfs/boxo/issues/952)](https://github.com/ipfs/boxo/pull/952)) - Remove redundant loop over published blocks (#950) ([[ipfs/boxo#950](https://github.com/ipfs/boxo/issues/950)](https://github.com/ipfs/boxo/pull/950)) - Fix links in README.md (#948) ([[ipfs/boxo#948](https://github.com/ipfs/boxo/issues/948)](https://github.com/ipfs/boxo/pull/948)) - chore(provider): meaningful info level log (#940) ([[ipfs/boxo#940](https://github.com/ipfs/boxo/issues/940)](https://github.com/ipfs/boxo/pull/940)) - feat(provider): reprovide metrics (#944) ([[ipfs/boxo#944](https://github.com/ipfs/boxo/issues/944)](https://github.com/ipfs/boxo/pull/944)) - ci: set up golangci lint in boxo (#943) ([[ipfs/boxo#943](https://github.com/ipfs/boxo/issues/943)](https://github.com/ipfs/boxo/pull/943)) - Do not return error from notify blocks when bitswap shutdown (#947) ([[ipfs/boxo#947](https://github.com/ipfs/boxo/issues/947)](https://github.com/ipfs/boxo/pull/947)) - bitswap/client: broadcast reduction and metrics (#937) ([[ipfs/boxo#937](https://github.com/ipfs/boxo/issues/937)](https://github.com/ipfs/boxo/pull/937)) - fix: typo in HAMT error message ([[ipfs/boxo#945](https://github.com/ipfs/boxo/issues/945)](https://github.com/ipfs/boxo/pull/945)) - bitswap/httpnet: expose the errors on connect when connection impossible ([[ipfs/boxo#939](https://github.com/ipfs/boxo/issues/939)](https://github.com/ipfs/boxo/pull/939)) - fix(unixfs): int check (#936) ([[ipfs/boxo#936](https://github.com/ipfs/boxo/issues/936)](https://github.com/ipfs/boxo/pull/936)) - Remove WithPeerLedger option and PeerLedger interface (#938) ([[ipfs/boxo#938](https://github.com/ipfs/boxo/issues/938)](https://github.com/ipfs/boxo/pull/938)) - fix(gateway): support suffix range requests (#922) ([[ipfs/boxo#922](https://github.com/ipfs/boxo/issues/922)](https://github.com/ipfs/boxo/pull/922)) - Release v0.31.0 ([[ipfs/boxo#934](https://github.com/ipfs/boxo/issues/934)](https://github.com/ipfs/boxo/pull/934)) - Revert "Remove an unused timestamp from traceability.Block" (#931) ([[ipfs/boxo#931](https://github.com/ipfs/boxo/issues/931)](https://github.com/ipfs/boxo/pull/931)) - update changelog (#930) ([[ipfs/boxo#930](https://github.com/ipfs/boxo/issues/930)](https://github.com/ipfs/boxo/pull/930)) - Deprecate WithPeerLedger option for bitswap server (#929) ([[ipfs/boxo#929](https://github.com/ipfs/boxo/issues/929)](https://github.com/ipfs/boxo/pull/929)) - refactor: use a more efficient querying method (#921) ([[ipfs/boxo#921](https://github.com/ipfs/boxo/issues/921)](https://github.com/ipfs/boxo/pull/921)) - Use go-car/v2 for reading CAR files in gateway backend (#927) ([[ipfs/boxo#927](https://github.com/ipfs/boxo/issues/927)](https://github.com/ipfs/boxo/pull/927)) - Upgrade go-libp2p-kad-dht v0.33.1 (#924) ([[ipfs/boxo#924](https://github.com/ipfs/boxo/issues/924)](https://github.com/ipfs/boxo/pull/924)) - bitswap/httpnet: Disconnect peers after client errors ([[ipfs/boxo#919](https://github.com/ipfs/boxo/issues/919)](https://github.com/ipfs/boxo/pull/919)) - Remove an unused timestamp from traceability.Block (#923) ([[ipfs/boxo#923](https://github.com/ipfs/boxo/issues/923)](https://github.com/ipfs/boxo/pull/923)) - fix(bitswap/httpnet): idempotent Stop() (#920) ([[ipfs/boxo#920](https://github.com/ipfs/boxo/issues/920)](https://github.com/ipfs/boxo/pull/920)) - Update dependencies (#916) ([[ipfs/boxo#916](https://github.com/ipfs/boxo/issues/916)](https://github.com/ipfs/boxo/pull/916)) - github.com/ipfs/go-block-format (v0.2.1 -> v0.2.2): - new version (#62) ([[ipfs/go-block-format#62](https://github.com/ipfs/go-block-format/issues/62)](https://github.com/ipfs/go-block-format/pull/62)) - Use value receivers for `BasicBlock` methods (#61) ([[ipfs/go-block-format#61](https://github.com/ipfs/go-block-format/issues/61)](https://github.com/ipfs/go-block-format/pull/61)) - github.com/ipfs/go-ds-badger4 (v0.1.5 -> v0.1.8): - new version (#7) ([[ipfs/go-ds-badger4#7](https://github.com/ipfs/go-ds-badger4/issues/7)](https://github.com/ipfs/go-ds-badger4/pull/7)) - update version (#5) ([[ipfs/go-ds-badger4#5](https://github.com/ipfs/go-ds-badger4/issues/5)](https://github.com/ipfs/go-ds-badger4/pull/5)) - update dependencies (#4) ([[ipfs/go-ds-badger4#4](https://github.com/ipfs/go-ds-badger4/issues/4)](https://github.com/ipfs/go-ds-badger4/pull/4)) - new version ([[ipfs/go-ds-badger4#3](https://github.com/ipfs/go-ds-badger4/issues/3)](https://github.com/ipfs/go-ds-badger4/pull/3)) - use go-datastore without goprocess ([[ipfs/go-ds-badger4#2](https://github.com/ipfs/go-ds-badger4/issues/2)](https://github.com/ipfs/go-ds-badger4/pull/2)) - github.com/ipfs/go-ds-pebble (v0.5.0 -> v0.5.1): - new version (#55) ([[ipfs/go-ds-pebble#55](https://github.com/ipfs/go-ds-pebble/issues/55)](https://github.com/ipfs/go-ds-pebble/pull/55)) - github.com/ipfs/go-ipfs-cmds (v0.14.1 -> v0.15.0): - new version (#287) ([[ipfs/go-ipfs-cmds#287](https://github.com/ipfs/go-ipfs-cmds/issues/287)](https://github.com/ipfs/go-ipfs-cmds/pull/287)) - minor document updates (#286) ([[ipfs/go-ipfs-cmds#286](https://github.com/ipfs/go-ipfs-cmds/issues/286)](https://github.com/ipfs/go-ipfs-cmds/pull/286)) - Update go log v2 (#285) ([[ipfs/go-ipfs-cmds#285](https://github.com/ipfs/go-ipfs-cmds/issues/285)](https://github.com/ipfs/go-ipfs-cmds/pull/285)) - ci: uci/update-go (#281) ([[ipfs/go-ipfs-cmds#281](https://github.com/ipfs/go-ipfs-cmds/issues/281)](https://github.com/ipfs/go-ipfs-cmds/pull/281)) - github.com/ipfs/go-ipld-format (v0.6.0 -> v0.6.2): - new version (#96) ([[ipfs/go-ipld-format#96](https://github.com/ipfs/go-ipld-format/issues/96)](https://github.com/ipfs/go-ipld-format/pull/96)) - bump version (#94) ([[ipfs/go-ipld-format#94](https://github.com/ipfs/go-ipld-format/issues/94)](https://github.com/ipfs/go-ipld-format/pull/94)) - github.com/ipfs/go-ipld-legacy (v0.2.1 -> v0.2.2): - new version ([[ipfs/go-ipld-legacy#25](https://github.com/ipfs/go-ipld-legacy/issues/25)](https://github.com/ipfs/go-ipld-legacy/pull/25)) - github.com/ipfs/go-test (v0.2.1 -> v0.2.2): - new version (#25) ([[ipfs/go-test#25](https://github.com/ipfs/go-test/issues/25)](https://github.com/ipfs/go-test/pull/25)) - Update README.md (#24) ([[ipfs/go-test#24](https://github.com/ipfs/go-test/issues/24)](https://github.com/ipfs/go-test/pull/24)) - github.com/ipfs/go-unixfsnode (v1.10.0 -> v1.10.1): - new version ([[ipfs/go-unixfsnode#84](https://github.com/ipfs/go-unixfsnode/issues/84)](https://github.com/ipfs/go-unixfsnode/pull/84)) - github.com/ipld/go-car/v2 (v2.14.2 -> v2.14.3): - bump version ([[ipld/go-car#579](https://github.com/ipld/go-car/issues/579)](https://github.com/ipld/go-car/pull/579)) - chore: update to boxo merkledag package - feat: car debug handles the zero length block ([[ipld/go-car#569](https://github.com/ipld/go-car/issues/569)](https://github.com/ipld/go-car/pull/569)) - chore(deps): bump github.com/rogpeppe/go-internal from 1.13.1 to 1.14.1 in /cmd ([[ipld/go-car#566](https://github.com/ipld/go-car/issues/566)](https://github.com/ipld/go-car/pull/566)) - Add a concatination cli utility ([[ipld/go-car#565](https://github.com/ipld/go-car/issues/565)](https://github.com/ipld/go-car/pull/565)) - github.com/ipld/go-codec-dagpb (v1.6.0 -> v1.7.0): - chore: v1.7.0 bump - github.com/libp2p/go-flow-metrics (v0.2.0 -> v0.3.0): - chore: release v0.3.0 ([[libp2p/go-flow-metrics#38](https://github.com/libp2p/go-flow-metrics/issues/38)](https://github.com/libp2p/go-flow-metrics/pull/38)) - go-clock migration ([[libp2p/go-flow-metrics#36](https://github.com/libp2p/go-flow-metrics/issues/36)](https://github.com/libp2p/go-flow-metrics/pull/36)) - github.com/libp2p/go-libp2p (v0.41.1 -> v0.42.0): - Release v0.42.0 (#3318) ([[libp2p/go-libp2p#3318](https://github.com/libp2p/go-libp2p/issues/3318)](https://github.com/libp2p/go-libp2p/pull/3318)) - mocknet: notify listeners on listen (#3310) ([[libp2p/go-libp2p#3310](https://github.com/libp2p/go-libp2p/issues/3310)](https://github.com/libp2p/go-libp2p/pull/3310)) - autonatv2: add metrics (#3308) ([[libp2p/go-libp2p#3308](https://github.com/libp2p/go-libp2p/issues/3308)](https://github.com/libp2p/go-libp2p/pull/3308)) - chore: fix errors reported by golangci-lint ([[libp2p/go-libp2p#3295](https://github.com/libp2p/go-libp2p/issues/3295)](https://github.com/libp2p/go-libp2p/pull/3295)) - autonatv2: add Unknown addrs to event (#3305) ([[libp2p/go-libp2p#3305](https://github.com/libp2p/go-libp2p/issues/3305)](https://github.com/libp2p/go-libp2p/pull/3305)) - transport: rate limit new connections (#3283) ([[libp2p/go-libp2p#3283](https://github.com/libp2p/go-libp2p/issues/3283)](https://github.com/libp2p/go-libp2p/pull/3283)) - basichost: use autonatv2 to verify reachability (#3231) ([[libp2p/go-libp2p#3231](https://github.com/libp2p/go-libp2p/issues/3231)](https://github.com/libp2p/go-libp2p/pull/3231)) - chore: Revert "go-clock migration" (#3303) ([[libp2p/go-libp2p#3303](https://github.com/libp2p/go-libp2p/issues/3303)](https://github.com/libp2p/go-libp2p/pull/3303)) - tcp: ensure tcpGatedMaListener wrapping happens always (#3275) ([[libp2p/go-libp2p#3275](https://github.com/libp2p/go-libp2p/issues/3275)](https://github.com/libp2p/go-libp2p/pull/3275)) - go-clock migration ([[libp2p/go-libp2p#3293](https://github.com/libp2p/go-libp2p/issues/3293)](https://github.com/libp2p/go-libp2p/pull/3293)) - swarm_test: support more transports for GenSwarm (#3130) ([[libp2p/go-libp2p#3130](https://github.com/libp2p/go-libp2p/issues/3130)](https://github.com/libp2p/go-libp2p/pull/3130)) - eventbus: change slow consumer event from error to warn (#3286) ([[libp2p/go-libp2p#3286](https://github.com/libp2p/go-libp2p/issues/3286)](https://github.com/libp2p/go-libp2p/pull/3286)) - quicreuse: add some documentation for the package (#3279) ([[libp2p/go-libp2p#3279](https://github.com/libp2p/go-libp2p/issues/3279)](https://github.com/libp2p/go-libp2p/pull/3279)) - identify: rate limit id push protocol (#3266) ([[libp2p/go-libp2p#3266](https://github.com/libp2p/go-libp2p/issues/3266)](https://github.com/libp2p/go-libp2p/pull/3266)) - fix(pstoreds): add missing log for failed GC record unmarshalling in `purgeStore()` (#3273) ([[libp2p/go-libp2p#3273](https://github.com/libp2p/go-libp2p/issues/3273)](https://github.com/libp2p/go-libp2p/pull/3273)) - nat: improve port mapping failure logging (#3261) ([[libp2p/go-libp2p#3261](https://github.com/libp2p/go-libp2p/issues/3261)](https://github.com/libp2p/go-libp2p/pull/3261)) - ci: add golangci-lint for linting (#3269) ([[libp2p/go-libp2p#3269](https://github.com/libp2p/go-libp2p/issues/3269)](https://github.com/libp2p/go-libp2p/pull/3269)) - build(test_analysis): use `modernc.org/sqlite` directly (#3227) ([[libp2p/go-libp2p#3227](https://github.com/libp2p/go-libp2p/issues/3227)](https://github.com/libp2p/go-libp2p/pull/3227)) - chore(certificate): update test vectors (#3242) ([[libp2p/go-libp2p#3242](https://github.com/libp2p/go-libp2p/issues/3242)](https://github.com/libp2p/go-libp2p/pull/3242)) - rcmgr: use netip.Prefix as map key instead of string (#3264) ([[libp2p/go-libp2p#3264](https://github.com/libp2p/go-libp2p/issues/3264)](https://github.com/libp2p/go-libp2p/pull/3264)) - webrtc: support receiving 256kB messages (#3255) ([[libp2p/go-libp2p#3255](https://github.com/libp2p/go-libp2p/issues/3255)](https://github.com/libp2p/go-libp2p/pull/3255)) - peerstore: remove leveldb tests (#3260) ([[libp2p/go-libp2p#3260](https://github.com/libp2p/go-libp2p/issues/3260)](https://github.com/libp2p/go-libp2p/pull/3260)) - identify: reduce timeout to 5 seconds (#3259) ([[libp2p/go-libp2p#3259](https://github.com/libp2p/go-libp2p/issues/3259)](https://github.com/libp2p/go-libp2p/pull/3259)) - fix(relay): fix data-race in relayFinder (#3258) ([[libp2p/go-libp2p#3258](https://github.com/libp2p/go-libp2p/issues/3258)](https://github.com/libp2p/go-libp2p/pull/3258)) - chore: update p2p-forge to v0.5.0 for autotls example (#3257) ([[libp2p/go-libp2p#3257](https://github.com/libp2p/go-libp2p/issues/3257)](https://github.com/libp2p/go-libp2p/pull/3257)) - peerstore: remove unused badger tests (#3252) ([[libp2p/go-libp2p#3252](https://github.com/libp2p/go-libp2p/issues/3252)](https://github.com/libp2p/go-libp2p/pull/3252)) - chore: using t.TempDir() instead of os.MkdirTemp (#3222) ([[libp2p/go-libp2p#3222](https://github.com/libp2p/go-libp2p/issues/3222)](https://github.com/libp2p/go-libp2p/pull/3222)) - chore(examples): p2p-forge/client v0.4.0 (#3211) ([[libp2p/go-libp2p#3211](https://github.com/libp2p/go-libp2p/issues/3211)](https://github.com/libp2p/go-libp2p/pull/3211)) - transport: add GatedMaListener type (#3186) ([[libp2p/go-libp2p#3186](https://github.com/libp2p/go-libp2p/issues/3186)](https://github.com/libp2p/go-libp2p/pull/3186)) - autonatv2: explicitly handle dns addrs (#3249) ([[libp2p/go-libp2p#3249](https://github.com/libp2p/go-libp2p/issues/3249)](https://github.com/libp2p/go-libp2p/pull/3249)) - autonatv2: fix server dial data request policy (#3247) ([[libp2p/go-libp2p#3247](https://github.com/libp2p/go-libp2p/issues/3247)](https://github.com/libp2p/go-libp2p/pull/3247)) - webtransport: wrap underlying transport error on stream resets (#3237) ([[libp2p/go-libp2p#3237](https://github.com/libp2p/go-libp2p/issues/3237)](https://github.com/libp2p/go-libp2p/pull/3237)) - connmgr: remove WithEmergencyTrim (#3217) ([[libp2p/go-libp2p#3217](https://github.com/libp2p/go-libp2p/issues/3217)](https://github.com/libp2p/go-libp2p/pull/3217)) - connmgr: fix transport association bug (#3221) ([[libp2p/go-libp2p#3221](https://github.com/libp2p/go-libp2p/issues/3221)](https://github.com/libp2p/go-libp2p/pull/3221)) - webrtc: fix memory leak with udpmux.muxedConnection context (#3243) ([[libp2p/go-libp2p#3243](https://github.com/libp2p/go-libp2p/issues/3243)](https://github.com/libp2p/go-libp2p/pull/3243)) - fix(libp2phttp): bound NewStream timeout (#3225) ([[libp2p/go-libp2p#3225](https://github.com/libp2p/go-libp2p/issues/3225)](https://github.com/libp2p/go-libp2p/pull/3225)) - conngater: fix incorrect err return value (#3219) ([[libp2p/go-libp2p#3219](https://github.com/libp2p/go-libp2p/issues/3219)](https://github.com/libp2p/go-libp2p/pull/3219)) - addrsmanager: extract out addressing logic from basichost (#3075) ([[libp2p/go-libp2p#3075](https://github.com/libp2p/go-libp2p/issues/3075)](https://github.com/libp2p/go-libp2p/pull/3075)) - github.com/libp2p/go-socket-activation (v0.1.0 -> v0.1.1): - new version (#35) ([[libp2p/go-socket-activation#35](https://github.com/libp2p/go-socket-activation/issues/35)](https://github.com/libp2p/go-socket-activation/pull/35)) - Upgrade to go-log/v2 v2.6.0 (#33) ([[libp2p/go-socket-activation#33](https://github.com/libp2p/go-socket-activation/issues/33)](https://github.com/libp2p/go-socket-activation/pull/33)) - sync: update CI config files (#20) ([[libp2p/go-socket-activation#20](https://github.com/libp2p/go-socket-activation/issues/20)](https://github.com/libp2p/go-socket-activation/pull/20)) - sync: update CI config files (#18) ([[libp2p/go-socket-activation#18](https://github.com/libp2p/go-socket-activation/issues/18)](https://github.com/libp2p/go-socket-activation/pull/18)) - sync: update CI config files (#17) ([[libp2p/go-socket-activation#17](https://github.com/libp2p/go-socket-activation/issues/17)](https://github.com/libp2p/go-socket-activation/pull/17)) - github.com/libp2p/go-yamux/v5 (v5.0.0 -> v5.0.1): - Release v5.0.1 - fix: deadlock on close (#130) ([[libp2p/go-yamux#130](https://github.com/libp2p/go-yamux/issues/130)](https://github.com/libp2p/go-yamux/pull/130)) - github.com/multiformats/go-multiaddr (v0.15.0 -> v0.16.0): - Release v0.16.0 (#279) ([[multiformats/go-multiaddr#279](https://github.com/multiformats/go-multiaddr/issues/279)](https://github.com/multiformats/go-multiaddr/pull/279)) - Rename CaptureStringVal to CaptureString (#278) ([[multiformats/go-multiaddr#278](https://github.com/multiformats/go-multiaddr/issues/278)](https://github.com/multiformats/go-multiaddr/pull/278)) - Megular Expressions (#263) ([[multiformats/go-multiaddr#263](https://github.com/multiformats/go-multiaddr/issues/263)](https://github.com/multiformats/go-multiaddr/pull/263)) - github.com/multiformats/go-multicodec (v0.9.0 -> v0.9.2): - v0.9.2 bump - chore: update submodules and go generate - chore: v0.9.1 bump - chore: update submodules and go generate - ci: uci/update-go (#97) ([[multiformats/go-multicodec#97](https://github.com/multiformats/go-multicodec/issues/97)](https://github.com/multiformats/go-multicodec/pull/97)) - chore: update submodules and go generate - chore: update submodules and go generate - chore: update submodules and go generate - chore: update submodules and go generate - github.com/multiformats/go-multistream (v0.6.0 -> v0.6.1): - Release v0.6.1 ([[multiformats/go-multistream#121](https://github.com/multiformats/go-multistream/issues/121)](https://github.com/multiformats/go-multistream/pull/121)) - refactor(lazyClientConn): Use synctest friendly once func ([[multiformats/go-multistream#120](https://github.com/multiformats/go-multistream/issues/120)](https://github.com/multiformats/go-multistream/pull/120))

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
sukun 25 +7274/-1586 140
galargh 13 +1714/-1680 115
rvagg 2 +1383/-960 6
Andrew Gillis 46 +1226/-564 140
Marco Munizaga 6 +1643/-36 24
Hector Sanjuan 20 +624/-202 40
Marcin Rataj 24 +583/-175 49
Dennis Trautwein 1 +134/-14 4
Piotr Galar 1 +73/-71 23
Guillaume Michel 4 +58/-44 23
Ivan 1 +90/-9 3
Will Scott 1 +97/-0 2
gammazero 11 +47/-30 13
guillaumemichel 3 +40/-35 21
Adin Schmahmann 1 +58/-17 8
Laurent Senta 1 +26/-24 4
pullmerge 1 +20/-16 5
vladopajic 1 +20/-14 1
Probot 1 +18/-4 1
Dmitry Markin 1 +13/-9 2
overallteach 1 +4/-12 3
web3-bot 5 +9/-6 7
Pavel Zbitskiy 1 +14/-1 1
Rod Vagg 5 +7/-7 5
argentpapa 1 +3/-10 1
GarmashAlex 1 +8/-3 1
huochexizhan 1 +3/-3 1
VolodymyrBg 1 +2/-3 1
levisyin 1 +2/-2 2
b00f 1 +3/-0 1
achingbrain 1 +1/-1 1
Ocenka 1 +1/-1 1
Dreamacro 1 +1/-1 1
Štefan Baebler 1 +1/-0 1
Source: README.md, updated 2025-07-14