PackageTrack
Sign in Get early access

github.com/libp2p/go-libp2p-kad-dht

v0.42.2 #2933 most downloaded on Go modules libp2p/go-libp2p-kad-dht

What this package is like to depend on

Last release 3 days ago

21 Aug 2026

Ships on a steady schedule

a new release about every 2 weeks

Rarely documented

notes for 10 of 105 stable releases

2 versions withdrawn

withdrawn after publishing

10 years old

692 releases · first in 2016

132 releases in the last 12 months

see the full history below

Release timeline

692 releases · Aug 2016 to Aug 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 692
  1. v0.42.3-0.20260821055240-e41dae0c7945 21 Aug 2026 pre-release

    Nothing published for this version

  2. v0.42.2 21 Aug 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    Highlights

    Provider record writes are batched again (#1293)

    v0.42.0 (#1277) inadvertently turned every provider record write and GC delete into an individual (fsynced) datastore operation, causing excessive disk I/O on busy nodes (ipfs/kubo#11432). Provider writes and GC deletes are now batched (256 records per batch), restoring the pre-v0.42.0 fsync rate. No protocol or record-layout change.

    Local provider record writes respect shutdown (#1288)

    The WithAddLocalRecord callback now receives the sweeping provider's lifecycle context instead of context.Background() (a regression from #1282), so local provider record writes are properly cancelled when the provider shuts down.

    What's Changed

    Full Changelog: v0.42.1...v0.42.2

    Open source →
  3. v0.42.2-0.20260820235128-5a1c2420ad2e 20 Aug 2026 pre-release

    Nothing published for this version

  4. v0.42.2-0.20260818075504-8358410d968d 18 Aug 2026 pre-release

    Nothing published for this version

  5. v0.42.2-0.20260804071500-ab187effae98 04 Aug 2026 pre-release

    Nothing published for this version

  6. v0.42.2-0.20260804065032-2cc8c275c7fa 04 Aug 2026 pre-release

    Nothing published for this version

  7. v0.42.2-0.20260801200847-2a10abdf1215 01 Aug 2026 pre-release

    Nothing published for this version

  8. v0.42.2-0.20260728132953-7571fec1480b 28 Jul 2026 pre-release

    Nothing published for this version

  9. v0.42.2-0.20260723025726-a5d383cdd31c 23 Jul 2026 pre-release

    Nothing published for this version

  10. v0.42.1 20 Jul 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    What's Changed

    Full Changelog: v0.42.0...v0.42.1

    Open source →
  11. v0.42.1-0.20260720193258-3dd16b153085 20 Jul 2026 pre-release

    Nothing published for this version

  12. v0.42.1-0.20260720183211-2cba273e45d8 20 Jul 2026 pre-release

    Nothing published for this version

  13. v0.42.0 20 Jul 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    Highlights

    ⚠️ Breaking changes

    Constructors no longer take a context.Context (#1282)

    The lifecycle context was removed from all constructors. The DHT now runs until Close() is called; cancelling a context no longer tears it down.

    Before After
    dht.New(ctx, h, opts...) dht.New(h, opts...)
    dht.NewDHT(ctx, h, dstore) dht.NewDHT(h, dstore)
    dht.NewDHTClient(ctx, h, dstore) dht.NewDHTClient(h, dstore)
    dual.New(ctx, h, opts...) dual.New(h, opts...)
    records.NewProviderManager(ctx, ...) records.NewProviderManager(...)
    rtrefresh.NewRtRefreshManager(ctx, ...) rtrefresh.NewRtRefreshManager(...)

    Migration: drop the context argument. If you relied on cancelling the constructor context to shut the DHT down, call Close() instead. Close() blocks until all long-lived components have stopped. Note that in-flight RPC handlers are owned by the libp2p host, so close the host before closing any datastore handed to the DHT.

    ProviderStore option removed (#1277 by @guillaumemichel)

    Custom ProviderStore implementations can no longer be injected; the DHT always runs the built-in provider manager. The dht.ProviderStore(...) option is replaced by datastore-level configuration:

    // Before: inject a custom provider store
    d, err := dht.New(ctx, h, dht.ProviderStore(customStore))
    
    // After: configure the built-in provider manager
    d, err := dht.New(h,
    	dht.ProviderDatastore(dstore),          // dedicated datastore for provider records
    	dht.ProviderManagerOpts(                // tune the built-in manager
    		records.ProvideValidity(48*time.Hour),
    		records.Cache(myLRU),
    	),
    )

    New options: ValueDatastore and ProviderDatastore give value and provider records their own physical datastores (both default to the datastore set with Datastore). The dht.ProviderStore() getter on IpfsDHT remains available.

    Value records are stored under namespaced datastore keys (#1277)

    Value records used to be stored at the datastore root as /<base32(key)>; they are now namespaced by record type: /<namespace>/<base32(key)> (e.g. /pk/..., /ipns/...). This keeps a shared datastore collision-free and enables per-namespace garbage collection.

    Migration: there is no automatic key migration. On upgrade, value records persisted by earlier versions are simply not found under the new layout — nodes will re-store them as the network republishes (records expire after MaxRecordAge, 48h by default, anyway). If you persist the DHT datastore and want to reclaim space, you can delete leftover root-level base32 keys. Provider records are unaffected (already namespaced under /providers/).

    What's Changed

    Full Changelog: v0.41.0...v0.42.0

    Open source →
  14. v0.41.1-0.20260718081114-727bea06ca8f 18 Jul 2026 pre-release

    Nothing published for this version

  15. v0.41.1-0.20260717085953-cb9639642a8d 17 Jul 2026 pre-release

    Nothing published for this version

  16. v0.41.1-0.20260715110209-161a21b5799c 15 Jul 2026 pre-release

    Nothing published for this version

  17. v0.41.1-0.20260711062620-c9eb1c44537b 11 Jul 2026 pre-release

    Nothing published for this version

  18. v0.41.1-0.20260707082949-7012d13599ed 07 Jul 2026 pre-release

    Nothing published for this version

  19. v0.41.1-0.20260707013656-115ef033cc76 07 Jul 2026 pre-release

    Nothing published for this version

  20. v0.41.1-0.20260703233757-7e03fc4a9736 03 Jul 2026 pre-release

    Nothing published for this version

  21. v0.41.1-0.20260703190142-e2486b7091cd 03 Jul 2026 pre-release

    Nothing published for this version

  22. v0.41.1-0.20260703045152-254eff00cd70 03 Jul 2026 pre-release

    Nothing published for this version

  23. v0.41.0 01 Jul 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    What's Changed

    Full Changelog: v0.40.0...v0.41.0

    Open source →
  24. v0.40.1-0.20260625052158-466223998256 25 Jun 2026 pre-release

    Nothing published for this version

  25. v0.40.1-0.20260617160602-96c8548a5e2a 17 Jun 2026 pre-release

    Nothing published for this version

  26. v0.40.1-0.20260617100038-10d5605ce799 17 Jun 2026 pre-release

    Nothing published for this version

  27. v0.40.1-0.20260616203420-146f2cfad786 16 Jun 2026 pre-release

    Nothing published for this version

  28. v0.40.1-0.20260616074740-75bc4749570b 16 Jun 2026 pre-release

    Nothing published for this version

  29. v0.40.1-0.20260605061321-73bd7fd5d62e 05 Jun 2026 pre-release

    Nothing published for this version

  30. v0.40.0 20 May 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    Highlights

    ⚠️ Breaking change

    • SweepingProvider.Stats() now takes a context.Context and returns (stats.Stats, error). Callers must pass a ctx with a deadline — the key count is fetched through the keystore worker and can stall behind a slow datastore op. (#1251 by @guillaumemichel)

    Fixes

    • Per-peer timeout on ADD_PROVIDER sends so a single slow peer can't stall a reprovide cycle. (#1252 by @guillaumemichel)
    • batchReprovide now holds cycleStatsLk for the full defer, fixing a stats race. (#1255 by @guillaumemichel)
    • ResettableKeystore reset is faster and no longer blocks the worker. (#1256 by @guillaumemichel)

    Other

    Full Changelog: v0.39.2...v0.40.0

    Open source →
  31. v0.39.3-0.20260617095234-35d8d8bb01f5 17 Jun 2026 pre-release

    Nothing published for this version

  32. v0.39.3-0.20260513140308-b73e1e814f5f 13 May 2026 pre-release

    Nothing published for this version

  33. v0.39.2 07 May 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    What's Changed

    Full Changelog: v0.39.1...v0.39.2

    Open source →
  34. v0.39.2-0.20260506132526-b00ec536b918 06 May 2026 pre-release

    Nothing published for this version

  35. v0.39.2-0.20260505220436-eef1feb8bdc6 05 May 2026 pre-release

    Nothing published for this version

  36. v0.39.2-0.20260505215858-52b01552be65 05 May 2026 pre-release

    Nothing published for this version

  37. v0.39.2-0.20260505211239-817031b787f1 05 May 2026 pre-release

    Nothing published for this version

  38. v0.39.2-0.20260505203308-b5615da3b1cc 05 May 2026 pre-release

    Nothing published for this version

  39. v0.39.1 20 Apr 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    What's Changed

    Full Changelog: v0.39.0...v0.39.1

    Open source →
  40. v0.39.1-0.20260420100332-248f53b73565 20 Apr 2026 pre-release

    Nothing published for this version

  41. v0.39.1-0.20260413044849-e8f6083c28e2 13 Apr 2026 pre-release

    Nothing published for this version

  42. v0.39.1-0.20260331093252-f9a090e67f64 31 Mar 2026 pre-release

    Nothing published for this version

  43. v0.39.1-0.20260326020727-bcbc21e9f633 26 Mar 2026 pre-release

    Nothing published for this version

  44. v0.39.1-0.20260326004342-88cb6d92d500 26 Mar 2026 pre-release

    Nothing published for this version

  45. v0.39.0 19 Mar 2026
    Release notes

    Note

    This release was brought to you by the Shipyard team.

    Breaking changes

    What's Changed

    New Contributors

    Full Changelog: v0.38.0...v0.39.0

    Open source →
  46. v0.38.1-0.20260319100246-8db4c7f4014a 19 Mar 2026 pre-release

    Nothing published for this version

  47. v0.38.1-0.20260319095041-7ba6b28e4b29 19 Mar 2026 pre-release

    Nothing published for this version

  48. v0.38.1-0.20260318194436-7b44139b899d 18 Mar 2026 pre-release

    Nothing published for this version

  49. v0.38.1-0.20260318184843-1bede74b8246 18 Mar 2026 pre-release

    Nothing published for this version

  50. v0.38.1-0.20260318021441-7f11bf3a21de 18 Mar 2026 pre-release

    Nothing published for this version

  51. v0.38.1-0.20260304084134-15f0b42671b2 04 Mar 2026 pre-release

    Nothing published for this version

  52. v0.38.1-0.20260217124839-5b45a65966fd 17 Feb 2026 pre-release

    Nothing published for this version

  53. v0.38.1-0.20260217092601-81a726dc0c1c 17 Feb 2026 pre-release

    Nothing published for this version

  54. v0.38.0 16 Feb 2026
    Release notes

    What's Changed

    Full Changelog: v0.37.1...v0.38.0

    Open source →
  55. v0.37.2-0.20260212142733-97ce04b37df4 12 Feb 2026 pre-release

    Nothing published for this version

  56. v0.37.2-0.20260211161343-a9412b283883 11 Feb 2026 pre-release

    Nothing published for this version

  57. v0.37.2-0.20260130154754-e9e1b9851992 30 Jan 2026 pre-release

    Nothing published for this version

  58. v0.37.1 27 Jan 2026
    Release notes

    What's Changed

    Full Changelog: v0.37.0...v0.37.1

    Open source →
  59. v0.37.0 14 Jan 2026

    Nothing published for this version

  60. v0.36.1-0.20260113121646-44eddf04e3a9 13 Jan 2026 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive