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

bandwidth
core

Transports, upgrades, multiplexing and node handling of libp2p.

deflate
dns

libp2p-dns

floodsub

Implements the floodsub protocol, see also the: spec.

gossipsub

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

identify

Implementation of the Identify protocol.

identity

A node’s network identity keys.

kad

Implementation of the libp2p-specific Kademlia protocol.

mdns

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

mplex
multiaddr
multihash

Multihash implementation.

noise

Noise protocol framework support for libp2p.

ping

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

plaintext
pnet

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

relay

Implementation of the libp2p circuit relay specification.

request_response

Generic request/response protocols.

simple
swarm

High level manager of the network.

tcp

Implementation of the libp2p Transport trait for TCP/IP.

tutorial

Ping Tutorial - Getting started with rust-libp2p

uds

Implementation of the libp2p Transport trait for Unix domain sockets.

wasm_ext

Implementation of the libp2p Transport trait for external transports.

websocket

Implementation of the libp2p Transport trait for Websockets.

yamux

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

Macros

build_multiaddr

Easy way for a user to create a Multiaddr.

Structs

Multiaddr

Representation of a Multiaddr.

PeerId

Identifier of a peer of the network.

Enums

TransportError

An error during dialing or listening on a Transport.

Traits

InboundUpgrade

Possible upgrade on an inbound connection or substream.

InboundUpgradeExt

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

OutboundUpgrade

Possible upgrade on an outbound connection or substream.

OutboundUpgradeExt

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

Transport

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

TransportExt

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

Functions

development_transport

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

tokio_development_transport

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

Type Definitions

Swarm

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

Derive Macros

NetworkBehaviour

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