s5_blobs

Crates.ios5_blobs
lib.rss5_blobs
version1.0.0-beta.1
created_at2025-11-26 05:01:34.468722+00
updated_at2025-11-26 05:01:34.468722+00
descriptionBlob management and networking for S5
homepage
repositoryhttps://github.com/s5-dev/s5-rs
max_upload_size
id1950967
size156,555
(redsolver)

documentation

README

s5_blobs

Iroh-based blob transport layer for S5. This crate handles the exchange of content-addressed blobs between peers.

Components

  • BlobsServer: An Iroh protocol handler that serves blobs from configured BlobStores. It supports access control (ACLs) per peer.
  • Client: An RPC client for querying, uploading, downloading, and deleting blobs on remote peers.
    • Implements s5_core::BlobsRead and s5_core::BlobsWrite, allowing it to be used generically wherever blob access is needed.
  • RemoteBlobStore: An implementation of s5_core::Store that proxies operations to a remote peer via Client.

Protocol

  • ALPN: s5/blobs/0
  • Operations:
    • Query(hash): Check existence/size.
    • Download(hash, offset, len): Stream blob content.
    • Upload(hash, size): Stream blob content to server.
    • Delete(hash): Unpin/delete blob.

Usage

use s5_blobs::{Client, RemoteBlobStore};

// Connect to a peer
let client = Client::connect(endpoint, peer_addr);

// Use as a Store
let store = RemoteBlobStore::new(client);
let bytes = store.open_read_bytes("hash...", 0, None).await?;
Commit count: 0

cargo fmt