Crate iroh_blobs

source ·
Expand description

Blobs layer for iroh.

The crate is designed to be used from the iroh crate, which provides a high level interface, but can also be used standalone.

It implements a protocol for streaming content-addressed data transfer using BLAKE3 verified streaming.

It also provides a store interface for storage of blobs and outboards, as well as a persistent and a memory store implementation.

To implement a server, the provider module provides helpers for handling connections and individual requests given a store.

To perform get requests, the get module provides utilities to perform requests and store the result in a store, as well as a low level state machine for executing requests.

The downloader module provides a component to download blobs from multiple sources and store them in a store.

Re-exports§

  • pub use crate::util::Tag;
  • pub use crate::util::TempTag;

Modules§

  • clicli
    Define blob-related commands.
  • downloaderdownloader
    Handle downloading blobs and collections concurrently and from nodes.
  • Functions to export data from a store
  • Defines data formats for HashSeq.
  • The client side API
  • traits related to collections of blobs
  • Metrics for iroh-blobs
  • net_protocolnet_protocol
    Adaptation of iroh-blobs as an iroh protocol.
  • Protocol for transferring content-addressed blobs and collections over quic connections. This can be used either with normal quic connections when using the quinn crate or with magicsock connections when using the iroh-net crate.
  • The server side API
  • rpcrpc
    Provides a rpc protocol as well as a client for the protocol
  • Implementations of blob stores
  • test_utilstest or test-utils
    An iroh node that just has the blobs transport
  • Utility functions and types.

Structs§

Enums§

Constants§