[][src]Crate ipfs

IPFS node implementation

Ipfs is a peer-to-peer system with content addressed functionality. The main entry point for users of this crate is the Ipfs facade, which allows access to most of the implemented functionality.

This crate passes a lot of the interface-ipfs-core test suite; most of that functionality is in ipfs-http crate. The crate has some interoperability with the go-ipfs and js-ipfs implementations.

ipfs is an early alpha level crate: APIs and their implementation are subject to change in any upcoming release at least for now. The aim of the crate is to become a library-first production ready implementation of an Ipfs node.

Re-exports

pub use self::ipld::Ipld;
pub use self::path::IpfsPath;
pub use self::repo::PinKind;
pub use self::repo::PinMode;
pub use self::repo::RepoTypes;

Modules

config

Static configuration (the bootstrap node(s)).

dag

ipfs.dag interface implementation around Ipfs.

error

Crate-wide errors.

ipld

IPLD dag-json, dag-cbor and some dag-pb functionality.

ipns

IPNS functionality around Ipfs.

p2p

P2P handling for IPFS nodes.

path

IpfsPath related functionality for content addressed paths with links.

refs

refs or the references of dag-pb and other supported IPLD formats functionality.

repo

Storage implementation(s) backing the crate::Ipfs.

unixfs

Adaptation for ipfs-unixfs crate functionality on top of crate::Ipfs.

Macros

make_ipld

Easy to use nested crate::ipld::Ipld creation with syntax similar to serde_json::json macro.

Structs

BitswapStats

Bitswap statistics

Block

An Ipfs block consisting of a Cid and the bytes of the block.

Connection

A description of currently active connection.

Error

The Error type, a wrapper around a dynamic error type.

Ipfs

The facade for the Ipfs node.

IpfsOptions

Ipfs node options used to configure the node to be created with UninitializedIpfs.

Key

The (opaque) key of a record.

ListenerId

The ID of a single listener.

Multiaddr

Representation of a Multiaddr.

MultiaddrWithPeerId

A Multiaddr paired with a discrete PeerId. The Multiaddr can contain a Protocol::P2p, but it's not as easy to work with, and some functionalities don't support it being contained within the Multiaddr.

MultiaddrWithoutPeerId

A wrapper for Multiaddr that does not contain Protocol::P2p.

PeerId

Identifier of a peer of the network.

PubsubMessage

Adaptation hopefully supporting somehow both Floodsub and Gossipsub Messages in the future

SubscriptionStream

Stream of a pubsub messages. Implements FusedStream.

TestTypes

In-memory testing configuration used in tests.

Types

Default node configuration, currently with persistent block store and data store for pins.

UninitializedIpfs

Configured Ipfs which can only be started.

Enums

KadResult

Represents the result of a Kademlia query.

Keypair

Identity keypair of a node.

Protocol

Protocol describes all possible multiaddress protocols.

PublicKey

The public key of a node's identity keypair.

Quorum

A quorum w.r.t. the configured replication factor specifies the minimum number of distinct nodes that must be successfully contacted in order for a query to succeed.

Traits

IpfsTypes

Represents the configuration of the Ipfs node, its backing blockstore and datastore.

Type Definitions

Cid

A CID with the default Multihash code table