Thomas Eizinger 81c424ea9e
feat(swarm): make stream uprade errors more ergonomic
The currently provided `ConnectionHandlerUpgrErr` is very hard to use. Not only does it have a long name, it also features 3 levels of nesting which results in a lot of boilerplate. Last but not least, it exposes `multistream-select` as a dependency to all protocols.

We fix all of the above by renaming the type to `StreamUpgradeError` and flattening out its interface. Unrecoverable errors during protocol selection are hidden within the `Io` variant.

Related: #3759.

Pull-Request: #3882.
2023-05-08 08:55:17 +00:00
..
2023-05-02 19:57:44 +00:00
2023-04-04 09:49:59 +00:00

Examples

A set of examples showcasing how to use rust-libp2p.

Getting started

Individual libp2p features

  • Chat A basic chat application demonstrating libp2p and the mDNS and Gossipsub protocols.

  • Distributed key-value store A basic key value store demonstrating libp2p and the mDNS and Kademlia protocol.

  • File sharing application Basic file sharing application with peers either providing or locating and getting files by name.

    While obviously showcasing how to build a basic file sharing application with the Kademlia and Request-Response protocol, the actual goal of this example is to show how to integrate rust-libp2p into a larger application.

  • IPFS Kademlia Demonstrates how to perform Kademlia queries on the IPFS network.

  • IPFS Private Implementation using the gossipsub, ping and identify protocols to implement the ipfs private swarms feature.

  • Ping Small ping clone, sending a ping to a peer, expecting a pong as a response. See tutorial for a step-by-step guide building the example.

  • Rendezvous Rendezvous Protocol. See specs.