58 releases (breaking)

0.42.1 Dec 26, 2022
0.42.0 Nov 25, 2022
0.41.0 Oct 14, 2022
0.38.0 Jul 5, 2022
0.6.0 Mar 29, 2019

#47 in Network programming

Download history 20908/week @ 2022-10-12 20226/week @ 2022-10-19 20082/week @ 2022-10-26 25560/week @ 2022-11-02 24787/week @ 2022-11-09 25179/week @ 2022-11-16 22512/week @ 2022-11-23 24024/week @ 2022-11-30 25365/week @ 2022-12-07 21045/week @ 2022-12-14 18936/week @ 2022-12-21 15484/week @ 2022-12-28 21250/week @ 2023-01-04 23623/week @ 2023-01-11 25594/week @ 2023-01-18 22835/week @ 2023-01-25

97,136 downloads per month
Used in 86 crates (4 directly)

MIT license

1MB
23K SLoC

Implementation of the libp2p-specific Kademlia protocol.

Important Discrepancies

  • Peer Discovery with Identify In other libp2p implementations, the Identify protocol might be seen as a core protocol. Rust-libp2p tries to stay as generic as possible, and does not make this assumption. This means that the Identify protocol must be manually hooked up to Kademlia through calls to [Kademlia::add_address]. If you choose not to use the Identify protocol, and do not provide an alternative peer discovery mechanism, a Kademlia node will not discover nodes beyond the network's boot nodes. Without the Identify protocol, existing nodes in the kademlia network cannot obtain the listen addresses of nodes querying them, and thus will not be able to add them to their routing table.

Dependencies

~7–14MB
~281K SLoC