Crate libp2p[][src]

Expand description

libp2p is a modular peer-to-peer networking framework.

To learn more about the general libp2p multi-language framework visit libp2p.io.

To get started with this libp2p implementation in Rust, please take a look at the tutorial. Further examples can be found in the examples directory.

Re-exports

pub use bytes;
pub use futures;
pub use self::simple::SimpleProtocol;

Modules

Transports, upgrades, multiplexing and node handling of libp2p.

libp2p-dns

Implements the floodsub protocol, see also the: spec.

Gossipsub is a P2P pubsub (publish/subscription) routing layer designed to extend upon floodsub and meshsub routing protocols.

Implementation of the Identify protocol.

A node’s network identity keys.

Implementation of the libp2p-specific Kademlia protocol.

mDNS is a protocol defined by RFC 6762 that allows querying nodes that correspond to a certain domain name.

Auxiliary crate recording protocol and Swarm events and exposing them as metrics in the OpenMetrics format.

Multihash implementation.

Noise protocol framework support for libp2p.

This module implements the /ipfs/ping/1.0.0 protocol.

The pnet protocol implements Pre-shared Key Based Private Networks in libp2p, as specified in the spec

Generic request/response protocols.

High level manager of the network.

Implementation of the libp2p Transport trait for TCP/IP.

Ping Tutorial - Getting started with rust-libp2p

Implementation of the libp2p Transport trait for Unix domain sockets.

Implementation of the libp2p Transport trait for external transports.

Implementation of the libp2p Transport trait for Websockets.

Implements the Yamux multiplexing protocol for libp2p, see also the specification.

Macros

Easy way for a user to create a Multiaddr.

Structs

Representation of a Multiaddr.

Identifier of a peer of the network.

Contains the state of the network, plus the way it should behave.

Enums

An error during dialing or listening on a Transport.

Traits

Possible upgrade on an inbound connection or substream.

Extension trait for InboundUpgrade. Automatically implemented on all types that implement InboundUpgrade.

Possible upgrade on an outbound connection or substream.

Extention trait for OutboundUpgrade. Automatically implemented on all types that implement OutboundUpgrade.

A transport provides connection-oriented communication between two peers through ordered streams of data (i.e. connections).

Trait automatically implemented on all objects that implement Transport. Provides some additional utilities.

Functions

Builds a Transport based on TCP/IP that supports the most commonly-used features of libp2p:

Builds a Transport based on TCP/IP that supports the most commonly-used features of libp2p:

Derive Macros

Generates a delegating NetworkBehaviour implementation for the struct this is used for. See the trait documentation for better description.